diff --git a/.whitesource b/.whitesource
new file mode 100644
index 0000000..e34827b
--- /dev/null
+++ b/.whitesource
@@ -0,0 +1,22 @@
+{
+ "scanSettings": {
+ "configMode": "AUTO",
+ "configExternalURL": "",
+ "projectToken": "",
+ "baseBranches": []
+ },
+ "checkRunSettings": {
+ "vulnerableCheckRunConclusionLevel": "failure",
+ "displayMode": "diff",
+ "useMendCheckNames": true
+ },
+ "issueSettings": {
+ "minSeverityLevel": "LOW",
+ "issueType": "DEPENDENCY"
+ },
+ "remediateSettings": {
+ "workflowRules": {
+ "enabled": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index be81a92..39c22ac 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -14,8 +14,8 @@
android:exported="true"
android:label="@string/app_name">
+
-
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/MainActivity.kt b/app/src/main/java/com/teavaro/teavarodemoapp/MainActivity.kt
index 3d4aee9..5c82c6c 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/MainActivity.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/MainActivity.kt
@@ -1,14 +1,18 @@
package com.teavaro.teavarodemoapp
+import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
+import android.widget.Toast
+import androidx.appcompat.app.AlertDialog
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
+import com.teavaro.teavarodemoapp.core.Store
import com.teavaro.teavarodemoapp.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
@@ -37,13 +41,17 @@ class MainActivity : AppCompatActivity() {
supportActionBar?.setDisplayShowTitleEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setIcon(R.mipmap.ic_logo)
-
-
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.login_menu, menu)
+ val idLogin = menu.getItem(0).itemId
+ val idLogout = menu.getItem(1).itemId
+ if(Store.isLogin)
+ menu.removeItem(idLogin)
+ else
+ menu.removeItem(idLogout)
return true
}
@@ -58,7 +66,20 @@ class MainActivity : AppCompatActivity() {
navController.navigate(R.id.navigation_login)
}
R.id.menu_logout -> {
- navController.navigate(R.id.navigation_home)
+ val builder = AlertDialog.Builder(this)
+ builder.setTitle("Logout confirmation")
+ .setMessage("Do you want to proceed with the logout?")
+ .setNegativeButton("Cancel") {_,_ ->
+
+ }
+ .setPositiveButton("Proceed") { _, _ ->
+ Store.isLogin = false
+ val startIntent = Intent(this, MainActivity::class.java)
+ startIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
+ startActivity(startIntent)
+ Toast.makeText(this, "Logout success!", Toast.LENGTH_SHORT).show()
+ }
+ .create().show()
}
else -> navController.navigate(R.id.navigation_home)
}
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/core/Item.kt b/app/src/main/java/com/teavaro/teavarodemoapp/core/Item.kt
new file mode 100644
index 0000000..e23650c
--- /dev/null
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/core/Item.kt
@@ -0,0 +1,12 @@
+package com.teavaro.teavarodemoapp.core
+
+data class Item (
+ var id: Int,
+ var title: String,
+ var price: Float,
+ var picture: String,
+ var isOffer: Boolean = false,
+ var isInStock: Boolean = true,
+ var isWish: Boolean = false,
+ var countOnCart: Int = 0
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/core/Store.kt b/app/src/main/java/com/teavaro/teavarodemoapp/core/Store.kt
new file mode 100644
index 0000000..2c05ed1
--- /dev/null
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/core/Store.kt
@@ -0,0 +1,79 @@
+package com.teavaro.teavarodemoapp.core
+
+object Store {
+
+ private var listItems: ArrayList- = ArrayList()
+ var isLogin = false
+
+ init {
+ listItems.add(Item(0, "Jacob’s Baked Crinklys Cheese", 60.00f, "crinklys", true))
+ listItems.add(Item(1, "Pork Cocktail Sausages, Pack", 54.00f, "pork", true, false))
+ listItems.add(Item(2, "Broccoli and Cauliflower Mix", 6.00f, "cauliflower"))
+ listItems.add(Item(3, "Morrisons Creamed Rice Pudding", 44.00f, "paprika"))
+ listItems.add(Item(4, "Fresh For The Bold Ground Amazon", 12.00f, "burst"))
+ listItems.add(Item(5, "Frito-Lay Doritos & Cheetos Mix", 20.00f, "watermelon"))
+ listItems.add(Item(6, "Green Mountain Coffee Roast", 20.00f, "grapes"))
+ listItems.add(Item(7, "Nature’s Bakery Whole Wheat Bars", 50.00f, "mixed"))
+ }
+
+ fun addItemToCart(id: Int) {
+ listItems[id].countOnCart += 1
+ }
+
+ fun removeItemFromCart(id: Int) {
+ listItems[id].countOnCart = 0
+ }
+
+ fun addItemToWish(id: Int) {
+ listItems[id].isWish = true
+ }
+
+ fun removeItemFromWish(id: Int) {
+ listItems[id].isWish = false
+ }
+
+ fun getItems(): ArrayList
- {
+ return listItems
+ }
+
+ fun getItemsCart(): ArrayList
- {
+ val listCart = ArrayList
- ()
+ for (item in listItems) {
+ if (item.countOnCart > 0)
+ listCart.add(item)
+ }
+ return listCart
+ }
+
+ fun getItemsWish(): ArrayList
- {
+ val listWish = ArrayList
- ()
+ for (item in listItems) {
+ if (item.isWish)
+ listWish.add(item)
+ }
+ return listWish
+ }
+
+ fun getTotalPriceCart(): Float {
+ var total = 0f
+ for (item in listItems) {
+ total += item.price * item.countOnCart
+ }
+ return total
+ }
+
+ fun getItemsOffer(): ArrayList
- {
+ val listOffer = ArrayList
- ()
+ for (item in listItems) {
+ if (item.isOffer)
+ listOffer.add(item)
+ }
+ return listOffer
+ }
+
+ fun removeAllCartItems() {
+ for (item in listItems) {
+ item.countOnCart = 0
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartAdapter.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartAdapter.kt
index 7873071..f17e669 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartAdapter.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartAdapter.kt
@@ -5,18 +5,35 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
+import android.widget.Toast
+import androidx.navigation.findNavController
import com.teavaro.teavarodemoapp.R
+import com.teavaro.teavarodemoapp.core.Item
+import com.teavaro.teavarodemoapp.core.Store
+import kotlinx.android.synthetic.main.item_cart.view.*
+import kotlinx.android.synthetic.main.item_cart.view.txtPrice
+import kotlinx.android.synthetic.main.item_cart.view.txtTitle
import kotlinx.android.synthetic.main.item_shop.view.*
class CartAdapter(context: Context,
- private val listItems: List) :
- ArrayAdapter(context, 0, listItems) {
+ private val listItems: List
- ) :
+ ArrayAdapter
- (context, 0, listItems) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
- val layout = LayoutInflater.from(context).inflate(R.layout.item_shop,parent, false)
+ val layout = LayoutInflater.from(context).inflate(R.layout.item_cart,parent, false)
val item = listItems[position]
- layout.txtTitle.text = item
+ val subTotal: Float = item.price * item.countOnCart
+ layout.txtTitle.text = item.title
+ layout.txtPrice.text = item.price.toString()
+ layout.txtCount.text = item.countOnCart.toString()
+ layout.txtSubTotal.text = "$$subTotal / piece"
+
+ layout.btnRemove.setOnClickListener {
+ Store.removeItemFromCart(item.id)
+ parent.findNavController().navigate(R.id.navigation_cart)
+ Toast.makeText(context, "Product removed!", Toast.LENGTH_SHORT).show()
+ }
return layout
}
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartFragment.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartFragment.kt
index b6d278b..515df53 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartFragment.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/cart/CartFragment.kt
@@ -1,13 +1,20 @@
package com.teavaro.teavarodemoapp.ui.cart
+import android.app.AlertDialog
+import android.content.DialogInterface
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.LinearLayout
+import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.findNavController
+import com.teavaro.teavarodemoapp.R
+import com.teavaro.teavarodemoapp.core.Store
import com.teavaro.teavarodemoapp.databinding.FragmentCartBinding
+import com.teavaro.teavarodemoapp.ui.shop.ShopAdapter
class CartFragment : Fragment() {
@@ -28,14 +35,35 @@ class CartFragment : Fragment() {
_binding = FragmentCartBinding.inflate(inflater, container, false)
val root: View = binding.root
-// val textView: TextView = binding.textCart
-// cartViewModel.text.observe(viewLifecycleOwner) {
-// textView.text = it
-// }
+ var list = Store.getItemsCart()
+ val cartAdapter = CartAdapter(requireContext(), list)
+ for (pos in 0..list.lastIndex){
+ container?.let {
+ binding.listItems.addView(cartAdapter.getView(pos, view, it), 0)
+ }
+ }
- val cartAdapter = CartAdapter(requireContext(), listOf("Puerco", "Pollo", "Picadillo"))
- val lvItems = binding.listItems
- lvItems.adapter = cartAdapter
+ binding.txtTotal.text = "$${Store.getTotalPriceCart()} in total"
+
+ if(cartAdapter.count == 0)
+ binding.txtEmpty.visibility = LinearLayout.VISIBLE
+ else
+ binding.layTotal.visibility = LinearLayout.VISIBLE
+
+ binding.btnCheckout.setOnClickListener {
+ val builder = AlertDialog.Builder(context)
+ builder.setTitle("Checkout confirmation")
+ .setMessage("Do you want to proceed with checkout?")
+ .setNegativeButton("Cancel") {_,_ ->
+
+ }
+ .setPositiveButton("Proceed") { _, _ ->
+ Store.removeAllCartItems()
+ root.findNavController().navigate(R.id.navigation_home)
+ Toast.makeText(context, "Success!", Toast.LENGTH_SHORT).show()
+ }
+ .create().show()
+ }
return root
}
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/home/HomeFragment.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/home/HomeFragment.kt
index 11f59e9..48c423b 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/home/HomeFragment.kt
@@ -4,10 +4,13 @@ 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 androidx.navigation.findNavController
+import com.teavaro.teavarodemoapp.R
+import com.teavaro.teavarodemoapp.core.Store
import com.teavaro.teavarodemoapp.databinding.FragmentHomeBinding
+import com.teavaro.teavarodemoapp.ui.shop.ShopAdapter
class HomeFragment : Fragment() {
@@ -28,10 +31,15 @@ class HomeFragment : Fragment() {
_binding = FragmentHomeBinding.inflate(inflater, container, false)
val root: View = binding.root
-// val textView: TextView = binding.textHome
-// homeViewModel.text.observe(viewLifecycleOwner) {
-// textView.text = it
-// }
+ var list = Store.getItemsOffer()
+ val shopAdapter = ShopAdapter(requireContext(), list)
+ for (pos in 0..list.lastIndex){
+ binding.listItems.addView(shopAdapter.getView(pos, view, container!!))
+ }
+
+ binding.btnExplore.setOnClickListener {
+ root.findNavController().navigate(R.id.navigation_shop)
+ }
return root
}
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/login/LoginFragment.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/login/LoginFragment.kt
index 290eadc..52643ad 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/ui/login/LoginFragment.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/login/LoginFragment.kt
@@ -1,15 +1,18 @@
package com.teavaro.teavarodemoapp.ui.login
+import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
-import com.teavaro.teavarodemoapp.databinding.FragmentCartBinding
+import com.teavaro.teavarodemoapp.MainActivity
+import com.teavaro.teavarodemoapp.core.Store
import com.teavaro.teavarodemoapp.databinding.FragmentLoginBinding
+
class LoginFragment : Fragment() {
private var _binding: FragmentLoginBinding? = null
@@ -29,10 +32,17 @@ class LoginFragment : Fragment() {
_binding = FragmentLoginBinding.inflate(inflater, container, false)
val root: View = binding.root
-// val textView: TextView = binding.textLogin
-// loginViewModel.text.observe(viewLifecycleOwner) {
-// textView.text = it
-// }
+ binding.btnLogin.setOnClickListener {
+ if (!binding.edtEmail.text.isNullOrEmpty() && !binding.edtPassword.text.isNullOrEmpty()) {
+ Store.isLogin = true
+ val startIntent = Intent(context, MainActivity::class.java)
+ startIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
+ startActivity(startIntent)
+ Toast.makeText(context, "Login success!", Toast.LENGTH_SHORT).show()
+ } else
+ Toast.makeText(context, "Need to insert email and password!", Toast.LENGTH_SHORT)
+ .show()
+ }
return root
}
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopAdapter.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopAdapter.kt
new file mode 100644
index 0000000..77b32f1
--- /dev/null
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopAdapter.kt
@@ -0,0 +1,64 @@
+package com.teavaro.teavarodemoapp.ui.shop
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.*
+import com.teavaro.teavarodemoapp.R
+import com.teavaro.teavarodemoapp.core.Item
+import com.teavaro.teavarodemoapp.core.Store
+import kotlinx.android.synthetic.main.item_shop.view.*
+
+class ShopAdapter(context: Context,
+ private val listItems: List
- ) :
+ ArrayAdapter
- (context, 0, listItems) {
+
+ private lateinit var layout: View
+
+ override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
+ layout = LayoutInflater.from(context).inflate(R.layout.item_shop,parent, false)
+
+ val item = listItems[position]
+ layout.txtTitle.text = item.title
+ layout.txtPrice.text = "$${item.price}"
+ val imgId: Int = parent.resources.getIdentifier(item.picture, "drawable", "com.teavaro.teavarodemoapp")
+ layout.imgPicture.setImageResource(imgId)
+
+ if(!item.isInStock) {
+ layout.btnAddToCart.visibility = Button.GONE
+ layout.outOfStock.visibility = TextView.VISIBLE
+ }
+
+
+ layout.btnAddToCart.setOnClickListener {
+ Store.addItemToCart(item.id)
+ Toast.makeText(context, "Product added!", Toast.LENGTH_SHORT).show()
+ }
+
+ layout.btnAddToWish.let { imageView ->
+ setWishPicture(imageView, item)
+ imageView.setOnClickListener {
+ if(!item.isWish) {
+ Store.addItemToWish(item.id)
+ item.isWish = true
+ }
+ else {
+ Store.removeItemFromWish(item.id)
+ item.isWish = false
+ }
+ setWishPicture(imageView as ImageView, item)
+ Toast.makeText(context, "Product added!", Toast.LENGTH_SHORT).show()
+ }
+ }
+
+ return layout
+ }
+
+ private fun setWishPicture(imageView: ImageView, item: Item){
+ if(item.isWish)
+ imageView.setImageResource(R.drawable.ic_wishlist_red_24dp)
+ else
+ imageView.setImageResource(R.drawable.ic_wishlist_black_24dp)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopFragment.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopFragment.kt
index e85f320..65287cc 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopFragment.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/shop/ShopFragment.kt
@@ -7,7 +7,11 @@ import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
+import com.teavaro.teavarodemoapp.core.Item
+import com.teavaro.teavarodemoapp.core.Store
import com.teavaro.teavarodemoapp.databinding.FragmentShopBinding
+import com.teavaro.teavarodemoapp.ui.cart.CartAdapter
+import kotlinx.android.synthetic.main.activity_main.view.*
class ShopFragment : Fragment() {
@@ -28,10 +32,12 @@ class ShopFragment : Fragment() {
_binding = FragmentShopBinding.inflate(inflater, container, false)
val root: View = binding.root
-// val textView: TextView = binding.textShop
-// shopViewModel.text.observe(viewLifecycleOwner) {
-// textView.text = it
-// }
+ var list = Store.getItems()
+ val shopAdapter = ShopAdapter(requireContext(), list)
+ for (pos in 0..list.lastIndex){
+ binding.listItems.addView(shopAdapter.getView(pos, view, container!!))
+ }
+
return root
}
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishAdapter.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishAdapter.kt
new file mode 100644
index 0000000..924fe3b
--- /dev/null
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishAdapter.kt
@@ -0,0 +1,52 @@
+package com.teavaro.teavarodemoapp.ui.wishlist
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ArrayAdapter
+import android.widget.Button
+import android.widget.ImageView
+import android.widget.Toast
+import androidx.navigation.findNavController
+import com.teavaro.teavarodemoapp.R
+import com.teavaro.teavarodemoapp.core.Item
+import com.teavaro.teavarodemoapp.core.Store
+import kotlinx.android.synthetic.main.item_shop.view.*
+import kotlinx.android.synthetic.main.item_shop.view.btnAddToCart
+import kotlinx.android.synthetic.main.item_wish.view.*
+import kotlinx.android.synthetic.main.item_wish.view.txtPrice
+import kotlinx.android.synthetic.main.item_wish.view.txtTitle
+
+class WishAdapter(context: Context,
+ private val listItems: List
- ) :
+ ArrayAdapter
- (context, 0, listItems) {
+
+ override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
+ val layout = LayoutInflater.from(context).inflate(R.layout.item_wish,parent, false)
+
+ val item = listItems[position]
+ layout.txtTitle.text = item.title
+ layout.txtPrice.text = "$${item.price}"
+
+ if(item.isInStock)
+ layout.inStock.visibility = ImageView.VISIBLE
+ else {
+ layout.noStock.visibility = ImageView.VISIBLE
+ layout.btnAddToCart.visibility = Button.GONE
+ }
+
+ layout.btnRemove.setOnClickListener {
+ Store.removeItemFromWish(item.id)
+ parent.findNavController().navigate(R.id.navigation_wishlist)
+ Toast.makeText(context, "Product removed!", Toast.LENGTH_SHORT).show()
+ }
+
+ layout.btnAddToCart.setOnClickListener {
+ Store.addItemToCart(item.id)
+ Toast.makeText(context, "Product added!", Toast.LENGTH_SHORT).show()
+ }
+
+ return layout
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishlistFragment.kt b/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishlistFragment.kt
index 09e1f6b..fdc9ee7 100644
--- a/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishlistFragment.kt
+++ b/app/src/main/java/com/teavaro/teavarodemoapp/ui/wishlist/WishlistFragment.kt
@@ -4,10 +4,13 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.TextView
+import android.widget.LinearLayout
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
+import com.teavaro.teavarodemoapp.core.Item
+import com.teavaro.teavarodemoapp.core.Store
import com.teavaro.teavarodemoapp.databinding.FragmentWishlistBinding
+import com.teavaro.teavarodemoapp.ui.shop.ShopAdapter
class WishlistFragment : Fragment() {
@@ -28,10 +31,15 @@ class WishlistFragment : Fragment() {
_binding = FragmentWishlistBinding.inflate(inflater, container, false)
val root: View = binding.root
-// val textView: TextView = binding.textWishlist
-// wishlistViewModel.text.observe(viewLifecycleOwner) {
-// textView.text = it
-// }
+ var list = Store.getItemsWish()
+ val wishAdapter = WishAdapter(requireContext(), list)
+ for (pos in 0..list.lastIndex){
+ binding.listItems.addView(wishAdapter.getView(pos, view, container!!))
+ }
+
+ if(wishAdapter.count == 0)
+ binding.txtEmpty.visibility = LinearLayout.VISIBLE
+
return root
}
diff --git a/app/src/main/res/drawable/burst.jpg b/app/src/main/res/drawable/burst.jpg
new file mode 100644
index 0000000..8f70074
Binary files /dev/null and b/app/src/main/res/drawable/burst.jpg differ
diff --git a/app/src/main/res/drawable/cauliflower.jpg b/app/src/main/res/drawable/cauliflower.jpg
new file mode 100644
index 0000000..3f0848a
Binary files /dev/null and b/app/src/main/res/drawable/cauliflower.jpg differ
diff --git a/app/src/main/res/drawable/crinklys.jpg b/app/src/main/res/drawable/crinklys.jpg
new file mode 100644
index 0000000..559e1a4
Binary files /dev/null and b/app/src/main/res/drawable/crinklys.jpg differ
diff --git a/app/src/main/res/drawable/grapes.jpg b/app/src/main/res/drawable/grapes.jpg
new file mode 100644
index 0000000..bbc79b3
Binary files /dev/null and b/app/src/main/res/drawable/grapes.jpg differ
diff --git a/app/src/main/res/drawable/ic_wishlist_red_24dp.xml b/app/src/main/res/drawable/ic_wishlist_red_24dp.xml
new file mode 100644
index 0000000..1c28f75
--- /dev/null
+++ b/app/src/main/res/drawable/ic_wishlist_red_24dp.xml
@@ -0,0 +1,10 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/mixed.jpg b/app/src/main/res/drawable/mixed.jpg
new file mode 100644
index 0000000..60805bf
Binary files /dev/null and b/app/src/main/res/drawable/mixed.jpg differ
diff --git a/app/src/main/res/drawable/paprika.jpg b/app/src/main/res/drawable/paprika.jpg
new file mode 100644
index 0000000..e23480b
Binary files /dev/null and b/app/src/main/res/drawable/paprika.jpg differ
diff --git a/app/src/main/res/drawable/pork.jpg b/app/src/main/res/drawable/pork.jpg
new file mode 100644
index 0000000..a8ae593
Binary files /dev/null and b/app/src/main/res/drawable/pork.jpg differ
diff --git a/app/src/main/res/drawable/prod_snapple.jpg b/app/src/main/res/drawable/prod_snapple.jpg
deleted file mode 100644
index 391dc82..0000000
Binary files a/app/src/main/res/drawable/prod_snapple.jpg and /dev/null differ
diff --git a/app/src/main/res/drawable/watermelon.jpg b/app/src/main/res/drawable/watermelon.jpg
new file mode 100644
index 0000000..e5ce4d3
Binary files /dev/null and b/app/src/main/res/drawable/watermelon.jpg differ
diff --git a/app/src/main/res/layout/fragment_cart.xml b/app/src/main/res/layout/fragment_cart.xml
index 3e87aba..32f9edb 100644
--- a/app/src/main/res/layout/fragment_cart.xml
+++ b/app/src/main/res/layout/fragment_cart.xml
@@ -1,5 +1,6 @@
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="40dp">
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintTop_toTopOf="parent" >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index ac7d7f1..86fc6cc 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -40,6 +40,7 @@
@@ -55,49 +56,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:id="@+id/listItems"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"/>
@@ -30,10 +31,12 @@
android:text="Password:" />