From b0544642803cb992fd272e293c241f462826c607 Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Wed, 23 Dec 2020 16:29:37 +0100 Subject: [PATCH] fix some deprecations / warnings --- app/src/google/java/net/vonforst/evmap/Inits.kt | 2 +- app/src/main/java/net/vonforst/evmap/MapsActivity.kt | 7 ++++++- .../evmap/api/availability/AvailabilityDetector.kt | 2 ++ .../api/availability/ChargecloudAvailabilityDetector.kt | 1 + .../api/availability/NewMotionAvailabilityDetector.kt | 2 +- .../evmap/api/goingelectric/GoingElectricModel.kt | 2 +- .../java/net/vonforst/evmap/fragment/GalleryFragment.kt | 2 +- .../main/java/net/vonforst/evmap/fragment/MapFragment.kt | 2 +- .../evmap/navigation/ChromeCustomTabsNavigator.kt | 7 ++++++- .../java/net/vonforst/evmap/utils/LocaleContextWrapper.kt | 5 +---- .../java/net/vonforst/evmap/viewmodel/FilterViewModel.kt | 8 ++++---- app/src/main/java/net/vonforst/evmap/viewmodel/Utils.kt | 1 + 12 files changed, 26 insertions(+), 15 deletions(-) diff --git a/app/src/google/java/net/vonforst/evmap/Inits.kt b/app/src/google/java/net/vonforst/evmap/Inits.kt index 2979179a..c9cc3543 100644 --- a/app/src/google/java/net/vonforst/evmap/Inits.kt +++ b/app/src/google/java/net/vonforst/evmap/Inits.kt @@ -17,7 +17,7 @@ fun checkPlayServices(activity: Activity): Boolean { val resultCode = apiAvailability.isGooglePlayServicesAvailable(activity) if (resultCode != ConnectionResult.SUCCESS) { if (apiAvailability.isUserResolvableError(resultCode)) { - apiAvailability.getErrorDialog(activity, resultCode, request).show() + apiAvailability.getErrorDialog(activity, resultCode, request)?.show() } else { Log.d("EVMap", "This device is not supported.") } diff --git a/app/src/main/java/net/vonforst/evmap/MapsActivity.kt b/app/src/main/java/net/vonforst/evmap/MapsActivity.kt index d4abf857..feae5709 100644 --- a/app/src/main/java/net/vonforst/evmap/MapsActivity.kt +++ b/app/src/main/java/net/vonforst/evmap/MapsActivity.kt @@ -6,6 +6,7 @@ import android.net.Uri import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity +import androidx.browser.customtabs.CustomTabColorSchemeParams import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat import androidx.drawerlayout.widget.DrawerLayout @@ -96,7 +97,11 @@ class MapsActivity : AppCompatActivity() { fun openUrl(url: String) { val intent = CustomTabsIntent.Builder() - .setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary)) + .setDefaultColorSchemeParams( + CustomTabColorSchemeParams.Builder() + .setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary)) + .build() + ) .build() intent.launchUrl(this, Uri.parse(url)) } diff --git a/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt b/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt index b09da549..09f9dff3 100644 --- a/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt +++ b/app/src/main/java/net/vonforst/evmap/api/availability/AvailabilityDetector.kt @@ -2,6 +2,7 @@ package net.vonforst.evmap.api.availability import com.facebook.stetho.okhttp3.StethoInterceptor import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.withContext import net.vonforst.evmap.api.RateLimitInterceptor import net.vonforst.evmap.api.await @@ -21,6 +22,7 @@ interface AvailabilityDetector { suspend fun getAvailability(location: ChargeLocation): ChargeLocationStatus } +@ExperimentalCoroutinesApi abstract class BaseAvailabilityDetector(private val client: OkHttpClient) : AvailabilityDetector { protected val radius = 150 // max radius in meters diff --git a/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt b/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt index 3d3e0594..3676c910 100644 --- a/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt +++ b/app/src/main/java/net/vonforst/evmap/api/availability/ChargecloudAvailabilityDetector.kt @@ -8,6 +8,7 @@ import okhttp3.OkHttpClient import org.json.JSONObject import java.io.IOException +@ExperimentalCoroutinesApi class ChargecloudAvailabilityDetector( client: OkHttpClient, private val operatorId: String diff --git a/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt b/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt index 9423c5a0..7c2eedf3 100644 --- a/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt +++ b/app/src/main/java/net/vonforst/evmap/api/availability/NewMotionAvailabilityDetector.kt @@ -95,7 +95,7 @@ class NewMotionAvailabilityDetector(client: OkHttpClient, baseUrl: String? = nul // find nearest station to this position var markers = api.getMarkers(lng - coordRange, lng + coordRange, lat - coordRange, lat + coordRange) - val nearest = markers.minBy { marker -> + val nearest = markers.minByOrNull { marker -> distanceBetween(marker.coordinates.latitude, marker.coordinates.longitude, lat, lng) } ?: throw AvailabilityDetectorException("no candidates found.") diff --git a/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricModel.kt b/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricModel.kt index bbd42bbd..c415e7fc 100644 --- a/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricModel.kt +++ b/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricModel.kt @@ -77,7 +77,7 @@ data class ChargeLocation( */ fun maxPower(connectors: Set? = null): Double { return chargepoints.filter { connectors?.contains(it.type) ?: true } - .map { it.power }.max() ?: 0.0 + .map { it.power }.maxOrNull() ?: 0.0 } /** diff --git a/app/src/main/java/net/vonforst/evmap/fragment/GalleryFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/GalleryFragment.kt index f8d9ee5b..fe06709e 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/GalleryFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/GalleryFragment.kt @@ -76,7 +76,7 @@ class GalleryFragment : Fragment() { GalleryAdapter(requireContext(), detailView = true, pageToLoad = currentPosition) { startPostponedEnterTransition() } - binding.gallery.setPageTransformer { page, position -> + binding.gallery.setPageTransformer { page, _ -> val v = page as TouchImageView currentPage = v } diff --git a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt index 8b8473be..50f12566 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt @@ -164,7 +164,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac setHasOptionsMenu(true) postponeEnterTransition() - binding.root.setOnApplyWindowInsetsListener { v, insets -> + binding.root.setOnApplyWindowInsetsListener { _, insets -> binding.detailAppBar.toolbar.updateLayoutParams { topMargin = insets.systemWindowInsetTop } diff --git a/app/src/main/java/net/vonforst/evmap/navigation/ChromeCustomTabsNavigator.kt b/app/src/main/java/net/vonforst/evmap/navigation/ChromeCustomTabsNavigator.kt index cb6ab6a5..3b78bd98 100644 --- a/app/src/main/java/net/vonforst/evmap/navigation/ChromeCustomTabsNavigator.kt +++ b/app/src/main/java/net/vonforst/evmap/navigation/ChromeCustomTabsNavigator.kt @@ -5,6 +5,7 @@ import android.content.Context import android.net.Uri import android.os.Bundle import android.util.AttributeSet +import androidx.browser.customtabs.CustomTabColorSchemeParams import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat import androidx.core.content.withStyledAttributes @@ -28,7 +29,11 @@ class ChromeCustomTabsNavigator( navigatorExtras: Extras? ): NavDestination? { val intent = CustomTabsIntent.Builder() - .setToolbarColor(ContextCompat.getColor(context, R.color.colorPrimary)) + .setDefaultColorSchemeParams( + CustomTabColorSchemeParams.Builder() + .setToolbarColor(ContextCompat.getColor(context, R.color.colorPrimary)) + .build() + ) .build() intent.launchUrl(context, destination.url!!) return null // Do not add to the back stack, managed by Chrome Custom Tabs diff --git a/app/src/main/java/net/vonforst/evmap/utils/LocaleContextWrapper.kt b/app/src/main/java/net/vonforst/evmap/utils/LocaleContextWrapper.kt index 457b26f8..168cf06b 100644 --- a/app/src/main/java/net/vonforst/evmap/utils/LocaleContextWrapper.kt +++ b/app/src/main/java/net/vonforst/evmap/utils/LocaleContextWrapper.kt @@ -13,8 +13,6 @@ class LocaleContextWrapper(base: Context?) : ContextWrapper(base) { fun wrap(context: Context, language: String): ContextWrapper { val sysConfig: Configuration = context.applicationContext.resources.configuration val appConfig: Configuration = context.resources.configuration - var ctx = context - if (language == "" || language == "default") { // set default locale @@ -37,8 +35,7 @@ class LocaleContextWrapper(base: Context?) : ContextWrapper(base) { } } - ctx = context.createConfigurationContext(appConfig) - return LocaleContextWrapper(ctx) + return LocaleContextWrapper(context.createConfigurationContext(appConfig)) } } } \ No newline at end of file diff --git a/app/src/main/java/net/vonforst/evmap/viewmodel/FilterViewModel.kt b/app/src/main/java/net/vonforst/evmap/viewmodel/FilterViewModel.kt index 8b57572b..a1285fff 100644 --- a/app/src/main/java/net/vonforst/evmap/viewmodel/FilterViewModel.kt +++ b/app/src/main/java/net/vonforst/evmap/viewmodel/FilterViewModel.kt @@ -22,7 +22,7 @@ val powerSteps = listOf(0, 2, 3, 7, 11, 22, 43, 50, 75, 100, 150, 200, 250, 300, internal fun mapPower(i: Int) = powerSteps[i] internal fun mapPowerInverse(power: Int) = powerSteps .mapIndexed { index, v -> abs(v - power) to index } - .minBy { it.first }?.second ?: 0 + .minByOrNull { it.first }?.second ?: 0 internal fun getFilters( application: Application, @@ -109,14 +109,14 @@ internal fun filtersWithValue( listOf(filters, filterValues, active).forEach { if (it == null) return@forEach addSource(it) { - val filters = filters.value ?: return@addSource + val f = filters.value ?: return@addSource value = if (active != null && !active.value!!) { - filters.map { filter -> + f.map { filter -> FilterWithValue(filter, filter.defaultValue()) } } else { val values = filterValues.value ?: return@addSource - filters.map { filter -> + f.map { filter -> val value = values.find { it.key == filter.key } ?: filter.defaultValue() FilterWithValue(filter, filter.valueClass.cast(value)) diff --git a/app/src/main/java/net/vonforst/evmap/viewmodel/Utils.kt b/app/src/main/java/net/vonforst/evmap/viewmodel/Utils.kt index cc8670af..80600ee0 100644 --- a/app/src/main/java/net/vonforst/evmap/viewmodel/Utils.kt +++ b/app/src/main/java/net/vonforst/evmap/viewmodel/Utils.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.* import java.util.concurrent.atomic.AtomicBoolean +@Suppress("UNCHECKED_CAST") inline fun viewModelFactory(crossinline f: () -> VM) = object : ViewModelProvider.Factory { override fun create(aClass: Class): T = f() as T