diff --git a/app/build.gradle b/app/build.gradle
index 23ad625..ec11348 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -58,6 +58,7 @@ dependencies {
implementation 'com.squareup.picasso:picasso:2.5.2'
+ implementation 'com.android.support:support-v4:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 991aaf8..6d99830 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,11 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
+
+
> {
-// override fun onResponse(call: Call>, response: Response>) {
-// val coupons = response.body()
-// for (coupon in coupons!!) {
-// tvText.append(coupon.description + "\n")
-// }
-// }
-//
-// override fun onFailure(call: Call>, t: Throwable) {
-//
-// }
-// })
-// }
}
diff --git a/app/src/main/java/me/gilo/wc/repo/OrderRepository.java b/app/src/main/java/me/gilo/wc/repo/OrderRepository.java
new file mode 100644
index 0000000..a8c4be6
--- /dev/null
+++ b/app/src/main/java/me/gilo/wc/repo/OrderRepository.java
@@ -0,0 +1,26 @@
+package me.gilo.wc.repo;
+
+
+import me.gilo.wc.common.WooLiveData;
+import me.gilo.woodroid.models.Order;
+import me.gilo.woodroid.models.Product;
+import me.gilo.woodroid.models.filters.ProductFilter;
+
+import javax.inject.Inject;
+import java.util.List;
+
+public class OrderRepository extends WoocommerceRepository {
+
+ @Inject
+ public OrderRepository() {
+
+ }
+
+ public WooLiveData addToCart(int productId) {
+ final WooLiveData callBack = new WooLiveData();
+
+ woocommerce.OrderRepository().addToCart(productId).enqueue(callBack);
+ return callBack;
+ }
+
+}
diff --git a/app/src/main/java/me/gilo/wc/repo/ProductRepository.java b/app/src/main/java/me/gilo/wc/repo/ProductRepository.java
index 6ec74fb..c342202 100644
--- a/app/src/main/java/me/gilo/wc/repo/ProductRepository.java
+++ b/app/src/main/java/me/gilo/wc/repo/ProductRepository.java
@@ -3,6 +3,7 @@ package me.gilo.wc.repo;
import me.gilo.wc.common.WooLiveData;
import me.gilo.woodroid.models.Product;
+import me.gilo.woodroid.models.filters.ProductFilter;
import javax.inject.Inject;
import java.util.List;
@@ -21,6 +22,13 @@ public class ProductRepository extends WoocommerceRepository {
return callBack;
}
+ public WooLiveData> products(ProductFilter productFilter) {
+ final WooLiveData> callBack = new WooLiveData();
+
+ woocommerce.ProductRepository().products(productFilter).enqueue(callBack);
+ return callBack;
+ }
+
public WooLiveData product(int productId) {
final WooLiveData callBack = new WooLiveData();
diff --git a/app/src/main/java/me/gilo/wc/ui/product/ProductActivity.kt b/app/src/main/java/me/gilo/wc/ui/product/ProductActivity.kt
index 3295ee1..d039760 100644
--- a/app/src/main/java/me/gilo/wc/ui/product/ProductActivity.kt
+++ b/app/src/main/java/me/gilo/wc/ui/product/ProductActivity.kt
@@ -41,6 +41,33 @@ class ProductActivity : BaseActivity() {
product(productId)
}
+ fab.setOnClickListener{addToCart(productId)}
+
+ }
+
+ private fun addToCart(productId: Int) {
+ viewModel.addToCart(productId).observe(this, android.arch.lifecycle.Observer { response ->
+ when (response!!.status()) {
+ Status.LOADING -> {
+
+ }
+
+ Status.SUCCESS -> {
+ val order = response.data()
+
+
+ }
+
+ Status.ERROR -> {
+
+ }
+
+ Status.EMPTY -> {
+
+ }
+ }
+
+ })
}
private fun product(productId : Int) {
diff --git a/app/src/main/java/me/gilo/wc/ui/product/ProductSearchActivity.kt b/app/src/main/java/me/gilo/wc/ui/product/ProductSearchActivity.kt
index 3ef054d..ac28ecd 100644
--- a/app/src/main/java/me/gilo/wc/ui/product/ProductSearchActivity.kt
+++ b/app/src/main/java/me/gilo/wc/ui/product/ProductSearchActivity.kt
@@ -5,10 +5,13 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.design.widget.Snackbar
+import android.support.v4.view.GravityCompat
+import android.support.v7.app.ActionBarDrawerToggle
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager
import android.support.v7.widget.SearchView
import android.view.Menu
+import android.view.MenuItem
import android.widget.Toast
import io.github.inflationx.viewpump.ViewPumpContextWrapper
import me.gilo.wc.R
@@ -24,10 +27,14 @@ import me.gilo.woodroid.models.Product
import org.json.JSONObject
import java.util.ArrayList
+
+
+
class ProductSearchActivity : BaseActivity() {
lateinit var adapter: ProductAdapter
lateinit var products: ArrayList
+ lateinit var toggle: ActionBarDrawerToggle
lateinit var viewModel: ProductViewModel
val TAG = this::getLocalClassName
@@ -55,6 +62,7 @@ class ProductSearchActivity : BaseActivity() {
rvShop.adapter = adapter
handleIntent(intent)
+
}
override fun onNewIntent(intent: Intent) {
@@ -110,6 +118,8 @@ class ProductSearchActivity : BaseActivity() {
})
+
+
}
private lateinit var progressDialog: ProgressDialogFragment
diff --git a/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt b/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt
index 953e0de..687b294 100644
--- a/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt
+++ b/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt
@@ -2,13 +2,16 @@ package me.gilo.wc.ui.product
import android.content.Context
import android.os.Bundle
+import android.support.v4.view.GravityCompat
import android.support.v7.widget.GridLayoutManager
import android.view.Menu
+import android.view.MenuItem
+import android.widget.Filter
import android.widget.Toast
-import com.miguelcatalan.materialsearchview.MaterialSearchView
import io.github.inflationx.viewpump.ViewPumpContextWrapper
import kotlinx.android.synthetic.main.activity_shop.*
import kotlinx.android.synthetic.main.content_shop.*
+import kotlinx.android.synthetic.main.drawer_filter.*
import me.gilo.wc.R
import me.gilo.wc.adapter.ProductAdapter
import me.gilo.wc.common.BaseActivity
@@ -16,18 +19,16 @@ import me.gilo.wc.common.Status
import me.gilo.wc.ui.state.ProgressDialogFragment
import me.gilo.wc.viewmodels.ProductViewModel
import me.gilo.woodroid.models.Product
-import org.json.JSONObject
+import me.gilo.woodroid.models.filters.ProductFilter
import java.util.*
-import android.text.Editable
-import android.text.TextWatcher
class ShopActivity : BaseActivity() {
lateinit var adapter: ProductAdapter
- lateinit var products: ArrayList
+ private lateinit var products: ArrayList
- lateinit var viewModel: ProductViewModel
+ private lateinit var viewModel: ProductViewModel
val TAG = this::getLocalClassName
override fun attachBaseContext(newBase: Context) {
@@ -54,18 +55,65 @@ class ShopActivity : BaseActivity() {
products()
- etSearch.addTextChangedListener(object : TextWatcher {
+ bFilter.setOnClickListener{filter()}
+ }
- override fun afterTextChanged(s: Editable) {}
- override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
+ private fun filter() {
+ val filter = ProductFilter()
+
+ if (etSearch.text.toString().isNotEmpty()){
+ filter.search = etSearch.text.toString()
+ }
+
+ if (etMinPrice.text.toString().isNotEmpty()){
+ filter.min_price = etMinPrice.text.toString()
+ }
+
+ if (etMaxPrice.text.toString().isNotEmpty()){
+ filter.max_price = etMaxPrice.text.toString()
+ }
+
+ if (cbFeatured.isChecked){
+ filter.isFeatured = true
+ }
+
+ if (cbOnSale.isChecked){
+ filter.isOn_sale = true
+ }
+
+ toggleDrawer()
+
+ products(filter)
+ }
+
+ private fun products(filter: ProductFilter) {
+ viewModel.products(filter).observe(this, android.arch.lifecycle.Observer { response ->
+ when (response!!.status()) {
+ Status.LOADING -> {
+ }
+
+ Status.SUCCESS -> {
+ products.clear()
+
+ val productsResponse = response.data()
+ for (product in productsResponse) {
+ products.add(product)
+ }
+
+ adapter.notifyDataSetChanged()
+
+ }
+
+ Status.ERROR -> {
+
+
+ }
+
+ Status.EMPTY -> {
- override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
- if (s.isNotEmpty()) {
- search(s.toString())
- }else{
- products()
}
}
+
})
}
@@ -138,6 +186,33 @@ class ShopActivity : BaseActivity() {
return true
}
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ return when (item.itemId) {
+ R.id.action_filter -> {
+ toggleDrawer()
+ true
+ }
+
+ R.id.action_search -> {
+ toggleDrawer()
+ true
+ }
+ else -> super.onOptionsItemSelected(item)
+ }
+ }
+
+ private fun toast(text: String) {
+ Toast.makeText(baseContext, text, Toast.LENGTH_LONG).show()
+ }
+
+ private fun toggleDrawer() {
+ if (drawer_layout.isDrawerOpen(GravityCompat.END)) {
+ drawer_layout.closeDrawer(GravityCompat.END)
+ } else {
+ drawer_layout.openDrawer(GravityCompat.END)
+ }
+ }
+
private lateinit var progressDialog: ProgressDialogFragment
fun showLoading(title: String, message: String) {
diff --git a/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java b/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java
index 2fc2ba3..2f80084 100644
--- a/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java
+++ b/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java
@@ -2,8 +2,11 @@ package me.gilo.wc.viewmodels;
import android.arch.lifecycle.ViewModel;
import me.gilo.wc.common.WooLiveData;
+import me.gilo.wc.repo.OrderRepository;
import me.gilo.wc.repo.ProductRepository;
+import me.gilo.woodroid.models.Order;
import me.gilo.woodroid.models.Product;
+import me.gilo.woodroid.models.filters.ProductFilter;
import javax.inject.Inject;
import java.util.List;
@@ -11,16 +14,26 @@ import java.util.List;
public final class ProductViewModel extends ViewModel {
private final ProductRepository productRepository;
+ private final OrderRepository orderRepository;
@Inject
- ProductViewModel(ProductRepository productRepository) {
+ ProductViewModel(ProductRepository productRepository, OrderRepository orderRepository) {
this.productRepository = productRepository;
+ this.orderRepository = orderRepository;
}
public WooLiveData> products() {
return productRepository.products();
}
+ public WooLiveData addToCart(int productId) {
+ return orderRepository.addToCart(productId);
+ }
+
+ public WooLiveData> products(ProductFilter filter) {
+ return productRepository.products(filter);
+ }
+
public WooLiveData product(int productId) {
return productRepository.product(productId);
}
diff --git a/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_18.png b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_18.png
new file mode 100644
index 0000000..e786a6e
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_24.png b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_24.png
new file mode 100644
index 0000000..c7a4798
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_36.png b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_36.png
new file mode 100644
index 0000000..4856e1e
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_48.png b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_48.png
new file mode 100644
index 0000000..296cd44
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_add_shopping_cart_white_48.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_search_white_18.png b/app/src/main/res/drawable-hdpi/baseline_search_white_18.png
new file mode 100644
index 0000000..18c1f91
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_search_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_search_white_24.png b/app/src/main/res/drawable-hdpi/baseline_search_white_24.png
new file mode 100644
index 0000000..bf2c964
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_search_white_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_search_white_36.png b/app/src/main/res/drawable-hdpi/baseline_search_white_36.png
new file mode 100644
index 0000000..368d14d
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_search_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_search_white_48.png b/app/src/main/res/drawable-hdpi/baseline_search_white_48.png
new file mode 100644
index 0000000..91e6d2b
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_search_white_48.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_18.png
new file mode 100644
index 0000000..a2f4b91
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_24.png
new file mode 100644
index 0000000..0743c13
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_36.png
new file mode 100644
index 0000000..54b34b0
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_48.png
new file mode 100644
index 0000000..456d785
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_18.png b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_18.png
new file mode 100644
index 0000000..d025cc5
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_24.png b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_24.png
new file mode 100644
index 0000000..4c0eda6
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_36.png b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_36.png
new file mode 100644
index 0000000..c7a4798
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_48.png b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_48.png
new file mode 100644
index 0000000..a99e3b5
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_add_shopping_cart_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_search_white_18.png b/app/src/main/res/drawable-mdpi/baseline_search_white_18.png
new file mode 100644
index 0000000..f60a894
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_search_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_search_white_24.png b/app/src/main/res/drawable-mdpi/baseline_search_white_24.png
new file mode 100644
index 0000000..616e6df
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_search_white_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_search_white_36.png b/app/src/main/res/drawable-mdpi/baseline_search_white_36.png
new file mode 100644
index 0000000..bf2c964
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_search_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_search_white_48.png b/app/src/main/res/drawable-mdpi/baseline_search_white_48.png
new file mode 100644
index 0000000..19b5362
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_search_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_18.png
new file mode 100644
index 0000000..ab19606
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_24.png
new file mode 100644
index 0000000..9a4d261
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_36.png
new file mode 100644
index 0000000..0743c13
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_48.png
new file mode 100644
index 0000000..b409a6d
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_48.png differ
diff --git a/app/src/main/res/drawable-v21/ic_menu_camera.xml b/app/src/main/res/drawable-v21/ic_menu_camera.xml
new file mode 100644
index 0000000..0be5a42
--- /dev/null
+++ b/app/src/main/res/drawable-v21/ic_menu_camera.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable-v21/ic_menu_gallery.xml b/app/src/main/res/drawable-v21/ic_menu_gallery.xml
new file mode 100644
index 0000000..35aad96
--- /dev/null
+++ b/app/src/main/res/drawable-v21/ic_menu_gallery.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-v21/ic_menu_send.xml b/app/src/main/res/drawable-v21/ic_menu_send.xml
new file mode 100644
index 0000000..b8785d0
--- /dev/null
+++ b/app/src/main/res/drawable-v21/ic_menu_send.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-v21/ic_menu_share.xml b/app/src/main/res/drawable-v21/ic_menu_share.xml
new file mode 100644
index 0000000..7fcd6c0
--- /dev/null
+++ b/app/src/main/res/drawable-v21/ic_menu_share.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-v21/ic_menu_slideshow.xml b/app/src/main/res/drawable-v21/ic_menu_slideshow.xml
new file mode 100644
index 0000000..21e8a2d
--- /dev/null
+++ b/app/src/main/res/drawable-v21/ic_menu_slideshow.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_18.png
new file mode 100644
index 0000000..c7a4798
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_24.png
new file mode 100644
index 0000000..a99e3b5
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_36.png
new file mode 100644
index 0000000..296cd44
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_48.png
new file mode 100644
index 0000000..888cb1f
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_add_shopping_cart_white_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_search_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_search_white_18.png
new file mode 100644
index 0000000..bf2c964
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_search_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_search_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_search_white_24.png
new file mode 100644
index 0000000..19b5362
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_search_white_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_search_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_search_white_36.png
new file mode 100644
index 0000000..91e6d2b
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_search_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_search_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_search_white_48.png
new file mode 100644
index 0000000..c45a71b
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_search_white_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_18.png
new file mode 100644
index 0000000..0743c13
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_24.png
new file mode 100644
index 0000000..b409a6d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_36.png
new file mode 100644
index 0000000..456d785
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_48.png
new file mode 100644
index 0000000..3b73845
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_18.png
new file mode 100644
index 0000000..4856e1e
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_24.png
new file mode 100644
index 0000000..296cd44
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_36.png
new file mode 100644
index 0000000..beca18b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_48.png
new file mode 100644
index 0000000..08318cc
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_add_shopping_cart_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_search_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_search_white_18.png
new file mode 100644
index 0000000..368d14d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_search_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_search_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_search_white_24.png
new file mode 100644
index 0000000..91e6d2b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_search_white_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_search_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_search_white_36.png
new file mode 100644
index 0000000..c60e556
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_search_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_search_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_search_white_48.png
new file mode 100644
index 0000000..3e1da63
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_search_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_18.png
new file mode 100644
index 0000000..54b34b0
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_24.png
new file mode 100644
index 0000000..456d785
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_36.png
new file mode 100644
index 0000000..96aa478
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_48.png
new file mode 100644
index 0000000..da3847d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_18.png
new file mode 100644
index 0000000..296cd44
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_24.png
new file mode 100644
index 0000000..888cb1f
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_36.png
new file mode 100644
index 0000000..08318cc
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_48.png
new file mode 100644
index 0000000..c83d31e
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_add_shopping_cart_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_search_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_18.png
new file mode 100644
index 0000000..91e6d2b
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_search_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_24.png
new file mode 100644
index 0000000..c45a71b
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_search_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_36.png
new file mode 100644
index 0000000..3e1da63
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_search_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_48.png
new file mode 100644
index 0000000..40487a9
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_search_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_18.png
new file mode 100644
index 0000000..456d785
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_24.png
new file mode 100644
index 0000000..3b73845
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_36.png
new file mode 100644
index 0000000..da3847d
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_48.png
new file mode 100644
index 0000000..9b178ed
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_48.png differ
diff --git a/app/src/main/res/drawable/baseline_add_shopping_cart_24.xml b/app/src/main/res/drawable/baseline_add_shopping_cart_24.xml
new file mode 100644
index 0000000..2c65e19
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_add_shopping_cart_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_search_24.xml b/app/src/main/res/drawable/baseline_search_24.xml
new file mode 100644
index 0000000..4553716
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_search_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/rect_grey_stroke.xml b/app/src/main/res/drawable/rect_grey_stroke.xml
new file mode 100644
index 0000000..24c1f19
--- /dev/null
+++ b/app/src/main/res/drawable/rect_grey_stroke.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml
new file mode 100644
index 0000000..6a2bf9c
--- /dev/null
+++ b/app/src/main/res/drawable/side_nav_bar.xml
@@ -0,0 +1,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_product.xml b/app/src/main/res/layout/activity_product.xml
index 55cbb7d..4cd2db8 100644
--- a/app/src/main/res/layout/activity_product.xml
+++ b/app/src/main/res/layout/activity_product.xml
@@ -29,6 +29,9 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
- app:srcCompat="@android:drawable/ic_dialog_email"/>
+ android:src="@drawable/baseline_add_shopping_cart_24"
+ android:tint="#ffffff"
+
+ />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_shop.xml b/app/src/main/res/layout/activity_shop.xml
index 3282ab5..f65f848 100644
--- a/app/src/main/res/layout/activity_shop.xml
+++ b/app/src/main/res/layout/activity_shop.xml
@@ -1,66 +1,47 @@
-
+
-
+
-
+
+
+
-
+
-
+
-
+
-
-
+
-
+
+ />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/content_product.xml b/app/src/main/res/layout/content_product.xml
index 09b7d0f..a579c32 100644
--- a/app/src/main/res/layout/content_product.xml
+++ b/app/src/main/res/layout/content_product.xml
@@ -24,6 +24,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/products.xml b/app/src/main/res/menu/products.xml
index 35fbee3..4fca5d9 100644
--- a/app/src/main/res/menu/products.xml
+++ b/app/src/main/res/menu/products.xml
@@ -1,10 +1,30 @@
-