BasicArchitecture задание 1#33
BasicArchitecture задание 1#33Gbdr73 wants to merge 5 commits intoAndroid-Developer-Basic:masterfrom
Conversation
| } | ||
|
|
||
| fun searchAddress(query: String) { | ||
| viewModelScope.launch { |
There was a problem hiding this comment.
Давайте попробуем предусмотреть отмену корутин. Сохраняйте Job текущего запроса и отменяйте его перед запуском нового, чтобы избежать лишних запросов и race conditions, когда результаты могут прийти в неправильном порядке
|
|
||
| if (!response.isSuccessful){ | ||
| val errorResponse = response.errorBody()?.string() | ||
| Log.e("API Error", "Error response: $errorResponse") |
There was a problem hiding this comment.
Лучше еще пробрасывать исключение при неуспешном ответе, чтобы ВМ могла корректно обработать ошибку и показать пользователю сообщение.
| } | ||
|
|
||
| binding.addressInput.setOnItemClickListener { _, _, position, _ -> | ||
| val selectedItem = binding.addressInput.adapter.getItem(position) as? UserAddress |
There was a problem hiding this comment.
Адаптер хранит строки, но вы пытаетесь получить UserAddress. Это приведет к ClassCastException при выборе элемента из списка. Можно использовать кастомный ArrayAdapter для UserAddress или храните маппинг между строками и объектами UserAddress, чтобы при выборе можно было получить полный объект адреса.
There was a problem hiding this comment.
Странно. Попробовал выбирать элемент списка - в Logcat никакого Exception нет.
|
|
||
| private fun checkEmptyFields(): Boolean{ | ||
| var successful = true | ||
| if (wizardCache.userAddress.fullAddress == ""){ |
There was a problem hiding this comment.
isBlank учитывает строки, состоящие только из пробелов, что делает валидацию более надежной
No description provided.