From 59683ea17688cb1a0f0025c1f60da82971c524ca Mon Sep 17 00:00:00 2001 From: Reimar Date: Fri, 16 May 2025 10:51:32 +0200 Subject: [PATCH] Implement deleting dish, use popup menu for edit and delete --- .../tech/mercantec/easyeat/helpers/api.kt | 4 +- .../tech/mercantec/easyeat/helpers/dishes.kt | 3 + .../easyeat/ui/dishes/DishAdapter.kt | 10 +- .../easyeat/ui/dishes/DishDetailsActivity.kt | 16 ---- .../easyeat/ui/dishes/DishesFragment.kt | 93 +++++++++++++++++-- .../easyeat/ui/dishes/RecipeFragment.kt | 54 ----------- .../main/res/layout/activity_dish_details.xml | 10 +- .../src/main/res/layout/fragment_dishes.xml | 2 +- .../src/main/res/layout/fragment_recipe.xml | 48 ---------- .../src/main/res/menu/dish_context_menu.xml | 11 +++ app/app/src/main/res/values/strings.xml | 1 - 11 files changed, 102 insertions(+), 150 deletions(-) delete mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/RecipeFragment.kt delete mode 100644 app/app/src/main/res/layout/fragment_recipe.xml create mode 100644 app/app/src/main/res/menu/dish_context_menu.xml 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 9622502..499eac7 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 @@ -19,7 +19,7 @@ class ApiRequestException(message: String, cause: Throwable?) : Exception(messag class HttpResponse(val body: String, val code: Int) fun request(ctx: Context, method: String, path: String, data: String?, autoRefresh: Boolean = true): HttpResponse { - val url = URL(BuildConfig.API_LOCALHOST_URL + path) + val url = URL(BuildConfig.API_BASE_URL + path) val prefs = ctx.getSharedPreferences("easyeat", Context.MODE_PRIVATE) val authToken = prefs.getString("auth-token", null) @@ -67,7 +67,7 @@ fun request(ctx: Context, method: String, path: String, data: String?, autoRefre class HttpErrorResponse(val message: String) @OptIn(ExperimentalSerializationApi::class) -val json = Json { explicitNulls = false } +val json = Json { explicitNulls = false } // Treat missing values as null when decoding inline fun requestJson(ctx: Context, method: String, path: String, data: Req?): Res { val requestJson = diff --git a/app/app/src/main/java/tech/mercantec/easyeat/helpers/dishes.kt b/app/app/src/main/java/tech/mercantec/easyeat/helpers/dishes.kt index 7615793..93c646a 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/helpers/dishes.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/helpers/dishes.kt @@ -32,3 +32,6 @@ fun getRecipeDetails(ctx: Context, id: Int): Recipe { return requestJson(ctx, "GET", "/api/Recipe/get/$id", null) } +fun deleteRecipe(ctx: Context, id: Int) { + requestJson(ctx, "DELETE", "/api/Recipe/delete/$id", null) +} diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt index 467aecb..380609d 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt @@ -9,11 +9,7 @@ import android.widget.TextView import tech.mercantec.easyeat.R import tech.mercantec.easyeat.models.DishListItem -class DishAdapter( - context: Context, - private val dishes: List, - private val onDishClick: (DishListItem) -> Unit -) : ArrayAdapter(context, 0, dishes) { +class DishAdapter(context: Context, private val dishes: List) : ArrayAdapter(context, 0, dishes) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { val dish = getItem(position) @@ -25,10 +21,6 @@ class DishAdapter( nameTextView.text = dish?.name descriptionTextView.text = dish?.description - view.setOnClickListener { - dish?.let { onDishClick(it) } - } - return view } } diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishDetailsActivity.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishDetailsActivity.kt index 4d79f73..c8a1994 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishDetailsActivity.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishDetailsActivity.kt @@ -26,8 +26,6 @@ import tech.mercantec.easyeat.helpers.AddRecipeToShoppingList import tech.mercantec.easyeat.models.Ingredient import tech.mercantec.easyeat.models.Recipe -private lateinit var editRecipeLauncher: ActivityResultLauncher - class DishDetailsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -40,12 +38,6 @@ class DishDetailsActivity : AppCompatActivity() { return } - editRecipeLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - if (result.resultCode == Activity.RESULT_OK) { - loadRecipe(dishId) - } - } - findViewById