@@ -74,7 +74,7 @@ class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMapCli
7474 private var xposedDialog: AlertDialog ? = null
7575 private lateinit var alertDialog: MaterialAlertDialogBuilder
7676 private lateinit var dialog: AlertDialog
77-
77+ var listAddress : List < Address > ? = null
7878
7979
8080 override fun onCreate (savedInstanceState : Bundle ? ) {
@@ -278,7 +278,7 @@ class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMapCli
278278 moveMapToNewLocation(true )
279279 }
280280 is SearchProgress .Fail -> {
281- showToast(value.error)
281+ showToast(value.error!! )
282282 progressBar.cancel()
283283 }
284284
@@ -444,7 +444,7 @@ class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMapCli
444444 }
445445
446446
447- private suspend fun getSearchAddress (address : String ) = callbackFlow< SearchProgress > {
447+ private suspend fun getSearchAddress (address : String ) = callbackFlow {
448448 withContext(Dispatchers .IO ){
449449 trySend(SearchProgress .Progress )
450450
@@ -454,15 +454,21 @@ class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMapCli
454454 }
455455
456456 try {
457- val addresses = Geocoder (this @MapsActivity).getFromLocationName(address,5 )
458- if (address.isEmpty()){
459- trySend(SearchProgress .Fail (" " ))
457+ val geocoder = Geocoder (this @MapsActivity)
458+ listAddress = geocoder.getFromLocationName(address,5 )
459+ val list: List <Address >? = listAddress
460+ if (list == null ) {
461+ trySend(SearchProgress .Fail (null ))
460462 }
461- addresses!! [0 ]?.let {
462- trySend(SearchProgress .Complete (it))
463+ if (list?.size == 1 ){
464+ trySend(SearchProgress .Complete (list[0 ]))
465+ } else {
466+ if (listAddress?.size != 0 ) {
467+ trySend(SearchProgress .Fail (null ))
468+ }
469+ trySend(SearchProgress .Fail (" Address not found" ))
463470 }
464-
465- }catch (io : IOException ){
471+ } catch (io : IOException ){
466472 trySend(SearchProgress .Fail (" No internet" ))
467473 }
468474 }
@@ -485,7 +491,7 @@ class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMapCli
485491sealed class SearchProgress {
486492 object Progress : SearchProgress()
487493 data class Complete (val address : Address ) : SearchProgress()
488- data class Fail (val error : String ) : SearchProgress()
494+ data class Fail (val error : String? ) : SearchProgress()
489495 data class RegexMatch (val lat : Double , val lon : Double ) : SearchProgress()
490496
491497}
0 commit comments