From b882bc09a7ff1068e16e4dcbb8ffe668bf028c19 Mon Sep 17 00:00:00 2001 From: LilleBRG Date: Fri, 9 May 2025 17:03:50 +0200 Subject: [PATCH] create and diushlist works --- .../tech/mercantec/easyeat/helpers/auth.kt | 18 ++--- .../tech/mercantec/easyeat/models/dish.kt | 2 +- .../easyeat/ui/dishes/CreateDishActivity.kt | 8 +- .../easyeat/ui/dishes/DishesFragment.kt | 81 +++++++++---------- .../res/layout/create_dish_modal_dialog.xml | 11 ++- app/app/src/main/res/values/strings.xml | 3 + 6 files changed, 59 insertions(+), 64 deletions(-) diff --git a/app/app/src/main/java/tech/mercantec/easyeat/helpers/auth.kt b/app/app/src/main/java/tech/mercantec/easyeat/helpers/auth.kt index b82a640..a804e43 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/helpers/auth.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/helpers/auth.kt @@ -4,6 +4,8 @@ import android.content.ClipDescription import android.content.Context import android.util.Log import kotlinx.serialization.Serializable +import tech.mercantec.easyeat.models.Direction +import tech.mercantec.easyeat.models.Ingredient import tech.mercantec.easyeat.models.Recipe @Serializable data class LoginRequest(val emailUsr: String, val password: String) @@ -112,20 +114,11 @@ fun changePassword(ctx: Context, oldPassword: String, newPassword: String) { } @Serializable -data class CreateRecipeRequest(val recipe: Recipe) +data class CreateRecipeRequest(val name: String, val description: String, val directions: List, val ingredients: List) fun createRecipe(ctx: Context, recipe: Recipe) { - val request = CreateRecipeRequest(recipe) - Log.i("recipe name:", recipe.name) - Log.i("recipe name:", recipe.description) - for (x in recipe.directions) { - Log.i("recipe name:", x.instructions) - } - for(x in recipe.ingredients){ - Log.i("recipe name:", x.name) - Log.i("recipe name:", x.amount.toString()) - Log.i("recipe name:", x.unit.toString()) - } + val request = CreateRecipeRequest(recipe.name, recipe.description, recipe.directions, recipe.ingredients) + requestJson(ctx, "POST", "/api/recipe/create", request) } @@ -133,6 +126,5 @@ fun createRecipe(ctx: Context, recipe: Recipe) { data class RecipeResponse(val id: Int, val name: String, val description: String) fun getRecipies(ctx: Context): List { - Log.i("ello", "yes") return requestJson>(ctx, "GET", "/api/Recipe/getall", null) } diff --git a/app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt b/app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt index e31ea14..dc2f2a3 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt @@ -1,3 +1,3 @@ package tech.mercantec.easyeat.models -public data class DishListItem(val name: String, val description: String) +public data class DishListItem(val id: Int,val name: String, val description: String) diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/CreateDishActivity.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/CreateDishActivity.kt index ff22d94..e6fdd74 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/CreateDishActivity.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/CreateDishActivity.kt @@ -1,5 +1,6 @@ package tech.mercantec.easyeat.ui.dishes +import android.app.Activity import android.app.ProgressDialog import android.content.Context import android.os.Bundle @@ -83,15 +84,10 @@ class CreateDishActivity : AppCompatActivity() { Toast.makeText(this, "Password changed successfully", Toast.LENGTH_LONG).show() } + setResult(Activity.RESULT_OK) finish() } } - - - - - - } private fun addIngredientRow() { diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishesFragment.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishesFragment.kt index 7ee7de3..2910543 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishesFragment.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishesFragment.kt @@ -1,5 +1,6 @@ package tech.mercantec.easyeat.ui.dishes +import android.app.Activity import android.content.Intent import android.os.Bundle import android.util.Log @@ -8,6 +9,8 @@ import android.view.View import android.view.ViewGroup import android.widget.Button import android.widget.Toast +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.launch @@ -24,9 +27,7 @@ import kotlin.concurrent.thread class DishesFragment : Fragment() { private var _binding: FragmentDishesBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. + private lateinit var createDishLauncher: ActivityResultLauncher private val binding get() = _binding!! override fun onCreateView( @@ -37,41 +38,7 @@ class DishesFragment : Fragment() { _binding = FragmentDishesBinding.inflate(inflater, container, false) val root: View = binding.root - - thread { - val recipes: List - try { - recipes = getRecipies(requireContext()) - } catch (e: ApiRequestException) { - activity?.runOnUiThread { - Toast.makeText(requireContext(), e.message, Toast.LENGTH_LONG).show() - } - - return@thread - } - val dishes = recipes.map { - DishListItem( - it.name, - it.description - ) // assuming description is the main ingredient and no price - } - } - -// lifecycleScope.launch { -// try { -// val recipes = getRecipies(requireContext()) // this is now suspend -// val dishes = recipes.map { -// DishListItem(it.name, it.description) // assuming description is the main ingredient and no price -// } -// -// val adapter = DishAdapter(requireContext(), dishes) -// binding.dishesList.adapter = adapter -// } catch (e: Exception) { -// Log.i("nice", e.message.toString()) -// Toast.makeText(requireContext(), "Failed to load recipes: ${e.message}", Toast.LENGTH_LONG).show() -// } -// } - + loadRecipes() binding.addDish.setOnClickListener { val dialogView = LayoutInflater.from(requireContext()).inflate(R.layout.create_dish_modal_dialog, null) @@ -85,13 +52,13 @@ class DishesFragment : Fragment() { dialogView.findViewById