From 00ecfc84854bbb8a8585b3e7037762bf8bc46c30 Mon Sep 17 00:00:00 2001 From: Reimar Date: Mon, 28 Apr 2025 10:44:55 +0200 Subject: [PATCH 1/2] Move dish list into fragment, rename home fragment, add icon --- .../tech/mercantec/easyeat/MainActivity.kt | 28 +-------- .../ui/{home => dishes}/DishAdapter.kt | 2 +- .../easyeat/ui/dishes/DishesFragment.kt | 57 +++++++++++++++++++ .../mercantec/easyeat/ui/home/HomeFragment.kt | 42 -------------- .../easyeat/ui/home/HomeViewModel.kt | 13 ----- .../main/res/drawable/ic_home_black_24dp.xml | 9 --- .../res/drawable/ic_restaurant_black_24px.xml | 10 ++++ app/app/src/main/res/layout/activity_main.xml | 18 +----- .../src/main/res/layout/fragment_dishes.xml | 12 ++++ app/app/src/main/res/layout/fragment_home.xml | 22 ------- app/app/src/main/res/menu/bottom_nav_menu.xml | 4 +- .../main/res/navigation/mobile_navigation.xml | 8 +-- 12 files changed, 90 insertions(+), 135 deletions(-) rename app/app/src/main/java/tech/mercantec/easyeat/ui/{home => dishes}/DishAdapter.kt (96%) create mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishesFragment.kt delete mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt delete mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeViewModel.kt delete mode 100644 app/app/src/main/res/drawable/ic_home_black_24dp.xml create mode 100644 app/app/src/main/res/drawable/ic_restaurant_black_24px.xml create mode 100644 app/app/src/main/res/layout/fragment_dishes.xml delete mode 100644 app/app/src/main/res/layout/fragment_home.xml diff --git a/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt b/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt index eaf691a..f3835dd 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt @@ -1,8 +1,6 @@ package tech.mercantec.easyeat import android.os.Bundle -import android.widget.ListView -import android.widget.Toast import com.google.android.material.bottomnavigation.BottomNavigationView import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController @@ -10,8 +8,6 @@ import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupWithNavController import tech.mercantec.easyeat.databinding.ActivityMainBinding -import tech.mercantec.easyeat.ui.home.DishAdapter -import tech.mercantec.easyeat.models.Dish class MainActivity : AppCompatActivity() { @@ -28,32 +24,10 @@ class MainActivity : AppCompatActivity() { val navController = findNavController(R.id.nav_host_fragment_activity_main) val appBarConfiguration = AppBarConfiguration( setOf( - R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications + R.id.navigation_dishes, R.id.navigation_dashboard, R.id.navigation_notifications ) ) setupActionBarWithNavController(navController, appBarConfiguration) navView.setupWithNavController(navController) - - val listView: ListView = findViewById(R.id.dishesList) - val listItems = arrayOf( - Dish("Spaghetti Bolognese", "Beef", 70.5), - Dish("Margherita Pizza", "Cheese", 60.0), - Dish("Chicken Curry", "Chicken", 80.2), - Dish("Vegetable Stir Fry", "Mixed Vegetables", 50.5), - Dish("Sushi", "Fish", 100.0), - Dish("Beef Tacos", "Beef", 60.8), - Dish("Lentil Soup", "Lentils", 40.5), - Dish("Pasta Alfredo", "Cream", 60.9), - Dish("Caesar Salad", "Chicken", 50.8), - Dish("Falafel Wrap", "Chickpeas", 50.2) - ) - - val listAdapter = DishAdapter(this, listItems) - listView.adapter = listAdapter - - listView.setOnItemClickListener { parent, view, position, id -> - val selectedItem = parent.getItemAtPosition(position) as Dish - Toast.makeText(this, "you selected $selectedItem.name that costs ${selectedItem.expense} kr.", Toast.LENGTH_LONG).show() - } } } diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/DishAdapter.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt similarity index 96% rename from app/app/src/main/java/tech/mercantec/easyeat/ui/home/DishAdapter.kt rename to app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt index 99e9c56..cde2497 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/DishAdapter.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt @@ -1,4 +1,4 @@ -package tech.mercantec.easyeat.ui.home +package tech.mercantec.easyeat.ui.dishes import android.content.Context import android.view.LayoutInflater 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 new file mode 100644 index 0000000..c54aeda --- /dev/null +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishesFragment.kt @@ -0,0 +1,57 @@ +package tech.mercantec.easyeat.ui.dishes + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.fragment.app.Fragment +import tech.mercantec.easyeat.databinding.FragmentDishesBinding +import tech.mercantec.easyeat.models.Dish + +class DishesFragment : Fragment() { + + private var _binding: FragmentDishesBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + _binding = FragmentDishesBinding.inflate(inflater, container, false) + val root: View = binding.root + + context?.let { context -> + binding.dishesList.setOnItemClickListener { parent, view, position, id -> + val selectedItem = parent.getItemAtPosition(position) as Dish + Toast.makeText(context, "you selected $selectedItem.name that costs ${selectedItem.expense} kr.", Toast.LENGTH_LONG).show() + } + + val listItems = arrayOf( + Dish("Spaghetti Bolognese", "Beef", 70.5), + Dish("Margherita Pizza", "Cheese", 60.0), + Dish("Chicken Curry", "Chicken", 80.2), + Dish("Vegetable Stir Fry", "Mixed Vegetables", 50.5), + Dish("Sushi", "Fish", 100.0), + Dish("Beef Tacos", "Beef", 60.8), + Dish("Lentil Soup", "Lentils", 40.5), + Dish("Pasta Alfredo", "Cream", 60.9), + Dish("Caesar Salad", "Chicken", 50.8), + Dish("Falafel Wrap", "Chickpeas", 50.2) + ) + + binding.dishesList.adapter = DishAdapter(context, listItems) + } + + return root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt deleted file mode 100644 index 0cfcf3a..0000000 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt +++ /dev/null @@ -1,42 +0,0 @@ -package tech.mercantec.easyeat.ui.home - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider -import tech.mercantec.easyeat.databinding.FragmentHomeBinding - -class HomeFragment : Fragment() { - - private var _binding: FragmentHomeBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - val homeViewModel = - ViewModelProvider(this).get(HomeViewModel::class.java) - - _binding = FragmentHomeBinding.inflate(inflater, container, false) - val root: View = binding.root - - val textView: TextView = binding.textHome - homeViewModel.text.observe(viewLifecycleOwner) { - textView.text = it - } - return root - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeViewModel.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeViewModel.kt deleted file mode 100644 index 82f3c4f..0000000 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeViewModel.kt +++ /dev/null @@ -1,13 +0,0 @@ -package tech.mercantec.easyeat.ui.home - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class HomeViewModel : ViewModel() { - - private val _text = MutableLiveData().apply { - value = "This is home Fragment" - } - val text: LiveData = _text -} \ No newline at end of file diff --git a/app/app/src/main/res/drawable/ic_home_black_24dp.xml b/app/app/src/main/res/drawable/ic_home_black_24dp.xml deleted file mode 100644 index f8bb0b5..0000000 --- a/app/app/src/main/res/drawable/ic_home_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/app/src/main/res/drawable/ic_restaurant_black_24px.xml b/app/app/src/main/res/drawable/ic_restaurant_black_24px.xml new file mode 100644 index 0000000..393b7c9 --- /dev/null +++ b/app/app/src/main/res/drawable/ic_restaurant_black_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/app/src/main/res/layout/activity_main.xml b/app/app/src/main/res/layout/activity_main.xml index eb29570..8d677f4 100644 --- a/app/app/src/main/res/layout/activity_main.xml +++ b/app/app/src/main/res/layout/activity_main.xml @@ -1,23 +1,11 @@ - + android:layout_height="match_parent"> - - - + + + diff --git a/app/app/src/main/res/layout/fragment_home.xml b/app/app/src/main/res/layout/fragment_home.xml deleted file mode 100644 index f3d9b08..0000000 --- a/app/app/src/main/res/layout/fragment_home.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/app/src/main/res/menu/bottom_nav_menu.xml b/app/app/src/main/res/menu/bottom_nav_menu.xml index 8525ec3..fddba85 100644 --- a/app/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/app/src/main/res/menu/bottom_nav_menu.xml @@ -2,8 +2,8 @@ + app:startDestination="@+id/navigation_dishes"> + tools:layout="@layout/fragment_dishes" /> Date: Mon, 28 Apr 2025 13:23:12 +0200 Subject: [PATCH 2/2] Rename dashboard to shopping list --- .../tech/mercantec/easyeat/MainActivity.kt | 2 +- .../easyeat/ui/dashboard/DashboardFragment.kt | 42 ------------------- .../ui/dashboard/DashboardViewModel.kt | 13 ------ .../ui/shopping_list/ShoppingListFragment.kt | 33 +++++++++++++++ .../res/drawable/ic_dashboard_black_24dp.xml | 9 ---- .../res/drawable/ic_list_alt_black_24px.xml | 11 +++++ .../main/res/layout/fragment_dashboard.xml | 22 ---------- .../res/layout/fragment_shopping_list.xml | 9 ++++ app/app/src/main/res/menu/bottom_nav_menu.xml | 6 +-- .../main/res/navigation/mobile_navigation.xml | 8 ++-- app/app/src/main/res/values/strings.xml | 2 +- 11 files changed, 62 insertions(+), 95 deletions(-) delete mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardFragment.kt delete mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardViewModel.kt create mode 100644 app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt delete mode 100644 app/app/src/main/res/drawable/ic_dashboard_black_24dp.xml create mode 100644 app/app/src/main/res/drawable/ic_list_alt_black_24px.xml delete mode 100644 app/app/src/main/res/layout/fragment_dashboard.xml create mode 100644 app/app/src/main/res/layout/fragment_shopping_list.xml diff --git a/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt b/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt index f3835dd..4c1d13e 100644 --- a/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt +++ b/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt @@ -24,7 +24,7 @@ class MainActivity : AppCompatActivity() { val navController = findNavController(R.id.nav_host_fragment_activity_main) val appBarConfiguration = AppBarConfiguration( setOf( - R.id.navigation_dishes, R.id.navigation_dashboard, R.id.navigation_notifications + R.id.navigation_dishes, R.id.navigation_shopping_list, R.id.navigation_notifications ) ) setupActionBarWithNavController(navController, appBarConfiguration) diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardFragment.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardFragment.kt deleted file mode 100644 index 5a994a7..0000000 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardFragment.kt +++ /dev/null @@ -1,42 +0,0 @@ -package tech.mercantec.easyeat.ui.dashboard - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider -import tech.mercantec.easyeat.databinding.FragmentDashboardBinding - -class DashboardFragment : Fragment() { - - private var _binding: FragmentDashboardBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - val dashboardViewModel = - ViewModelProvider(this).get(DashboardViewModel::class.java) - - _binding = FragmentDashboardBinding.inflate(inflater, container, false) - val root: View = binding.root - - val textView: TextView = binding.textDashboard - dashboardViewModel.text.observe(viewLifecycleOwner) { - textView.text = it - } - return root - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardViewModel.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardViewModel.kt deleted file mode 100644 index 6bda48b..0000000 --- a/app/app/src/main/java/tech/mercantec/easyeat/ui/dashboard/DashboardViewModel.kt +++ /dev/null @@ -1,13 +0,0 @@ -package tech.mercantec.easyeat.ui.dashboard - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class DashboardViewModel : ViewModel() { - - private val _text = MutableLiveData().apply { - value = "This is dashboard Fragment" - } - val text: LiveData = _text -} \ No newline at end of file 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 new file mode 100644 index 0000000..81b5d99 --- /dev/null +++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt @@ -0,0 +1,33 @@ +package tech.mercantec.easyeat.ui.shopping_list + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import tech.mercantec.easyeat.databinding.FragmentShoppingListBinding + +class ShoppingListFragment : Fragment() { + + private var _binding: FragmentShoppingListBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + _binding = FragmentShoppingListBinding.inflate(inflater, container, false) + val root: View = binding.root + + return root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/app/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/app/app/src/main/res/drawable/ic_dashboard_black_24dp.xml deleted file mode 100644 index 46fc8de..0000000 --- a/app/app/src/main/res/drawable/ic_dashboard_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/app/src/main/res/drawable/ic_list_alt_black_24px.xml b/app/app/src/main/res/drawable/ic_list_alt_black_24px.xml new file mode 100644 index 0000000..ef5d22e --- /dev/null +++ b/app/app/src/main/res/drawable/ic_list_alt_black_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/app/src/main/res/layout/fragment_dashboard.xml b/app/app/src/main/res/layout/fragment_dashboard.xml deleted file mode 100644 index 166ab0e..0000000 --- a/app/app/src/main/res/layout/fragment_dashboard.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/app/src/main/res/layout/fragment_shopping_list.xml b/app/app/src/main/res/layout/fragment_shopping_list.xml new file mode 100644 index 0000000..33133f0 --- /dev/null +++ b/app/app/src/main/res/layout/fragment_shopping_list.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/app/src/main/res/menu/bottom_nav_menu.xml b/app/app/src/main/res/menu/bottom_nav_menu.xml index fddba85..40d55c4 100644 --- a/app/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/app/src/main/res/menu/bottom_nav_menu.xml @@ -7,9 +7,9 @@ android:title="@string/title_your_dishes" /> + android:id="@+id/navigation_shopping_list" + android:icon="@drawable/ic_list_alt_black_24px" + android:title="@string/title_shopping_list" /> + android:id="@+id/navigation_shopping_list" + android:name="tech.mercantec.easyeat.ui.shopping_list.ShoppingListFragment" + android:label="@string/title_shopping_list" + tools:layout="@layout/fragment_shopping_list" /> EasyEat MainActivity Your Dishes - Dashboard + Shopping list Notifications Welcome to EasyEat Login