diff --git a/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt b/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt index c3297eb..28dfc6f 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt @@ -94,6 +94,6 @@ inline fun <reified Req, reified Res> requestJson(ctx: Context, method: String, Log.e("EasyEat", e.message!!) Log.e("EasyEat", response.body) - throw ApiRequestException("Failed to parse response: $response", e) + throw ApiRequestException("Failed to parse response: ${response.body}", e) } } diff --git a/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt b/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt index 73ff1bb..a9adbc8 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt @@ -11,10 +11,10 @@ fun getShoppingList(ctx: Context): Array<ShoppingListItem> { @Serializable data class AddShoppingItemRequest(val name: String, val amount: Double?, val unit: String?, val checked: Boolean) -fun addShoppingItem(ctx: Context, name: String, amount: Double?, unit: String?) { +fun addShoppingItem(ctx: Context, name: String, amount: Double?, unit: String?): ShoppingListItem { val request = AddShoppingItemRequest(name, amount, unit, false) - requestJson<AddShoppingItemRequest, Boolean>(ctx, "POST", "/api/ShoppingList/add", request) + return requestJson<AddShoppingItemRequest, ShoppingListItem>(ctx, "POST", "/api/ShoppingList/add", request) } fun toggleShoppingItemChecked(ctx: Context, item: ShoppingListItem) { diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt index fee97e3..ba837e6 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt @@ -128,17 +128,25 @@ class ShoppingListFragment : Fragment() { dialog.getButton(AlertDialog.BUTTON_NEGATIVE).isEnabled = false thread { + val item: ShoppingListItem try { - addShoppingItem(requireContext(), name, amount, unit) + item = addShoppingItem(requireContext(), name, amount, unit) } catch (e: ApiRequestException) { activity?.runOnUiThread { Toast.makeText(context, e.message, Toast.LENGTH_LONG).show() } + + return@thread } finally { activity?.runOnUiThread { dialog.dismiss() } } + + activity?.runOnUiThread { + val adapter = binding.shoppingList.adapter as ShoppingItemAdapter + adapter.insert(item, adapter.count) + } } } .setNegativeButton(R.string.cancel_label) { dialog, _ ->