From fa877b2c5e4be797f37788f1d12c66589904a5c5 Mon Sep 17 00:00:00 2001 From: Reimar Date: Thu, 8 May 2025 10:47:10 +0200 Subject: [PATCH] Show shopping item immediately as it is added to the list --- .../main/java/tech/mercantec/easyeat/helpers/api.kt | 2 +- .../tech/mercantec/easyeat/helpers/shopping_list.kt | 4 ++-- .../easyeat/ui/shopping_list/ShoppingListFragment.kt | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) 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 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 { @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(ctx, "POST", "/api/ShoppingList/add", request) + return requestJson(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, _ ->