From 9786252c7829cad79b5615ea79022315ca4716b8 Mon Sep 17 00:00:00 2001 From: gilokimu Date: Wed, 6 Mar 2019 05:53:47 +0300 Subject: [PATCH] Added home page and categories page on sample app --- app/src/main/AndroidManifest.xml | 10 ++ app/src/main/java/me/gilo/wc/MainActivity.kt | 15 +-- .../me/gilo/wc/adapter/CategoryAdapter.java | 34 ++++++ .../adapter/viewholder/CategoryViewHolder.kt | 30 +++++ .../java/me/gilo/wc/di/ActivitiesModule.java | 4 + .../java/me/gilo/wc/di/ViewModelModule.java | 8 +- .../me/gilo/wc/repo/CategoryRepository.java | 73 +++++++++++++ .../me/gilo/wc/ui/home/CategoryFragment.kt | 103 ++++++++++++++++++ .../java/me/gilo/wc/ui/home/HomeActivity.kt | 52 +++++++++ .../java/me/gilo/wc/ui/home/HomeFragment.kt | 48 ++++++++ .../me/gilo/wc/ui/home/ProfileFragment.kt | 49 +++++++++ .../gilo/wc/viewmodels/CategoryViewModel.java | 51 +++++++++ app/src/main/res/drawable-v24/ic_home.png | Bin 0 -> 315 bytes .../res/drawable-v24/ic_local_activity.png | Bin 0 -> 1208 bytes app/src/main/res/drawable-v24/ic_profile.xml | 6 + app/src/main/res/drawable/ic_home.png | Bin 0 -> 315 bytes .../main/res/drawable/ic_local_activity.png | Bin 0 -> 1208 bytes app/src/main/res/drawable/ic_profile.xml | 6 + app/src/main/res/layout/activity_home.xml | 47 ++++++++ app/src/main/res/layout/content_home.xml | 12 ++ app/src/main/res/layout/fragment_category.xml | 18 +++ app/src/main/res/layout/fragment_home.xml | 71 ++++++++++++ app/src/main/res/layout/fragment_profile.xml | 12 ++ .../main/res/layout/single_category_item.xml | 45 ++++++++ app/src/main/res/menu/navigation.xml | 19 ++++ app/src/main/res/values/strings.xml | 11 +- .../data/cookie/DemoCookieInterceptor.java | 24 ++++ .../me/gilo/woodroid/repo/CartRepository.java | 8 +- 28 files changed, 735 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/me/gilo/wc/adapter/CategoryAdapter.java create mode 100644 app/src/main/java/me/gilo/wc/adapter/viewholder/CategoryViewHolder.kt create mode 100644 app/src/main/java/me/gilo/wc/repo/CategoryRepository.java create mode 100644 app/src/main/java/me/gilo/wc/ui/home/CategoryFragment.kt create mode 100644 app/src/main/java/me/gilo/wc/ui/home/HomeActivity.kt create mode 100644 app/src/main/java/me/gilo/wc/ui/home/HomeFragment.kt create mode 100644 app/src/main/java/me/gilo/wc/ui/home/ProfileFragment.kt create mode 100644 app/src/main/java/me/gilo/wc/viewmodels/CategoryViewModel.java create mode 100644 app/src/main/res/drawable-v24/ic_home.png create mode 100644 app/src/main/res/drawable-v24/ic_local_activity.png create mode 100644 app/src/main/res/drawable-v24/ic_profile.xml create mode 100644 app/src/main/res/drawable/ic_home.png create mode 100644 app/src/main/res/drawable/ic_local_activity.png create mode 100644 app/src/main/res/drawable/ic_profile.xml create mode 100644 app/src/main/res/layout/activity_home.xml create mode 100644 app/src/main/res/layout/content_home.xml create mode 100644 app/src/main/res/layout/fragment_category.xml create mode 100644 app/src/main/res/layout/fragment_home.xml create mode 100644 app/src/main/res/layout/fragment_profile.xml create mode 100644 app/src/main/res/layout/single_category_item.xml create mode 100644 app/src/main/res/menu/navigation.xml create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6d99830..2077f8c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,16 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> + + + + { + private List categories; + + public CategoryAdapter(List categories) { + this.categories = categories; + } + + @Override + public CategoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + return new CategoryViewHolder(parent.getContext(), LayoutInflater.from(parent.getContext()).inflate(R.layout.single_category_item, parent, false)); + } + + @Override + public void onBindViewHolder(CategoryViewHolder holder, int position) { + holder.renderView(categories.get(position)); + } + + + @Override + public int getItemCount() { + return categories.size() == 0 ? 0 : categories.size(); + } +} diff --git a/app/src/main/java/me/gilo/wc/adapter/viewholder/CategoryViewHolder.kt b/app/src/main/java/me/gilo/wc/adapter/viewholder/CategoryViewHolder.kt new file mode 100644 index 0000000..5b68544 --- /dev/null +++ b/app/src/main/java/me/gilo/wc/adapter/viewholder/CategoryViewHolder.kt @@ -0,0 +1,30 @@ +package me.gilo.wc.adapter.viewholder + +import android.content.Context +import android.support.v7.widget.RecyclerView +import android.text.Html +import android.view.View +import android.widget.TextView +import me.gilo.wc.R +import me.gilo.woodroid.models.Category + +class CategoryViewHolder(val context: Context, itemView: View) : + RecyclerView.ViewHolder(itemView) { + + fun renderView(category: Category) { + val tvTitle = itemView.findViewById(R.id.tvTitle) + val tvDescription = itemView.findViewById(R.id.tvDescription) + + tvTitle.text = category.name + tvDescription.text = Html.fromHtml(category.description) + +// itemView.setOnClickListener{ +// val intent = Intent(context, CouponActivity::class.java) +// intent.putExtra("couponId", coupon.id) +// +// context.startActivity(intent) +// } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/me/gilo/wc/di/ActivitiesModule.java b/app/src/main/java/me/gilo/wc/di/ActivitiesModule.java index 2f130e6..4ddf8c7 100644 --- a/app/src/main/java/me/gilo/wc/di/ActivitiesModule.java +++ b/app/src/main/java/me/gilo/wc/di/ActivitiesModule.java @@ -3,6 +3,7 @@ package me.gilo.wc.di; import dagger.Module; import dagger.android.ContributesAndroidInjector; import me.gilo.wc.MainActivity; +import me.gilo.wc.ui.home.HomeActivity; import me.gilo.wc.ui.product.ProductActivity; import me.gilo.wc.ui.product.ShopActivity; @@ -18,4 +19,7 @@ abstract class ActivitiesModule { @ContributesAndroidInjector abstract ProductActivity contributesProductActivity(); + @ContributesAndroidInjector + abstract HomeActivity contributesHomeActivity(); + } diff --git a/app/src/main/java/me/gilo/wc/di/ViewModelModule.java b/app/src/main/java/me/gilo/wc/di/ViewModelModule.java index 576364a..e5dca13 100644 --- a/app/src/main/java/me/gilo/wc/di/ViewModelModule.java +++ b/app/src/main/java/me/gilo/wc/di/ViewModelModule.java @@ -6,6 +6,7 @@ import dagger.Binds; import dagger.Module; import dagger.multibindings.IntoMap; import me.gilo.wc.utils.ViewModelFactory; +import me.gilo.wc.viewmodels.CategoryViewModel; import me.gilo.wc.viewmodels.ProductViewModel; @@ -16,7 +17,12 @@ public abstract class ViewModelModule { @Binds @IntoMap @ViewModelKey(ProductViewModel.class) - abstract ViewModel bindUserViewModel(ProductViewModel viewModel); + abstract ViewModel bindProductViewModel(ProductViewModel viewModel); + + @Binds + @IntoMap + @ViewModelKey(CategoryViewModel.class) + abstract ViewModel bindCategoryViewModel(CategoryViewModel viewModel); @Binds abstract ViewModelProvider.Factory bindViewModelFactory(ViewModelFactory factory); diff --git a/app/src/main/java/me/gilo/wc/repo/CategoryRepository.java b/app/src/main/java/me/gilo/wc/repo/CategoryRepository.java new file mode 100644 index 0000000..b598cce --- /dev/null +++ b/app/src/main/java/me/gilo/wc/repo/CategoryRepository.java @@ -0,0 +1,73 @@ +package me.gilo.wc.repo; + + +import me.gilo.wc.common.WooLiveData; +import me.gilo.woodroid.Woocommerce; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.filters.ProductCategoryFilter; + +import javax.inject.Inject; +import java.util.List; + +public class CategoryRepository { + + @Inject + Woocommerce woocommerce; + + @Inject + public CategoryRepository() { + } + + + public WooLiveData create(Category category) { + final WooLiveData callBack = new WooLiveData(); + + woocommerce.CategoryRepository().create(category).enqueue(callBack); + return callBack; + } + + + public WooLiveData category(int id) { + final WooLiveData callBack = new WooLiveData(); + + woocommerce.CategoryRepository().category(id).enqueue(callBack); + return callBack; + } + + public WooLiveData> categories() { + final WooLiveData> callBack = new WooLiveData(); + + woocommerce.CategoryRepository().categories().enqueue(callBack); + return callBack; + } + + public WooLiveData> categories(ProductCategoryFilter productCategoryFilter) { + final WooLiveData> callBack = new WooLiveData(); + + woocommerce.CategoryRepository().categories(productCategoryFilter).enqueue(callBack); + return callBack; + } + + public WooLiveData update(int id, Category category) { + final WooLiveData callBack = new WooLiveData(); + + woocommerce.CategoryRepository().update(id, category).enqueue(callBack); + return callBack; + } + + public WooLiveData delete(int id) { + final WooLiveData callBack = new WooLiveData(); + + woocommerce.CategoryRepository().delete(id).enqueue(callBack); + return callBack; + } + + public WooLiveData delete(int id, boolean force) { + final WooLiveData callBack = new WooLiveData(); + + woocommerce.CategoryRepository().delete(id, force).enqueue(callBack); + return callBack; + } + + +} diff --git a/app/src/main/java/me/gilo/wc/ui/home/CategoryFragment.kt b/app/src/main/java/me/gilo/wc/ui/home/CategoryFragment.kt new file mode 100644 index 0000000..ed7f5af --- /dev/null +++ b/app/src/main/java/me/gilo/wc/ui/home/CategoryFragment.kt @@ -0,0 +1,103 @@ +package me.gilo.wc.ui.home + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.support.v7.widget.LinearLayoutManager +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import kotlinx.android.synthetic.main.fragment_category.* +import me.gilo.wc.R +import me.gilo.wc.adapter.CategoryAdapter +import me.gilo.wc.common.Status +import me.gilo.wc.viewmodels.CategoryViewModel +import me.gilo.woodroid.models.Category +import java.util.* + + +class CategoryFragment : Fragment() { + + + lateinit var viewModel: CategoryViewModel + val TAG = "CategoryFragment" + + lateinit var adapter: CategoryAdapter + lateinit var categories: ArrayList + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + + return inflater.inflate(R.layout.fragment_category, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + viewModel = (activity as HomeActivity).getViewModel(CategoryViewModel::class.java) + + val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false) + rvCategory.layoutManager = layoutManager + rvCategory.isNestedScrollingEnabled = false + + categories = ArrayList() + + adapter = CategoryAdapter(categories) + rvCategory.adapter = adapter + + categories() + + } + + private fun categories() { + viewModel.categories().observe(this, android.arch.lifecycle.Observer { response -> + when (response!!.status()) { + Status.LOADING -> { + } + + Status.SUCCESS -> { + categories.clear() + + val categoriesResponse = response.data() + for (category in categoriesResponse) { + categories.add(category) + } + + adapter.notifyDataSetChanged() + + } + + Status.ERROR -> { + + + } + + Status.EMPTY -> { + + } + } + + }) + + } + + companion object { + @JvmStatic + fun newInstance() = + CategoryFragment().apply { + arguments = Bundle().apply { + + } + } + } + +} diff --git a/app/src/main/java/me/gilo/wc/ui/home/HomeActivity.kt b/app/src/main/java/me/gilo/wc/ui/home/HomeActivity.kt new file mode 100644 index 0000000..f564cad --- /dev/null +++ b/app/src/main/java/me/gilo/wc/ui/home/HomeActivity.kt @@ -0,0 +1,52 @@ +package me.gilo.wc.ui.home + +import android.content.Context +import android.os.Bundle +import android.support.design.widget.BottomNavigationView +import android.support.v4.app.Fragment +import io.github.inflationx.viewpump.ViewPumpContextWrapper +import kotlinx.android.synthetic.main.activity_home.* +import me.gilo.wc.R +import me.gilo.wc.common.BaseActivity + +class HomeActivity : BaseActivity() { + + override fun attachBaseContext(newBase: Context) { + super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase)) + } + + private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> + + var selectedFragment: Fragment? = HomeFragment.newInstance() + + when (item.itemId) { + R.id.navigation_home -> { + selectedFragment = HomeFragment.newInstance() + + } + R.id.navigation_deals -> { + selectedFragment = CategoryFragment.newInstance() + } + R.id.navigation_account -> { + selectedFragment = ProfileFragment.newInstance() + } + } + + val transaction = supportFragmentManager.beginTransaction() + transaction.replace(R.id.container, selectedFragment!!) + transaction.commit() + true + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_home) + + navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) + + val transaction = supportFragmentManager.beginTransaction() + transaction.replace(R.id.container, HomeFragment.newInstance()) + transaction.commit() + + } +} diff --git a/app/src/main/java/me/gilo/wc/ui/home/HomeFragment.kt b/app/src/main/java/me/gilo/wc/ui/home/HomeFragment.kt new file mode 100644 index 0000000..6bdbd6b --- /dev/null +++ b/app/src/main/java/me/gilo/wc/ui/home/HomeFragment.kt @@ -0,0 +1,48 @@ +package me.gilo.wc.ui.home + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import me.gilo.wc.R +import me.gilo.wc.viewmodels.ProductViewModel + + +class HomeFragment : Fragment() { + + + lateinit var viewModel: ProductViewModel + val TAG = "HomeFragment" + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + + } + } + + override fun onCreateView(inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?): View { + + return inflater.inflate(R.layout.fragment_home, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + + } + + companion object { + @JvmStatic + fun newInstance() = + HomeFragment().apply { + arguments = Bundle().apply { + + } + } + } + +} diff --git a/app/src/main/java/me/gilo/wc/ui/home/ProfileFragment.kt b/app/src/main/java/me/gilo/wc/ui/home/ProfileFragment.kt new file mode 100644 index 0000000..44c944b --- /dev/null +++ b/app/src/main/java/me/gilo/wc/ui/home/ProfileFragment.kt @@ -0,0 +1,49 @@ +package me.gilo.wc.ui.home + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import me.gilo.wc.R +import me.gilo.wc.viewmodels.ProductViewModel + + +class ProfileFragment : Fragment() { + + + lateinit var viewModel: ProductViewModel + val TAG = "ProfileFragment" + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + + } + } + + override fun onCreateView(inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?): View { + + return inflater.inflate(R.layout.fragment_profile, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + + + } + + companion object { + @JvmStatic + fun newInstance() = + ProfileFragment().apply { + arguments = Bundle().apply { + + } + } + } + +} diff --git a/app/src/main/java/me/gilo/wc/viewmodels/CategoryViewModel.java b/app/src/main/java/me/gilo/wc/viewmodels/CategoryViewModel.java new file mode 100644 index 0000000..ce14a5a --- /dev/null +++ b/app/src/main/java/me/gilo/wc/viewmodels/CategoryViewModel.java @@ -0,0 +1,51 @@ +package me.gilo.wc.viewmodels; + +import android.arch.lifecycle.ViewModel; +import me.gilo.wc.common.WooLiveData; +import me.gilo.wc.repo.CategoryRepository; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.filters.ProductCategoryFilter; + +import javax.inject.Inject; +import java.util.List; + + +public final class CategoryViewModel extends ViewModel { + private final CategoryRepository categoryRepository; + + @Inject + CategoryViewModel(CategoryRepository categoryRepository) { + this.categoryRepository = categoryRepository; + + } + + public WooLiveData create(Category category) { + return categoryRepository.create(category); + } + + + public WooLiveData category(int id) { + return categoryRepository.category(id); + } + + public WooLiveData> categories() { + return categoryRepository.categories(); + } + + public WooLiveData> categories(ProductCategoryFilter productCategoryFilter) { + return categoryRepository.categories(); + } + + public WooLiveData update(int id, Category category) { + return categoryRepository.update(id, category); + } + + public WooLiveData delete(int id) { + return categoryRepository.delete(id); + } + + public WooLiveData delete(int id, boolean force) { + return categoryRepository.delete(id, force); + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_home.png b/app/src/main/res/drawable-v24/ic_home.png new file mode 100644 index 0000000000000000000000000000000000000000..dd469978d8746f35e5af6fd2a893b3e761831a92 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Zh%jSE088099*Db2UN{h666=m zz_~#4TGThL`B#^IO-S6`rRW8eS?}rM7!q;#?d4ehCIg<<#AC-NbpHKsAKqE!>+)ik z)WwQ(vN3yZ3cFoSxRI~BCAY$T`RmSK=k7}?-4$a`PqVq0Y#gc zEzopr0P#_94FCWD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v24/ic_local_activity.png b/app/src/main/res/drawable-v24/ic_local_activity.png new file mode 100644 index 0000000000000000000000000000000000000000..986928b42bb08b69cb21ba0839cc72e43bed1c38 GIT binary patch literal 1208 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol6-Q7<&SILR^8|Q7}kCz-2Uxao0OiY%(?pT&z0$lmVaxxwyvtQnY+7f*ZddJ-~IVa-@N3J zJ-5MPp2LEwo)#;Or{_-ya)(a{d^O9lr1MtBHG|Y&jhYon#~ySyG$k`IFhzK}IEF+V zemgxoT-Z>c&D$~4F-JQfVB@POy-gZhx|qVQh_$Xd;reu0OjpyQ6$|c!iahJTeYWIu z%H%7XtHtcz*1Xy?*~apu&!*t{=Z(+XSO;oT>ZLoZA`;ef-*a(!;^QaUWL4ZQvLG|&N=f>?2+REL^9 zZDBI$?$r2IJk=)s-;2x5n)7sbn$DeYTqC`4595xlbC|Yx@JX-jZn`&-Vcmzgb0;4j zo8Ga-$5Gyc;qv<0DTQHni4&&1O6Q7FZFGzYi5E2Zd-0HHq{1WdeQo==jw{4XeDorv zX~lhk4cppYufJ@%@3eky;Md@*+lGku=y a`oGLFMfWyZi?>_> + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_home.png b/app/src/main/res/drawable/ic_home.png new file mode 100644 index 0000000000000000000000000000000000000000..dd469978d8746f35e5af6fd2a893b3e761831a92 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~Zh%jSE088099*Db2UN{h666=m zz_~#4TGThL`B#^IO-S6`rRW8eS?}rM7!q;#?d4ehCIg<<#AC-NbpHKsAKqE!>+)ik z)WwQ(vN3yZ3cFoSxRI~BCAY$T`RmSK=k7}?-4$a`PqVq0Y#gc zEzopr0P#_94FCWD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_local_activity.png b/app/src/main/res/drawable/ic_local_activity.png new file mode 100644 index 0000000000000000000000000000000000000000..986928b42bb08b69cb21ba0839cc72e43bed1c38 GIT binary patch literal 1208 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`ol6-Q7<&SILR^8|Q7}kCz-2Uxao0OiY%(?pT&z0$lmVaxxwyvtQnY+7f*ZddJ-~IVa-@N3J zJ-5MPp2LEwo)#;Or{_-ya)(a{d^O9lr1MtBHG|Y&jhYon#~ySyG$k`IFhzK}IEF+V zemgxoT-Z>c&D$~4F-JQfVB@POy-gZhx|qVQh_$Xd;reu0OjpyQ6$|c!iahJTeYWIu z%H%7XtHtcz*1Xy?*~apu&!*t{=Z(+XSO;oT>ZLoZA`;ef-*a(!;^QaUWL4ZQvLG|&N=f>?2+REL^9 zZDBI$?$r2IJk=)s-;2x5n)7sbn$DeYTqC`4595xlbC|Yx@JX-jZn`&-Vcmzgb0;4j zo8Ga-$5Gyc;qv<0DTQHni4&&1O6Q7FZFGzYi5E2Zd-0HHq{1WdeQo==jw{4XeDorv zX~lhk4cppYufJ@%@3eky;Md@*+lGku=y a`oGLFMfWyZi?>_> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml new file mode 100644 index 0000000..3cf9b8f --- /dev/null +++ b/app/src/main/res/layout/activity_home.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_home.xml b/app/src/main/res/layout/content_home.xml new file mode 100644 index 0000000..aba39d9 --- /dev/null +++ b/app/src/main/res/layout/content_home.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_category.xml b/app/src/main/res/layout/fragment_category.xml new file mode 100644 index 0000000..103fd00 --- /dev/null +++ b/app/src/main/res/layout/fragment_category.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ 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 new file mode 100644 index 0000000..4e6d0be --- /dev/null +++ b/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml new file mode 100644 index 0000000..3fdc560 --- /dev/null +++ b/app/src/main/res/layout/fragment_profile.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/single_category_item.xml b/app/src/main/res/layout/single_category_item.xml new file mode 100644 index 0000000..6046a4b --- /dev/null +++ b/app/src/main/res/layout/single_category_item.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + diff --git a/app/src/main/res/menu/navigation.xml b/app/src/main/res/menu/navigation.xml new file mode 100644 index 0000000..ec964c1 --- /dev/null +++ b/app/src/main/res/menu/navigation.xml @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 05d3309..2c62360 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,10 +23,13 @@ Settings - Popularity - Date added - Price lowest first - Price highest first + Popularity + Date added + Price lowest first + Price highest first + CategoryActivity + HomeActivity + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java new file mode 100644 index 0000000..98a1f6c --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java @@ -0,0 +1,24 @@ +package me.gilo.woodroid.data.cookie; + +import okhttp3.Interceptor; +import okhttp3.Request; +import okhttp3.Response; + +import java.io.IOException; + +public class DemoCookieInterceptor implements Interceptor { + + + @Override + public Response intercept(Interceptor.Chain chain) throws IOException { + Request.Builder builder = chain.request().newBuilder(); + + builder.addHeader("Cookie", "wordpress_logged_in_9073cf57240df660c1e240d327cc46cb=gilo%7C1551794958%7CJx1NTnn0f6wuYlN5a0PmTJxYcPlr1sUUqpr659EKCcG%7C802c643a30a82bf7aa6350b5fb5dd005c019b2e1b1d59566ef0c426e33126eae"); + builder.addHeader("Cookie", "woocommerce_cart_hash=d9ec6c9bf0d307629c2a981362735284"); + builder.addHeader("Cookie", "wp_woocommerce_session_9073cf57240df660c1e240d327cc46cb=1%7C%7C1551796439%7C%7C1551792839%7C%7Ce6deec897575a9a84bb4a672abf2ed72"); + + + + return chain.proceed(builder.build()); + } +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java index 008fb16..7c3ef39 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java @@ -2,8 +2,7 @@ package me.gilo.woodroid.repo; import android.content.Context; import me.gilo.woodroid.data.api.CartAPI; -import me.gilo.woodroid.data.cookie.AddCookiesInterceptor; -import me.gilo.woodroid.data.cookie.ReceivedCookiesInterceptor; +import me.gilo.woodroid.data.cookie.DemoCookieInterceptor; import me.gilo.woodroid.models.LineItem; import me.gilo.woodroid.models.filters.CartFilter; import okhttp3.OkHttpClient; @@ -50,8 +49,9 @@ public class CartRepository{ loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(new AddCookiesInterceptor(context)) - .addInterceptor(new ReceivedCookiesInterceptor(context)) +// .addInterceptor(new AddCookiesInterceptor(context)) +// .addInterceptor(new ReceivedCookiesInterceptor(context)) + .addInterceptor(new DemoCookieInterceptor()) .addInterceptor(loggingInterceptor) .readTimeout(30, TimeUnit.SECONDS) .writeTimeout(30, TimeUnit.SECONDS)