From 6eaa554d8c0b1b5ac4e9ced8c7fd491d906c1f86 Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Wed, 24 Jul 2024 20:59:54 +0530 Subject: [PATCH] adjust resize problem when keyboard is opened in OrderSummaryFragment Solving. Completed Ui for OrderSummaryFragment. TV ui on home fragment 1 updates and cleaning. Masila trailer added to WebSeriesFragment --- .../com/woka/shop/adapters/CartAdapter.kt | 19 +- .../woka/shop/adapters/SummaryCartAdapter.kt | 48 +++++ .../views/fragments/OrderSummaryFragment.kt | 23 ++- .../views/fragments/WebSeriesFragment.kt | 23 +++ .../main/res/layout/coupon_view_holderr.xml | 10 +- app/src/main/res/layout/fragment_home_1.xml | 26 ++- .../res/layout/fragment_order_summary.xml | 187 ++++++++++++++++-- .../main/res/layout/fragment_web_series.xml | 1 + .../layout/summary_cart_item_view_holder.xml | 67 +++++++ app/src/main/res/values/strings.xml | 4 + 10 files changed, 361 insertions(+), 47 deletions(-) create mode 100644 app/src/main/java/com/woka/shop/adapters/SummaryCartAdapter.kt create mode 100644 app/src/main/res/layout/summary_cart_item_view_holder.xml diff --git a/app/src/main/java/com/woka/shop/adapters/CartAdapter.kt b/app/src/main/java/com/woka/shop/adapters/CartAdapter.kt index 5a83e06..143a716 100644 --- a/app/src/main/java/com/woka/shop/adapters/CartAdapter.kt +++ b/app/src/main/java/com/woka/shop/adapters/CartAdapter.kt @@ -11,7 +11,7 @@ import com.woka.shop.models.cartlisting.CartItem import com.woka.utils.show import java.util.concurrent.Executors -class CartAdapter(private val showFullData: Boolean = true): ListAdapter(ASYNC_DIFF_UTIL) { +class CartAdapter: ListAdapter(ASYNC_DIFF_UTIL) { companion object{ private val DIFF_UTIL = object :DiffUtil.ItemCallback(){ @@ -47,18 +47,15 @@ class CartAdapter(private val showFullData: Boolean = true): ListAdapter onCartItemDeleteListener?.invoke(id, holder.absoluteAdapterPosition) } - } + delete.show() + delete.setOnClickListener { + cartItem.id?.let { id -> onCartItemDeleteListener?.invoke(id, holder.absoluteAdapterPosition) } } } } diff --git a/app/src/main/java/com/woka/shop/adapters/SummaryCartAdapter.kt b/app/src/main/java/com/woka/shop/adapters/SummaryCartAdapter.kt new file mode 100644 index 0000000..e200df5 --- /dev/null +++ b/app/src/main/java/com/woka/shop/adapters/SummaryCartAdapter.kt @@ -0,0 +1,48 @@ +package com.woka.shop.adapters + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.AsyncDifferConfig +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView.ViewHolder +import com.woka.databinding.SummaryCartItemViewHolderBinding +import com.woka.shop.models.cartlisting.CartItem +import java.util.concurrent.Executors + +class SummaryCartAdapter: ListAdapter(ASYNC_DIFF_UTIL) { + companion object{ + private val DIFF_UTIL = object :DiffUtil.ItemCallback(){ + override fun areItemsTheSame(oldItem: CartItem, newItem: CartItem): Boolean = oldItem.id == newItem.id + override fun areContentsTheSame(oldItem: CartItem, newItem: CartItem): Boolean = oldItem == newItem + } + + private val ASYNC_DIFF_UTIL = AsyncDifferConfig.Builder(DIFF_UTIL) + .setBackgroundThreadExecutor(Executors.newSingleThreadExecutor()) + .build() + } + + inner class CartViewHolder(val binding: SummaryCartItemViewHolderBinding): ViewHolder(binding.root) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CartViewHolder { + return CartViewHolder( + SummaryCartItemViewHolderBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + ) + } + + override fun onBindViewHolder(holder: CartViewHolder, position: Int) { + val cartItem = getItem(holder.absoluteAdapterPosition) + + with(holder.binding){ + if (cartItem.shop_image?.isNotEmpty() == true) + image.loadImage(cartItem.shop_image.first()) + + title.text = cartItem.product_name + price.text = "${cartItem.product_price}" + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/shop/views/fragments/OrderSummaryFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/OrderSummaryFragment.kt index fbef976..52a61c7 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/OrderSummaryFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/OrderSummaryFragment.kt @@ -4,14 +4,15 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import com.woka.R import com.woka.databinding.FragmentOrderSummaryBinding import com.woka.networking.ApiResult -import com.woka.shop.adapters.CartAdapter import com.woka.shop.adapters.CouponAdapter +import com.woka.shop.adapters.SummaryCartAdapter import com.woka.shop.viewmodels.CartViewModel import com.woka.utils.hide import com.woka.utils.show @@ -21,7 +22,7 @@ class OrderSummaryFragment : Fragment() { private lateinit var binding: FragmentOrderSummaryBinding private lateinit var viewModel: CartViewModel - private lateinit var adapter: CartAdapter + private lateinit var adapter: SummaryCartAdapter private lateinit var couponAdapter: CouponAdapter override fun onCreateView( @@ -31,7 +32,7 @@ class OrderSummaryFragment : Fragment() { binding = FragmentOrderSummaryBinding.inflate(inflater, container, false) viewModel = ViewModelProvider(requireActivity())[CartViewModel::class.java] - adapter = CartAdapter(false) + adapter = SummaryCartAdapter() couponAdapter = CouponAdapter() return binding.root @@ -42,6 +43,8 @@ class OrderSummaryFragment : Fragment() { initViews() + clickEvents() + setObservers() loadCoupons() @@ -56,6 +59,20 @@ class OrderSummaryFragment : Fragment() { } } + private fun clickEvents(){ + binding.apply { + showCoupons.setOnClickListener{ + if (rvCoupons.isVisible){ + rvCoupons.hide() + showCouponIndicator.setImageResource(R.drawable.ic_half_arrow_right) + }else{ + rvCoupons.show() + showCouponIndicator.setImageResource(R.drawable.ic_half_arrow_up) + } + } + } + } + private fun loadCoupons(){ lifecycleScope.launch { when (val response = viewModel.loadCoupons()){ diff --git a/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt b/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt index ca9f9de..067beba 100644 --- a/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt +++ b/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt @@ -114,6 +114,29 @@ class WebSeriesFragment private constructor(): Fragment() { viewModel?.loadMoreWebSeries(it) } } + + trailerBtn.setOnClickListener { + activity?.let { + it.startActivity(Intent(it, PlayerActivity::class.java).apply { + putExtra( + EXTRA_PLAY_LIST, + VideoPlayList( + ArrayList().apply { + add( + PlaylistItem.Builder() + .file("https://cdn.jwplayer.com/manifests/Iygt11AD.m3u8") + .image("https://cdn.jwplayer.com/manifests/Iygt11AD.m3u8") + .title("Masila") + .build() + ) + }, + null + ) + ) + putExtra(EXTRA_PLAY_INDEX, 0) + }) + } + } } } private fun initViews(){ diff --git a/app/src/main/res/layout/coupon_view_holderr.xml b/app/src/main/res/layout/coupon_view_holderr.xml index 0a83a16..d4997cd 100644 --- a/app/src/main/res/layout/coupon_view_holderr.xml +++ b/app/src/main/res/layout/coupon_view_holderr.xml @@ -5,7 +5,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_marginVertical="5dp" + android:layout_marginBottom="10dp" android:layout_marginHorizontal="15dp" app:cardCornerRadius="1dp" app:cardBackgroundColor="@color/color_primary"> @@ -16,13 +16,13 @@ android:layout_height="wrap_content" tools:text="This is the text" - android:fontFamily="@font/exo_2" + android:fontFamily="@font/exo_2_bold" android:textColor="@color/color_primary" - android:textSize="@dimen/_12ssp" + android:textSize="@dimen/_10ssp" - android:layout_marginStart="10dp" + android:layout_marginStart="15dp" android:paddingHorizontal="15dp" - android:paddingVertical="8dp" + android:paddingVertical="15dp" android:background="@color/white" diff --git a/app/src/main/res/layout/fragment_home_1.xml b/app/src/main/res/layout/fragment_home_1.xml index c4f7817..75df65a 100644 --- a/app/src/main/res/layout/fragment_home_1.xml +++ b/app/src/main/res/layout/fragment_home_1.xml @@ -177,9 +177,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" - android:layout_marginHorizontal="@dimen/_15sdp" - android:layout_marginTop="@dimen/_15sdp" android:contentDescription="@string/live_tv" + android:layout_marginTop="@dimen/_15sdp" android:src="@drawable/img_tv_border" android:translationZ="1dp" /> @@ -188,16 +187,13 @@ android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginHorizontal="@dimen/_28sdp" - android:layout_marginTop="@dimen/_44sdp" - android:layout_marginBottom="@dimen/_10sdp" - - android:background="@color/white" android:contentDescription="@string/image" - android:paddingHorizontal="@dimen/_15sdp" - android:src="@color/black" + android:layout_marginHorizontal="@dimen/_37sdp" + android:layout_marginTop="@dimen/_47sdp" + android:layout_marginBottom="@dimen/_12sdp" + android:src="@android:color/black" android:visibility="visible" /> @@ -207,14 +203,14 @@ android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginHorizontal="@dimen/_40sdp" - android:layout_marginTop="@dimen/_51sdp" - android:layout_marginBottom="@dimen/_12sdp" + android:layout_marginHorizontal="@dimen/_39sdp" + android:layout_marginTop="@dimen/_48sdp" + android:layout_marginBottom="@dimen/_11sdp" + + app:resize_mode="fill" android:background="@color/black" - - android:visibility="visible" - /> + android:visibility="visible" /> diff --git a/app/src/main/res/layout/fragment_order_summary.xml b/app/src/main/res/layout/fragment_order_summary.xml index f2d07cc..317d449 100644 --- a/app/src/main/res/layout/fragment_order_summary.xml +++ b/app/src/main/res/layout/fragment_order_summary.xml @@ -44,24 +44,26 @@ android:layout_height="wrap_content" android:weightSum="1" android:layout_marginTop="10dp" + android:layout_marginBottom="15dp" android:layout_marginHorizontal="15dp" android:orientation="horizontal"> + android:paddingVertical="15dp" + android:layout_marginHorizontal="15dp"> @@ -130,17 +132,176 @@ + + + + + + + + + + + + + + + + + + + + + + +