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