diff --git a/app/app/src/androidTest/java/tech/mercantec/easyeat/ExampleInstrumentedTest.kt b/app/app/src/androidTest/java/tech/mercantec/easyeat/ExampleInstrumentedTest.kt
deleted file mode 100644
index dd84092..0000000
--- a/app/app/src/androidTest/java/tech/mercantec/easyeat/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package tech.mercantec.easyeat
-
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
- @Test
- fun useAppContext() {
- // Context of the app under test.
- val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("tech.mercantec.easyeat", appContext.packageName)
- }
-}
\ No newline at end of file
diff --git a/app/app/src/main/AndroidManifest.xml b/app/app/src/main/AndroidManifest.xml
index 0a64271..830e77d 100644
--- a/app/app/src/main/AndroidManifest.xml
+++ b/app/app/src/main/AndroidManifest.xml
@@ -38,6 +38,10 @@
+
+
+
\ No newline at end of file
diff --git a/app/app/src/main/java/tech/mercantec/easyeat/CreateDishActivity.kt b/app/app/src/main/java/tech/mercantec/easyeat/CreateDishActivity.kt
new file mode 100644
index 0000000..21e10ac
--- /dev/null
+++ b/app/app/src/main/java/tech/mercantec/easyeat/CreateDishActivity.kt
@@ -0,0 +1,25 @@
+package tech.mercantec.easyeat
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.widget.Toolbar
+
+class CreateDishActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_create_dish_form)
+
+ // Setup the Toolbar as ActionBar
+ val toolbar: Toolbar = findViewById(R.id.toolbar)
+ setSupportActionBar(toolbar)
+
+ // Enable the Up button
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ }
+
+ // Handle the Up button click
+ override fun onSupportNavigateUp(): Boolean {
+ onBackPressedDispatcher.onBackPressed()
+ return true
+ }
+}
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 53828c0..8355af8 100644
--- a/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt
+++ b/app/app/src/main/java/tech/mercantec/easyeat/MainActivity.kt
@@ -1,13 +1,8 @@
package tech.mercantec.easyeat
-import android.graphics.Color
+import android.content.Intent
import android.os.Bundle
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ArrayAdapter
-import android.widget.BaseAdapter
import android.widget.ListView
-import android.widget.TextView
import android.widget.Toast
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
@@ -15,9 +10,10 @@ import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
+import com.google.android.material.floatingactionbutton.FloatingActionButton
import tech.mercantec.easyeat.databinding.ActivityMainBinding
-import tech.mercantec.easyeat.ui.home.DishAdapter
-import tech.mercantec.easyeat.ui.home.models.Dish
+import tech.mercantec.easyeat.models.Dish
+import tech.mercantec.easyeat.ui.dishes.DishAdapter
class MainActivity : AppCompatActivity() {
@@ -34,32 +30,17 @@ 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_shopping_list, 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()
+ findViewById(R.id.add_dish).setOnClickListener {
+ val intent = Intent(this, CreateDishActivity::class.java)
+ startActivity(intent)
}
+
}
}
diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/models/dish.kt b/app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt
similarity index 66%
rename from app/app/src/main/java/tech/mercantec/easyeat/ui/home/models/dish.kt
rename to app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt
index 49965ad..1b84e3e 100644
--- a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/models/dish.kt
+++ b/app/app/src/main/java/tech/mercantec/easyeat/models/dish.kt
@@ -1,3 +1,3 @@
-package tech.mercantec.easyeat.ui.home.models
+package tech.mercantec.easyeat.models
public data class Dish(val name: String, val mainIngredient: String, val expense: Double)
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/home/DishAdapter.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/dishes/DishAdapter.kt
similarity index 91%
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 6b264a0..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
@@ -7,7 +7,7 @@ import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.TextView
import tech.mercantec.easyeat.R
-import tech.mercantec.easyeat.ui.home.models.Dish
+import tech.mercantec.easyeat.models.Dish
class DishAdapter(context: Context, dishes: Array) :
ArrayAdapter(context, 0, dishes) {
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/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/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt
similarity index 50%
rename from app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt
rename to app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt
index 0cfcf3a..81b5d99 100644
--- a/app/app/src/main/java/tech/mercantec/easyeat/ui/home/HomeFragment.kt
+++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt
@@ -1,17 +1,15 @@
-package tech.mercantec.easyeat.ui.home
+package tech.mercantec.easyeat.ui.shopping_list
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
+import tech.mercantec.easyeat.databinding.FragmentShoppingListBinding
-class HomeFragment : Fragment() {
+class ShoppingListFragment : Fragment() {
- private var _binding: FragmentHomeBinding? = null
+ private var _binding: FragmentShoppingListBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
@@ -22,16 +20,9 @@ class HomeFragment : Fragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- val homeViewModel =
- ViewModelProvider(this).get(HomeViewModel::class.java)
-
- _binding = FragmentHomeBinding.inflate(inflater, container, false)
+ _binding = FragmentShoppingListBinding.inflate(inflater, container, false)
val root: View = binding.root
- val textView: TextView = binding.textHome
- homeViewModel.text.observe(viewLifecycleOwner) {
- textView.text = it
- }
return root
}
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_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_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/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_create_dish_form.xml b/app/app/src/main/res/layout/activity_create_dish_form.xml
new file mode 100644
index 0000000..b64643f
--- /dev/null
+++ b/app/app/src/main/res/layout/activity_create_dish_form.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/app/src/main/res/layout/activity_create_dish_ingredient_row.xml b/app/app/src/main/res/layout/activity_create_dish_ingredient_row.xml
new file mode 100644
index 0000000..7876c99
--- /dev/null
+++ b/app/app/src/main/res/layout/activity_create_dish_ingredient_row.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/app/src/main/res/layout/activity_main.xml b/app/app/src/main/res/layout/activity_main.xml
index eb29570..478b74a 100644
--- a/app/app/src/main/res/layout/activity_main.xml
+++ b/app/app/src/main/res/layout/activity_main.xml
@@ -1,34 +1,36 @@
-
-
+
+
-
-
@@ -38,8 +40,8 @@
android:layout_height="wrap_content"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_nav_menu" />
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_dishes.xml b/app/app/src/main/res/layout/fragment_dishes.xml
new file mode 100644
index 0000000..7d6b6b4
--- /dev/null
+++ b/app/app/src/main/res/layout/fragment_dishes.xml
@@ -0,0 +1,12 @@
+
+
+
+
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/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 8525ec3..40d55c4 100644
--- a/app/app/src/main/res/menu/bottom_nav_menu.xml
+++ b/app/app/src/main/res/menu/bottom_nav_menu.xml
@@ -2,14 +2,14 @@