From dbb25a394dda588aa0d469c95ae8e09aecb6d869 Mon Sep 17 00:00:00 2001 From: Reimar Date: Tue, 13 May 2025 14:56:34 +0200 Subject: [PATCH] Use popup menu for creating dish --- .../easyeat/ui/dishes/DishesFragment.kt | 41 ++++++++++--------- .../ui/shopping_list/ShoppingListFragment.kt | 3 ++ .../res/layout/create_dish_modal_dialog.xml | 36 ---------------- .../src/main/res/menu/create_dish_menu.xml | 11 +++++ app/app/src/main/res/values-night/themes.xml | 1 + app/app/src/main/res/values/strings.xml | 4 +- 6 files changed, 39 insertions(+), 57 deletions(-) delete mode 100644 app/app/src/main/res/layout/create_dish_modal_dialog.xml create mode 100644 app/app/src/main/res/menu/create_dish_menu.xml 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 93e06c7..70ab3fd 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 @@ -6,7 +6,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Button +import android.widget.PopupMenu import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts @@ -36,28 +36,31 @@ class DishesFragment : Fragment() { loadRecipes() binding.addDish.setOnClickListener { - val dialogView = LayoutInflater.from(requireContext()).inflate(R.layout.create_dish_modal_dialog, null) + val popup = PopupMenu(requireActivity(), it) - val dialog = android.app.AlertDialog.Builder(requireContext()) - .setView(dialogView) - .setCancelable(true) // tap outside to dismiss - .create() + popup.apply { + menuInflater.inflate(R.menu.create_dish_menu, menu) - dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) + setOnMenuItemClickListener { + when (it.itemId) { + R.id.create_manually -> { + val intent = Intent(requireContext(), CreateDishActivity::class.java) + createDishLauncher.launch(intent) - dialogView.findViewById