From 9732f236ef725848c9a9e6b2ab982290afee2636 Mon Sep 17 00:00:00 2001 From: Gilbert Kimutai Date: Wed, 20 Feb 2019 06:51:33 +0300 Subject: [PATCH] Added search view and introduced filter icon --- app/build.gradle | 4 + app/src/main/AndroidManifest.xml | 95 +++++++------ .../me/gilo/wc/repo/ProductRepository.java | 8 ++ .../wc/ui/product/ProductSearchActivity.kt | 132 ++++++++++++++++++ .../me/gilo/wc/ui/product/ShopActivity.kt | 74 ++++++++-- .../gilo/wc/viewmodels/ProductViewModel.java | 4 + .../baseline_filter_list_white_18.png | Bin 0 -> 139 bytes .../baseline_filter_list_white_24.png | Bin 0 -> 102 bytes .../baseline_filter_list_white_36.png | Bin 0 -> 134 bytes .../baseline_filter_list_white_48.png | Bin 0 -> 107 bytes .../baseline_filter_list_white_18.png | Bin 0 -> 104 bytes .../baseline_filter_list_white_24.png | Bin 0 -> 97 bytes .../baseline_filter_list_white_36.png | Bin 0 -> 102 bytes .../baseline_filter_list_white_48.png | Bin 0 -> 104 bytes .../baseline_filter_list_white_18.png | Bin 0 -> 102 bytes .../baseline_filter_list_white_24.png | Bin 0 -> 104 bytes .../baseline_filter_list_white_36.png | Bin 0 -> 107 bytes .../baseline_filter_list_white_48.png | Bin 0 -> 106 bytes .../baseline_filter_list_white_18.png | Bin 0 -> 134 bytes .../baseline_filter_list_white_24.png | Bin 0 -> 107 bytes .../baseline_filter_list_white_36.png | Bin 0 -> 110 bytes .../baseline_filter_list_white_48.png | Bin 0 -> 117 bytes .../baseline_filter_list_white_18.png | Bin 0 -> 107 bytes .../baseline_filter_list_white_24.png | Bin 0 -> 106 bytes .../baseline_filter_list_white_36.png | Bin 0 -> 117 bytes .../baseline_filter_list_white_48.png | Bin 0 -> 116 bytes .../res/drawable/baseline_filter_list_24.xml | 10 ++ .../drawable/baseline_search_white_18dp.png | Bin 0 -> 373 bytes .../res/layout/activity_product_search.xml | 26 ++++ app/src/main/res/layout/activity_shop.xml | 42 +++++- .../res/layout/content_product_search.xml | 20 +++ app/src/main/res/menu/products.xml | 10 ++ app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/strings.xml | 21 +-- app/src/main/res/values/styles.xml | 26 ++-- app/src/main/res/xml/searchable.xml | 4 + 36 files changed, 398 insertions(+), 80 deletions(-) create mode 100644 app/src/main/java/me/gilo/wc/ui/product/ProductSearchActivity.kt create mode 100644 app/src/main/res/drawable-hdpi/baseline_filter_list_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_filter_list_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_filter_list_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_filter_list_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_filter_list_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_filter_list_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_filter_list_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_filter_list_white_48.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_filter_list_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_filter_list_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_filter_list_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_filter_list_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_48.png create mode 100644 app/src/main/res/drawable/baseline_filter_list_24.xml create mode 100644 app/src/main/res/drawable/baseline_search_white_18dp.png create mode 100644 app/src/main/res/layout/activity_product_search.xml create mode 100644 app/src/main/res/layout/content_product_search.xml create mode 100644 app/src/main/res/menu/products.xml create mode 100644 app/src/main/res/xml/searchable.xml diff --git a/app/build.gradle b/app/build.gradle index ccd18c8..23ad625 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -81,4 +81,8 @@ dependencies { implementation 'com.squareup.retrofit2:retrofit:2.3.0' + + implementation 'com.miguelcatalan:materialsearchview:1.4.0' + + } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed925bf..8b04cc3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,48 +2,61 @@ - + - - - - - - - - - - - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 f103cb9..353ed2a 100644 --- a/app/src/main/java/me/gilo/wc/repo/ProductRepository.java +++ b/app/src/main/java/me/gilo/wc/repo/ProductRepository.java @@ -22,4 +22,12 @@ public class ProductRepository extends WoocommerceRepository { } + public WooLiveData> search(String term) { + final WooLiveData> callBack = new WooLiveData(); + + woocommerce.ProductRepository().search(term).enqueue(callBack); + return callBack; + } + + } 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 new file mode 100644 index 0000000..3ef054d --- /dev/null +++ b/app/src/main/java/me/gilo/wc/ui/product/ProductSearchActivity.kt @@ -0,0 +1,132 @@ +package me.gilo.wc.ui.product + +import android.app.SearchManager +import android.content.Context +import android.content.Intent +import android.os.Bundle +import android.support.design.widget.Snackbar +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.GridLayoutManager +import android.support.v7.widget.SearchView +import android.view.Menu +import android.widget.Toast +import io.github.inflationx.viewpump.ViewPumpContextWrapper +import me.gilo.wc.R + +import kotlinx.android.synthetic.main.activity_product_search.* +import kotlinx.android.synthetic.main.content_shop.* +import me.gilo.wc.adapter.ProductAdapter +import me.gilo.wc.common.BaseActivity +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 java.util.ArrayList + +class ProductSearchActivity : BaseActivity() { + + lateinit var adapter: ProductAdapter + lateinit var products: ArrayList + + lateinit var viewModel: ProductViewModel + val TAG = this::getLocalClassName + + override fun attachBaseContext(newBase: Context) { + super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase)) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_product_search) + setSupportActionBar(toolbar) + + viewModel = getViewModel(ProductViewModel::class.java) + + title = "Search" + + val layoutManager = GridLayoutManager(baseContext, 2) + rvShop.layoutManager = layoutManager + rvShop.isNestedScrollingEnabled = false + + products = ArrayList() + + adapter = ProductAdapter(products) + rvShop.adapter = adapter + + handleIntent(intent) + } + + override fun onNewIntent(intent: Intent) { + handleIntent(intent) + } + + private fun handleIntent(intent: Intent) { + + if (Intent.ACTION_SEARCH == intent.action) { + val query = intent.getStringExtra(SearchManager.QUERY) + search(query) + } + } + + private fun search(query : String) { + viewModel.search(query).observe(this, android.arch.lifecycle.Observer { response -> + when (response!!.status()) { + Status.LOADING -> { + showLoading("Performing search", "This will only take a short while") + } + + Status.SUCCESS -> { + stopShowingLoading() + + val productsResponse = response.data() + for (product in productsResponse) { + products.add(product) + } + + adapter.notifyDataSetChanged() + + } + + Status.ERROR -> { + stopShowingLoading() + + var message: String + var loginError = JSONObject(response.error().message) + + if (loginError.has("status_message")) { + message = loginError.getString("status_message") + } else { + message = response.error().message.toString() + } + + Toast.makeText(baseContext, message, Toast.LENGTH_LONG).show() + } + + Status.EMPTY -> { + stopShowingLoading() + } + } + + }) + + } + + private lateinit var progressDialog: ProgressDialogFragment + + fun showLoading(title: String, message: String) { + val manager = supportFragmentManager + progressDialog = ProgressDialogFragment.newInstance(title, message) + progressDialog.isCancelable = false + progressDialog.show(manager, "progress") + } + + fun showLoading() { + showLoading("This will only take a sec", "Loading") + } + + fun stopShowingLoading() { + progressDialog.dismiss() + } + +} 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 3c4293a..953e0de 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 @@ -3,7 +3,9 @@ package me.gilo.wc.ui.product import android.content.Context import android.os.Bundle import android.support.v7.widget.GridLayoutManager +import android.view.Menu 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.* @@ -16,6 +18,9 @@ import me.gilo.wc.viewmodels.ProductViewModel import me.gilo.woodroid.models.Product import org.json.JSONObject import java.util.* +import android.text.Editable +import android.text.TextWatcher + class ShopActivity : BaseActivity() { @@ -49,17 +54,29 @@ class ShopActivity : BaseActivity() { products() + etSearch.addTextChangedListener(object : TextWatcher { + + override fun afterTextChanged(s: Editable) {} + override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { + if (s.isNotEmpty()) { + search(s.toString()) + }else{ + products() + } + } + }) } - private fun products() { - viewModel.products().observe(this, android.arch.lifecycle.Observer { response -> + private fun search(query : String) { + viewModel.search(query).observe(this, android.arch.lifecycle.Observer { response -> when (response!!.status()) { Status.LOADING -> { - showLoading("Performing log in", "This will only take a short while") } Status.SUCCESS -> { - stopShowingLoading() + products.clear() val productsResponse = response.data() for (product in productsResponse) { @@ -71,22 +88,12 @@ class ShopActivity : BaseActivity() { } Status.ERROR -> { - stopShowingLoading() - var message: String - var loginError = JSONObject(response.error().message) - if (loginError.has("status_message")) { - message = loginError.getString("status_message") - } else { - message = response.error().message.toString() - } - - Toast.makeText(baseContext, message, Toast.LENGTH_LONG).show() } Status.EMPTY -> { - stopShowingLoading() + } } @@ -94,6 +101,43 @@ class ShopActivity : BaseActivity() { } + private fun products() { + viewModel.products().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 onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.products, menu) + + return true + } + 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 ce68eac..1df5280 100644 --- a/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java +++ b/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java @@ -20,4 +20,8 @@ public final class ProductViewModel extends ViewModel { public WooLiveData> products() { return productRepository.products(); } + + public WooLiveData> search(String term) { + return productRepository.search(term); + } } \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/baseline_filter_list_white_18.png b/app/src/main/res/drawable-hdpi/baseline_filter_list_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..88908b767df9d53806fb6768942fec50d922ab04 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0d&^Z@i*|5+rwAtiSY7TFI7?`@^AY*K>lix6imLoWK;mXy!~y%Xu>;1v+!K nC^~!)JAQ`egS%Os=M%QzfTLxLT=ob8O=s|Q^>bP0l+XkKnk_I| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_filter_list_white_24.png b/app/src/main/res/drawable-hdpi/baseline_filter_list_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..fec1fe46253e04a17a85ee4bdcd555772eba2874 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>`VBp6OsFEs^HOeH~n!3+##lh0ZJdGekvjv*C{ x$qM`*{{R0k->Sm$=D)myVj=S}c@34B3=E5Sg}D6pDDMXu;OXk;vd$@?2>^UX8WaEk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_filter_list_white_36.png b/app/src/main/res/drawable-hdpi/baseline_filter_list_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8fde16bb317b3e9f0d241ad17f3f2dc7d2c78d GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e>ZUr!gukP61P*Ee!9DDb#Cx)+<6 z_xJAA>SB4Pz`W<(asvhi2bV28VbD&R)i8t>zOE hTj86vlbM0x#bf^i2C7;jtAGYGc)I$ztaD0e0sx;VDZ&5% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_filter_list_white_48.png b/app/src/main/res/drawable-hdpi/baseline_filter_list_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..1263ae82e71dfbfd5aba9a11483442542e74ce15 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^9w5vJBp7O^^}Pa8OeH~n!3+##lh0ZJc`BYRjv*C{ z$r6(m{IloyqulHooWQ^35x=C46!WwH>?aa9)4kR*{W|XsGR4!?&t;ucLK6Tv CS{)|< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_filter_list_white_18.png b/app/src/main/res/drawable-mdpi/baseline_filter_list_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..0dffc0b4a861d2cf0a04e473add71decfa094db0 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|eNPw1kP60R1-YK4|NsA+PiQve zRTAde{6XoS0#m|{CAusb3yvtTFL5Yaa3*pw1H%HV17~w|=FbCaW$<+Mb6Mw<&;$TR C=N|0< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_filter_list_white_24.png b/app/src/main/res/drawable-mdpi/baseline_filter_list_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..e327bb00be8de03bb151fbd433d24cb15821cbce GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj8lEnWAs)w*6C_v{H>`SKKlQ+Y uNCU16sfW$yn*tpQ=kVBayB*Xxz{#*=D?dYTrtC+c9tKZWKbLh*2~7Z(J{$A^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_filter_list_white_36.png b/app/src/main/res/drawable-mdpi/baseline_filter_list_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..fec1fe46253e04a17a85ee4bdcd555772eba2874 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>`VBp6OsFEs^HOeH~n!3+##lh0ZJdGekvjv*C{ x$qM`*{{R0k->Sm$=D)myVj=S}c@34B3=E5Sg}D6pDDMXu;OXk;vd$@?2>^UX8WaEk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_filter_list_white_48.png b/app/src/main/res/drawable-mdpi/baseline_filter_list_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..242ba3a2f25b1617c8e57e3e821427a5b1e6bd93 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZA`BpB)|k7xlYrjj7PU`VBp6OsFEs^HOeH~n!3+##lh0ZJdGekvjv*C{ x$qM`*{{R0k->Sm$=D)myVj=S}c@34B3=E5Sg}D6pDDMXu;OXk;vd$@?2>^UX8WaEk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_filter_list_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_filter_list_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..242ba3a2f25b1617c8e57e3e821427a5b1e6bd93 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZA`BpB)|k7xlYrjj7PU?aa9)4kR*{W|XsGR4!?&t;ucLK6Tv CS{)|< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_filter_list_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_filter_list_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2207f11fb53879554df5541522fa4ee564e975 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^2_Vb}Bp6OT_L>T$m`Z~Df*BafCZDwc@{~PY978G? zlNE$}nEw3__|Q0Q&OttfcS{V@Ia-)>EuS<8GB8}PYOf6O+;0yu#M9N!Wt~$(6988y B9v1)r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8fde16bb317b3e9f0d241ad17f3f2dc7d2c78d GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e>ZUr!gukP61P*Ee!9DDb#Cx)+<6 z_xJAA>SB4Pz`W<(asvhi2bV28VbD&R)i8t>zOE hTj86vlbM0x#bf^i2C7;jtAGYGc)I$ztaD0e0sx;VDZ&5% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..1263ae82e71dfbfd5aba9a11483442542e74ce15 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^9w5vJBp7O^^}Pa8OeH~n!3+##lh0ZJc`BYRjv*C{ z$r6(m{IloyqulHooWQ^35x=C46!WwH>?aa9)4kR*{W|XsGR4!?&t;ucLK6Tv CS{)|< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..afc68c435d4c26341ce0dc05d2e793fa72fcca42 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^IUvjkBp8;xkq`gdn;9SX@f_g!_GUigW4_D-|Nh@^C}h``U}XrIzeq;n?W_+#EexKnelF{r G5}E+oogpRw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_filter_list_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..8604abac1cffa2d38cf31b3e45453db4f32c2dfe GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^6F`^|NHCnYy)O!+m`Z~Df*BafCZDwc^7K4i978G? zlO?PYM0%Kh|Mz%s{)6x$SqauZ8xsB*{AtPHcN0F}{!ray%K;4uRtBFo-7V{snqGp; N^K|udS?83{1OVsJBYOY< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..1263ae82e71dfbfd5aba9a11483442542e74ce15 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^9w5vJBp7O^^}Pa8OeH~n!3+##lh0ZJc`BYRjv*C{ z$r6(m{IloyqulHooWQ^35x=C46!WwH>?aa9)4kR*{W|XsGR4!?&t;ucLK6Tv CS{)|< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2207f11fb53879554df5541522fa4ee564e975 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^2_Vb}Bp6OT_L>T$m`Z~Df*BafCZDwc@{~PY978G? zlNE$}nEw3__|Q0Q&OttfcS{V@Ia-)>EuS<8GB8}PYOf6O+;0yu#M9N!Wt~$(6988y B9v1)r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..8604abac1cffa2d38cf31b3e45453db4f32c2dfe GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^6F`^|NHCnYy)O!+m`Z~Df*BafCZDwc^7K4i978G? zlO?PYM0%Kh|Mz%s{)6x$SqauZ8xsB*{AtPHcN0F}{!ray%K;4uRtBFo-7V{snqGp; N^K|udS?83{1OVsJBYOY< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_filter_list_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4cc298f105a710f319dfbad96a805e5d3dfd6f GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^2SAt+NHA0_4_pPLm`Z~Df*BafCZDwc@^n32978G? z-<~w&Vo=~=G5G)g(;s}-%ZYs@+SJdU1mR*_5&$!_bt3 + + diff --git a/app/src/main/res/drawable/baseline_search_white_18dp.png b/app/src/main/res/drawable/baseline_search_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2c96409a8c4c9a632a0e05bdec8c2556a06207 GIT binary patch literal 373 zcmV-*0gC>KP)*uRFlK|9F>E0vlmY>QLj^%lP=F)?f~qJIL?{qaAeATx1ay!=3-IIP@kH;fmYfd#hIRY@ex%-x7yy^XWU56nragMwv8HO6tV2NT z$ckyZN`P2bdT1H2?`QOyIsOt1RE8%1~F(1GhfAc@I7Il z2eV-)4-OLd4p0a~gJ2n)}wIFK~Kf) zlLF|C!WjiuepT4!KuInQ{ju!QR88z)(7 + + + + + + + + + + + \ 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 d3bcd80..3282ab5 100644 --- a/app/src/main/res/layout/activity_shop.xml +++ b/app/src/main/res/layout/activity_shop.xml @@ -17,7 +17,47 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay"/> + app:popupTheme="@style/AppTheme.PopupOverlay"> + + + + + + + + + + + diff --git a/app/src/main/res/layout/content_product_search.xml b/app/src/main/res/layout/content_product_search.xml new file mode 100644 index 0000000..a0df100 --- /dev/null +++ b/app/src/main/res/layout/content_product_search.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/products.xml b/app/src/main/res/menu/products.xml new file mode 100644 index 0000000..35fbee3 --- /dev/null +++ b/app/src/main/res/menu/products.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 184ee9b..59a0b0c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,3 +1,3 @@ - 16dp + 16dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 89c5ccb..f46e41b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,14 +1,17 @@ - wc-app - ShopActivity - CouponActivity - MenuActivity + wc-app + ShopActivity + CouponActivity + MenuActivity - fonts/GT-America-Bold.otf - fonts/GT-America-Medium.otf - fonts/GT-America-Regular.otf - AddCouponActivity - CouponsActivity + fonts/GT-America-Bold.otf + fonts/GT-America-Medium.otf + fonts/GT-America-Regular.otf + AddCouponActivity + CouponsActivity + search + Search product + ProductSearchActivity diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e38303a..177cefc 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,20 +1,20 @@ - - + + - + -