From 6e5f7491c2522c4550a9dece5dc614586e05b570 Mon Sep 17 00:00:00 2001 From: Efra Espada Date: Mon, 17 Oct 2022 09:33:09 +0200 Subject: [PATCH] =?UTF-8?q?feature:=20fixed=20cast=20exception,=20with=20p?= =?UTF-8?q?lace=20resolution=20used=20geo=20instead=E2=80=A6=20(#365)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature: fixed cast exception, with place resolution used geo instead places api, fixed indexOutOfBoundException * fixes unexpected indentation * increased minor version * warning ktLint check --- gradle.properties | 2 +- .../adevinta/leku/LocationPickerActivity.kt | 61 +++++++++++-------- 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index 79d49aac..959943cd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx2048m org.gradle.configureondemand=false android.useAndroidX=true libGroup=com.adevinta.android -libVersion=10.0.1 +libVersion=10.0.2 diff --git a/leku/src/main/java/com/adevinta/leku/LocationPickerActivity.kt b/leku/src/main/java/com/adevinta/leku/LocationPickerActivity.kt index 44aa65a6..bbaeaa73 100644 --- a/leku/src/main/java/com/adevinta/leku/LocationPickerActivity.kt +++ b/leku/src/main/java/com/adevinta/leku/LocationPickerActivity.kt @@ -396,10 +396,12 @@ class LocationPickerActivity : this, ) searchAdapter?.onClick = { - setNewSuggestion(suggestionList[it]) - changeListResultVisibility(View.GONE) - closeKeyboard() - hideSearchLayout() + if (suggestionList.size > it) { + setNewSuggestion(suggestionList[it]) + changeListResultVisibility(View.GONE) + closeKeyboard() + hideSearchLayout() + } } } else -> { @@ -493,8 +495,7 @@ class LocationPickerActivity : updateVoiceSearchVisibility() } else { if (term.length > MIN_CHARACTERS) { - if (placeResolution) geocoderPresenter?.getSuggestionsFromLocationName(term) - else retrieveLocationWithDebounceTimeFrom(term) + retrieveLocationWithDebounceTimeFrom(term) } clearSearchButton?.visibility = View.VISIBLE searchOption?.setIcon(R.drawable.leku_ic_search) @@ -1088,8 +1089,8 @@ class LocationPickerActivity : private fun getTransitionBundleParams(transitionBundle: Bundle) { bundle.putBundle(TRANSITION_BUNDLE, transitionBundle) - if (transitionBundle.keySet().contains(LATITUDE) && transitionBundle.keySet() - .contains(LONGITUDE) + if (transitionBundle.keySet().contains(LATITUDE) && + transitionBundle.keySet().contains(LONGITUDE) ) { setLocationFromBundle(transitionBundle) } @@ -1313,26 +1314,38 @@ class LocationPickerActivity : } private fun retrieveLocationFrom(query: String) { - if (searchZone != null && searchZone!!.isNotEmpty()) { - retrieveLocationFromZone(query, searchZone!!) - } else if (searchZoneRect != null) { - retrieveLocationFromZone(query, searchZoneRect!!) - } else if (isSearchZoneWithDefaultLocale) { - retrieveLocationFromDefaultZone(query) - } else { - geocoderPresenter?.getFromLocationName(query) + when { + placeResolution -> geocoderPresenter?.getSuggestionsFromLocationName(query) + searchZone != null && searchZone!!.isNotEmpty() -> { + retrieveLocationFromZone(query, searchZone!!) + } + searchZoneRect != null -> { + retrieveLocationFromZone(query, searchZoneRect!!) + } + isSearchZoneWithDefaultLocale -> { + retrieveLocationFromDefaultZone(query) + } + else -> { + geocoderPresenter?.getFromLocationName(query) + } } } private fun retrieveLocationWithDebounceTimeFrom(query: String) { - if (searchZone != null && searchZone!!.isNotEmpty()) { - retrieveDebouncedLocationFromZone(query, searchZone!!, DEBOUNCE_TIME) - } else if (searchZoneRect != null) { - retrieveDebouncedLocationFromZone(query, searchZoneRect!!, DEBOUNCE_TIME) - } else if (isSearchZoneWithDefaultLocale) { - retrieveDebouncedLocationFromDefaultZone(query, DEBOUNCE_TIME) - } else { - geocoderPresenter?.getDebouncedFromLocationName(query, DEBOUNCE_TIME) + when { + placeResolution -> geocoderPresenter?.getSuggestionsFromLocationName(query) + searchZone != null && searchZone!!.isNotEmpty() -> { + retrieveDebouncedLocationFromZone(query, searchZone!!, DEBOUNCE_TIME) + } + searchZoneRect != null -> { + retrieveDebouncedLocationFromZone(query, searchZoneRect!!, DEBOUNCE_TIME) + } + isSearchZoneWithDefaultLocale -> { + retrieveDebouncedLocationFromDefaultZone(query, DEBOUNCE_TIME) + } + else -> { + geocoderPresenter?.getDebouncedFromLocationName(query, DEBOUNCE_TIME) + } } }