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 @@ + + + + + + + + + + +