From ec24fbee8aab96a559f9546bd1c640d0a9c569f1 Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Fri, 21 Jun 2024 19:38:05 +0530 Subject: [PATCH] Integrated season listing api Handling of category wise data listing in show listing. Changing all repository code to handle dynamic changes in category listing Episode listing activity created. inflated data from show data --- .../com/woka/home/mylist/MyListRepository.kt | 46 +-- .../home/mylist/adapters/WebSeriesAdapter.kt | 5 + .../com/woka/webseries/WebSeriesRepository.kt | 112 ++--- .../woka/webseries/adapters/SpinnerAdapter.kt | 19 +- .../adapters/WebSeriesShowAdapter.kt | 100 +++-- .../woka/webseries/models/SeasonMoreDetail.kt | 4 +- .../webseries/viewmodel/WebSeriesViewModel.kt | 7 +- .../woka/webseries/views/SeasonActivity.kt | 58 +++ .../woka/webseries/views/WebSeriesActivity.kt | 132 +++--- .../main/res/drawable-hdpi/img_season_bg.png | Bin 0 -> 5098 bytes .../main/res/drawable-ldpi/img_season_bg.png | Bin 0 -> 2040 bytes .../main/res/drawable-mdpi/img_season_bg.png | Bin 0 -> 2570 bytes .../main/res/drawable-xhdpi/img_season_bg.png | Bin 0 -> 5109 bytes .../res/drawable-xxhdpi/img_season_bg.png | Bin 0 -> 15212 bytes .../res/drawable-xxxhdpi/img_season_bg.png | Bin 0 -> 21467 bytes .../main/res/drawable/ic_heart_not_filled.xml | 14 +- app/src/main/res/drawable/ic_heart_select.xml | 7 +- app/src/main/res/drawable/ic_like_filled.xml | 21 +- .../main/res/drawable/ic_like_not_filled.xml | 4 +- app/src/main/res/drawable/ic_play_filled.xml | 10 + app/src/main/res/drawable/ic_share.xml | 5 + app/src/main/res/layout/activity_season.xml | 382 +++++++++++++++++- .../main/res/layout/activity_web_series.xml | 37 +- app/src/main/res/layout/show_view_holder.xml | 3 + app/src/main/res/values/strings.xml | 4 + 25 files changed, 699 insertions(+), 271 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/img_season_bg.png create mode 100644 app/src/main/res/drawable-ldpi/img_season_bg.png create mode 100644 app/src/main/res/drawable-mdpi/img_season_bg.png create mode 100644 app/src/main/res/drawable-xhdpi/img_season_bg.png create mode 100644 app/src/main/res/drawable-xxhdpi/img_season_bg.png create mode 100644 app/src/main/res/drawable-xxxhdpi/img_season_bg.png create mode 100644 app/src/main/res/drawable/ic_play_filled.xml create mode 100644 app/src/main/res/drawable/ic_share.xml diff --git a/app/src/main/java/com/woka/home/mylist/MyListRepository.kt b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt index 48717af..532a830 100644 --- a/app/src/main/java/com/woka/home/mylist/MyListRepository.kt +++ b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt @@ -1,6 +1,5 @@ package com.woka.home.mylist -import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.woka.home.mylist.models.AudioData @@ -12,7 +11,6 @@ import com.woka.home.mylist.models.SingKaraokeData import com.woka.networking.ApiResult import com.woka.networking.RetrofitHelper import com.woka.userdata.UserRepository -import com.woka.utils.TAG import com.woka.webseries.WebSeriesRepository import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -159,45 +157,23 @@ object MyListRepository { } } - if (categoryId == "1"){ - WebSeriesRepository.englishWebSeriesData?.show_data?.let { - for (show in it){ - var found = false + WebSeriesRepository.webSeriesData[categoryId]?.show_data?.let { + for (show in it){ + var found = false - show?.let {data -> - if (showData.id == data.id){ - found = true + show?.let {data -> + if (showData.id == data.id){ + found = true - if (addToFav){ - show.addAsBookMark(categoryId) - }else{ - show.removeAsBookMark(categoryId) - } + if (addToFav){ + show.addAsBookMark(categoryId) + }else{ + show.removeAsBookMark(categoryId) } } - - if (found) break } - } - }else{ - WebSeriesRepository.hindiWebSeriesData?.show_data?.let { - for (show in it){ - var found = false - show?.let {data -> - if (showData.id == data.id){ - found = true - - if (addToFav){ - show.addAsBookMark(categoryId) - }else{ - show.removeAsBookMark(categoryId) - } - } - } - - if (found) break - } + if (found) break } } } diff --git a/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt b/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt index a9d39ec..61ff746 100644 --- a/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt +++ b/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt @@ -13,6 +13,7 @@ import com.woka.home.mylist.MyListRepository import com.woka.home.mylist.models.PostType import com.woka.home.mylist.models.BookmarkedShowData import com.woka.utils.isNetworkConnected +import com.woka.utils.show import com.woka.utils.toast import java.util.concurrent.Executors import kotlin.math.max @@ -63,6 +64,9 @@ class WebSeriesAdapter(private val context: Context, title.text = showData.title + likeCount.show() + like.show() + showData.likes_count?.let { likeCount.text = "$it" } @@ -101,6 +105,7 @@ class WebSeriesAdapter(private val context: Context, like.isSelected = !like.isSelected } + fav.show() fav.isSelected = true fav.setOnClickListener { diff --git a/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt b/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt index c19337b..a483973 100644 --- a/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt +++ b/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt @@ -5,12 +5,10 @@ import androidx.lifecycle.MutableLiveData import com.woka.home.mylist.MyFavApiService import com.woka.home.mylist.MyListRepository import com.woka.home.mylist.models.BookmarkedShowData -import com.woka.home.mylist.models.MyListResponse import com.woka.home.mylist.models.PostType import com.woka.modules.ModuleApiService import com.woka.networking.ApiResult import com.woka.networking.RetrofitHelper -import com.woka.userdata.UserRepository import com.woka.webseries.models.ContinueEpisodeResponse import com.woka.webseries.models.ShowData import com.woka.webseries.models.WebSeriesResponse @@ -29,17 +27,11 @@ object WebSeriesRepository { // live data // show data (loose caching) - private val _englishWebSeriesLiveData = MutableLiveData>() - val englishWebSeriesLiveData: LiveData> - get() = _englishWebSeriesLiveData + private val _webSeriesLiveData = MutableLiveData>>() + val webSeriesLiveData: LiveData>> + get() = _webSeriesLiveData - var englishWebSeriesData: WebSeriesResponse? = null - - private val _hindiWebSeriesLiveData = MutableLiveData>() - val hindiWebSeriesLiveData: LiveData> - get() = _hindiWebSeriesLiveData - - var hindiWebSeriesData: WebSeriesResponse? = null + var webSeriesData = HashMap() // continue watching (tight caching) private val _continueWatchLiveData = MutableLiveData>() @@ -93,62 +85,39 @@ object WebSeriesRepository { } } - fun clearData(){ - _englishWebSeriesLiveData.postValue(ApiResult.Loading()) - _hindiWebSeriesLiveData.postValue(ApiResult.Loading()) - - hindiWebSeriesData = null - englishWebSeriesData = null - - shallLoadNewContinueWatchData = true - continueWatchData = null - } - - fun loadEnglishWebSeries(){ - CoroutineScope(Dispatchers.IO).launch { - _englishWebSeriesLiveData.postValue(ApiResult.Loading()) - - val response = RetrofitHelper.handleApiCall { - apiService.getWebSeries( - FormBody.Builder() - .add("category_id", "1") - .build() - ) + fun loadWebSeries(categoryId: String){ + if (webSeriesData.containsKey(categoryId)){ + webSeriesData[categoryId]?.let { + _webSeriesLiveData.postValue(ApiResult.Success(webSeriesData)) + return } - - when (response){ - is ApiResult.Error -> {} - is ApiResult.Loading -> {} - is ApiResult.Success -> { - englishWebSeriesData = response.data - } - } - - _englishWebSeriesLiveData.postValue(response) } - } - fun loadHindiWebSeries(){ CoroutineScope(Dispatchers.IO).launch { - _hindiWebSeriesLiveData.postValue(ApiResult.Loading()) + _webSeriesLiveData.postValue(ApiResult.Loading()) val response = RetrofitHelper.handleApiCall { apiService.getWebSeries( FormBody.Builder() - .add("category_id", "18") + .add("category_id", categoryId) .build() ) } when (response){ - is ApiResult.Error -> {} - is ApiResult.Loading -> {} + is ApiResult.Error -> { + _webSeriesLiveData.postValue(ApiResult.Error(response.errorMessage, response.error)) + } + is ApiResult.Loading -> { + _webSeriesLiveData.postValue(ApiResult.Loading()) + } is ApiResult.Success -> { - hindiWebSeriesData = response.data + response.data?.let { + webSeriesData[categoryId] = it + _webSeriesLiveData.postValue(ApiResult.Success(data = webSeriesData)) + } } } - - _hindiWebSeriesLiveData.postValue(response) } } @@ -176,37 +145,16 @@ object WebSeriesRepository { is ApiResult.Error -> {} is ApiResult.Loading -> {} is ApiResult.Success -> { - changeLikeLocally(postId, likeIt, categoryId) + changeLikeLocally(postId, likeIt) } } } } - private fun changeLikeLocally(id: String, isLiked: Boolean, categoryId: String){ - - if (categoryId == "1"){ - englishWebSeriesData?.show_data?.let{ - for (show in it){ - var found = false - show?.let {data -> - if ("${data.id}" == id){ - - data.is_liked = isLiked - - data.likes_count?.let { count -> - data.likes_count = if (isLiked) count + 1 - else max(0, count - 1) - } - - found = true - } - } - if (found) break - } - } - }else{ - hindiWebSeriesData?.show_data?.let{ - for (show in it){ + private fun changeLikeLocally(id: String, isLiked: Boolean){ + for (showDataResponse in webSeriesData.values){ + showDataResponse.show_data?.let {shows -> + for (show in shows){ var found = false show?.let {data -> if ("${data.id}" == id){ @@ -234,4 +182,12 @@ object WebSeriesRepository { categoryId ) } + + fun clearData(){ + _webSeriesLiveData.postValue(ApiResult.Loading()) + webSeriesData.clear() + + shallLoadNewContinueWatchData = true + continueWatchData = null + } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt index 871e078..b5ad060 100644 --- a/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt @@ -8,12 +8,19 @@ import android.widget.ArrayAdapter import android.widget.ImageView import android.widget.TextView import com.woka.R +import com.woka.modules.categorymodels.Category import com.woka.utils.hide import com.woka.utils.show -class SpinnerAdapter(context: Context, list: List): ArrayAdapter(context, 0, list){ +class SpinnerAdapter(context: Context, private val list: List, ): ArrayAdapter(context, 0, list){ - private var currentSelection: Int = 0 + var currentSelection: Int = 0 + + var selectedCategoryType: String? = null + get() { + return "${list[currentSelection].id}" + } + private set override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { return createViewFromResource(convertView, parent, position) @@ -23,7 +30,7 @@ class SpinnerAdapter(context: Context, list: List): ArrayAdapter val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.spinner_view_holder, parent, false) val textView = view.findViewById(R.id.spinner_text_view) val tickView = view.findViewById(R.id.spinner_tick) - textView.text = getItem(position) + textView.text = getItem(position).category_name if (currentSelection == position){ tickView.show() @@ -37,10 +44,14 @@ class SpinnerAdapter(context: Context, list: List): ArrayAdapter private fun createViewFromResource(convertView: View?, parent: ViewGroup, position: Int): View { val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.spinner_view_holder, parent, false) val textView = view.findViewById(R.id.spinner_text_view) - textView.text = getItem(position) + textView.text = getItem(position).category_name return view } + override fun getItem(position: Int): Category { + return list[position] + } + fun selectPosition(position: Int){ this.currentSelection = position } diff --git a/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt index 5e56fa9..d606f6a 100644 --- a/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt @@ -1,45 +1,40 @@ package com.woka.webseries.adapters +import android.annotation.SuppressLint import android.content.Context -import android.util.Log +import android.content.Intent 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 import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import com.woka.R import com.woka.databinding.ShowViewHolderBinding -import com.woka.utils.TAG import com.woka.utils.isNetworkConnected +import com.woka.utils.show import com.woka.utils.toast import com.woka.webseries.WebSeriesRepository import com.woka.webseries.models.ShowData -import java.util.concurrent.Executors +import com.woka.webseries.views.SeasonActivity +import com.woka.webseries.views.SeasonActivity.Companion.EXTRA_SHOW_CATEGORY_DATA +import com.woka.webseries.views.SeasonActivity.Companion.EXTRA_SHOW_ID import kotlin.math.max -class WebSeriesShowAdapter private constructor(private val context: Context, - private var categoryId: String, - config: AsyncDifferConfig): ListAdapter(config) { - companion object{ - - private val DIFF_UTIL = object : DiffUtil.ItemCallback(){ - override fun areItemsTheSame(oldItem: ShowData, newItem: ShowData): Boolean = oldItem.id == newItem.id - override fun areContentsTheSame(oldItem: ShowData, newItem: ShowData): Boolean { - return true - } - } - - private val DIFF_CONFIG = AsyncDifferConfig.Builder(DIFF_UTIL) - .setBackgroundThreadExecutor(Executors.newSingleThreadExecutor()) - .build() - } +class WebSeriesShowAdapter(private val context: Context): RecyclerView.Adapter() { inner class ShowViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root) - constructor(context: Context, categoryId: String): this(context, categoryId, DIFF_CONFIG) + private var categoryId: String? = null + + private var showList: List = ArrayList() + + @SuppressLint("NotifyDataSetChanged") + fun submitListShowList(it: List, categoryId: String?) { + this.showList = it + this.categoryId = categoryId + notifyDataSetChanged() + } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ShowViewHolder { return ShowViewHolder( @@ -51,8 +46,10 @@ class WebSeriesShowAdapter private constructor(private val context: Context, ) } - override fun onBindViewHolder(holder: ShowViewHolder, pos: Int) { - val showData = getItem(holder.absoluteAdapterPosition) + override fun getItemCount(): Int = showList.size + + override fun onBindViewHolder(holder: ShowViewHolder, position: Int) { + val showData = showList[holder.absoluteAdapterPosition] holder.binding.apply { showData.thumbnail_path?.let { @@ -65,6 +62,10 @@ class WebSeriesShowAdapter private constructor(private val context: Context, title.text = showData.title + like.show() + likeCount.show() + fav.show() + showData.likes_count?.let { likeCount.text = "$it" } @@ -79,25 +80,27 @@ class WebSeriesShowAdapter private constructor(private val context: Context, return@setOnClickListener } - if (like.isSelected){ - WebSeriesRepository.likeUnLikeShow("${showData.id}", false, categoryId) + categoryId?.let { + if (like.isSelected){ + WebSeriesRepository.likeUnLikeShow("${showData.id}", false, it) - showData.likes_count?.let { - likeCount.text = "${max(it - 1, 0)}" - } - }else{ - WebSeriesRepository.likeUnLikeShow("${showData.id}", true, categoryId) + showData.likes_count?.let { + likeCount.text = "${max(it - 1, 0)}" + } + }else{ + WebSeriesRepository.likeUnLikeShow("${showData.id}", true, it) - showData.likes_count?.let { - val value = it + 1 - likeCount.text = "$value" + showData.likes_count?.let { + val value = it + 1 + likeCount.text = "$value" + } } + + like.isSelected = !like.isSelected } - - like.isSelected = !like.isSelected } - fav.isSelected = showData.isBookMarked(categoryId) + categoryId?.let { fav.isSelected = showData.isBookMarked(it) } fav.setOnClickListener { if (!context.isNetworkConnected()){ @@ -105,13 +108,22 @@ class WebSeriesShowAdapter private constructor(private val context: Context, return@setOnClickListener } - WebSeriesRepository.updateFavShow( - showData, - !fav.isSelected, - categoryId - ) + categoryId?.let { + WebSeriesRepository.updateFavShow( + showData, + !fav.isSelected, + it + ) - fav.isSelected = !fav.isSelected + fav.isSelected = !fav.isSelected + } + } + + root.setOnClickListener { + context.startActivity(Intent(context, SeasonActivity::class.java).apply { + putExtra(EXTRA_SHOW_ID, showData.id) + putExtra(EXTRA_SHOW_CATEGORY_DATA, categoryId) + }) } } } diff --git a/app/src/main/java/com/woka/webseries/models/SeasonMoreDetail.kt b/app/src/main/java/com/woka/webseries/models/SeasonMoreDetail.kt index 2386946..ab85e7a 100644 --- a/app/src/main/java/com/woka/webseries/models/SeasonMoreDetail.kt +++ b/app/src/main/java/com/woka/webseries/models/SeasonMoreDetail.kt @@ -1,5 +1,7 @@ package com.woka.webseries.models +import java.io.Serializable + data class SeasonMoreDetail( val content_id: Int?, val description: String?, @@ -10,4 +12,4 @@ data class SeasonMoreDetail( val title: String?, val trailer_hd_url: String?, val trailer_sd_url: String? -) \ No newline at end of file +): Serializable \ No newline at end of file diff --git a/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt b/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt index 7b5d9a4..4bb00e5 100644 --- a/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt +++ b/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt @@ -9,11 +9,8 @@ import com.woka.webseries.models.WebSeriesResponse class WebSeriesViewModel: ViewModel() { - val englishWebSeriesData: LiveData> - get() = WebSeriesRepository.englishWebSeriesLiveData - - val hindiWebSeriesData: LiveData> - get() = WebSeriesRepository.hindiWebSeriesLiveData + val webSeriesLiveData: LiveData>> + get() = WebSeriesRepository.webSeriesLiveData val continueWatchLiveData: LiveData> get() = WebSeriesRepository.continueWatchLiveData diff --git a/app/src/main/java/com/woka/webseries/views/SeasonActivity.kt b/app/src/main/java/com/woka/webseries/views/SeasonActivity.kt index 65d8298..6b79898 100644 --- a/app/src/main/java/com/woka/webseries/views/SeasonActivity.kt +++ b/app/src/main/java/com/woka/webseries/views/SeasonActivity.kt @@ -1,16 +1,30 @@ package com.woka.webseries.views +import android.graphics.Color import android.os.Bundle import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import com.bumptech.glide.Glide import com.woka.R import com.woka.databinding.ActivitySeasonBinding +import com.woka.utils.lightStatusBar +import com.woka.webseries.WebSeriesRepository +import com.woka.webseries.models.ShowData class SeasonActivity : AppCompatActivity() { + companion object{ + const val EXTRA_SHOW_ID = "extra_show_id_data" + const val EXTRA_SHOW_CATEGORY_DATA = "extra_show_category_data" + } + private lateinit var binding: ActivitySeasonBinding + private var showId: Int = -1 + private var categoryId: String? = null + + private var showData: ShowData? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -22,5 +36,49 @@ class SeasonActivity : AppCompatActivity() { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } + + with(window){ + statusBarColor = Color.parseColor("#D3EFF8") + lightStatusBar(true) + } + + showId = intent.getIntExtra(EXTRA_SHOW_ID, -1) + categoryId = intent.getStringExtra(EXTRA_SHOW_CATEGORY_DATA) + + if (showId == -1 || categoryId == null){ + finish() + return + } + + WebSeriesRepository.webSeriesData[categoryId]?.show_data?.let { + for (show in it){ + if (showId == show?.id){ + showData = show + break + } + } + } + + initViews() + + } + + private fun initViews() { + if (showData != null && categoryId != null) { + binding.apply { + showData!!.thumbnail_path?.let { + Glide.with(applicationContext) + .load(it) + .into(image) + } + + likeCount.text = "${showData!!.likes_count}" + + favSeason.isSelected = showData!!.isBookMarked(categoryId!!) + + likeSeason.isSelected = showData!!.is_liked?:false + + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt b/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt index 7619a26..803915e 100644 --- a/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt +++ b/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt @@ -8,6 +8,7 @@ import android.widget.ArrayAdapter import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.lifecycle.LiveData import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.SimpleItemAnimator @@ -26,14 +27,13 @@ import com.woka.webseries.adapters.WebSeriesShowAdapter import com.woka.webseries.models.WebSeriesResponse import com.woka.webseries.viewmodel.WebSeriesViewModel -class WebSeriesActivity : WokaBaseActivity(), Observer>{ +class WebSeriesActivity : WokaBaseActivity(), Observer>>{ private lateinit var binding: ActivityWebSeriesBinding private lateinit var viewmodel: WebSeriesViewModel - private lateinit var engShowAdapter: WebSeriesShowAdapter - private lateinit var hinShowAdapter: WebSeriesShowAdapter + private lateinit var showAdapter: WebSeriesShowAdapter private lateinit var continueWatchAdapter: ContinueEpisodeAdapter @@ -88,8 +88,7 @@ class WebSeriesActivity : WokaBaseActivity(), Observer { @@ -127,20 +124,6 @@ class WebSeriesActivity : WokaBaseActivity(), Observer?, - view: View?, - position: Int, - id: Long - ) { - catSpinnerAdapter?.selectPosition(position) - loadShowData() - } - - override fun onNothingSelected(parent: AdapterView<*>?) {} - } - ModuleRepository.showCategoryLiveData.observe(this){ when(it){ is ApiResult.Error -> { @@ -149,64 +132,67 @@ class WebSeriesActivity : WokaBaseActivity(), Observer {} is ApiResult.Success -> { - - val categories = mutableListOf() it.data?.result?.let {catList -> - for (cat in catList){ - cat?.category_name?.let { category -> - categories.add(category) - } + binding.shimmer.hide() + + binding.trailerView.show() + + adjustMasilaImage() + + binding.spinnerCard.show() + binding.selectLangTxt.show() + + WebSeriesRepository.continueWatchData?.let { + binding.continueWatchTxt.show() + binding.rvContinueWatch.show() + }?:{ + binding.continueWatchTxt.hide() + binding.rvContinueWatch.hide() } + + catSpinnerAdapter = SpinnerAdapter(this, catList.filterNotNull()) + binding.categorySpinner.setAdapter(catSpinnerAdapter) + + loadShowData() } - - catSpinnerAdapter = SpinnerAdapter(this, categories) - - loadShowData() - - binding.categorySpinner.setAdapter(catSpinnerAdapter) } } } + + binding.categorySpinner.onItemSelectedListener = object : OnItemSelectedListener{ + override fun onItemSelected( + parent: AdapterView<*>?, + view: View?, + position: Int, + id: Long + ) { + if (position != catSpinnerAdapter?.currentSelection){ + catSpinnerAdapter?.selectPosition(position) + loadShowData() + } + } + + override fun onNothingSelected(parent: AdapterView<*>?) {} + } } - override fun onChanged(value: ApiResult) { + override fun onChanged(value: ApiResult>) { when (value){ is ApiResult.Error -> { - binding.shimmer.hide() - binding.errorView.show() + binding.shimmerShowData.hide() + binding.rvWebSeries.hide() + } + is ApiResult.Loading -> { + binding.shimmerShowData.show() + binding.rvWebSeries.hide() } - is ApiResult.Loading -> {} is ApiResult.Success -> { - value.data?.show_data?.let { - binding.trailerView.show() + catSpinnerAdapter?.selectedCategoryType?.let { categoryType -> + value.data?.get(categoryType)?.show_data?.let {showList -> + binding.shimmerShowData.hide() - adjustMasilaImage() - - binding.shimmer.hide() - - binding.spinnerCard.show() - binding.selectLangTxt.show() - - WebSeriesRepository.continueWatchData?.let { - binding.continueWatchTxt.show() - binding.rvContinueWatch.show() - }?:{ - binding.continueWatchTxt.hide() - binding.rvContinueWatch.hide() - } - - if (binding.categorySpinner.selectedItemPosition <= 0){ - // hindi - binding.rvHindiWebSeries.show() - binding.rvEngWebSeries.hide() - - hinShowAdapter.submitList(it) - }else{ - // English - binding.rvHindiWebSeries.hide() - binding.rvEngWebSeries.show() - - engShowAdapter.submitList(it) + showAdapter.submitListShowList(showList.filterNotNull(), categoryType) + binding.rvWebSeries.show() } } } @@ -214,10 +200,8 @@ class WebSeriesActivity : WokaBaseActivity(), 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldpi/img_season_bg.png b/app/src/main/res/drawable-ldpi/img_season_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..04d6c909bf71c09c33683c6f260bacf33b78ccd6 GIT binary patch literal 2040 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/img_season_bg.png b/app/src/main/res/drawable-xxxhdpi/img_season_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..669b11cdad4b8d32eff9856474cd730843c539b5 GIT binary patch literal 21467 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_heart_not_filled.xml b/app/src/main/res/drawable/ic_heart_not_filled.xml index aed203b..932be40 100644 --- a/app/src/main/res/drawable/ic_heart_not_filled.xml +++ b/app/src/main/res/drawable/ic_heart_not_filled.xml @@ -1,5 +1,11 @@ - - - - + + + + diff --git a/app/src/main/res/drawable/ic_heart_select.xml b/app/src/main/res/drawable/ic_heart_select.xml index 458f983..59a572d 100644 --- a/app/src/main/res/drawable/ic_heart_select.xml +++ b/app/src/main/res/drawable/ic_heart_select.xml @@ -1,11 +1,8 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_like_filled.xml b/app/src/main/res/drawable/ic_like_filled.xml index c2d496e..6421185 100644 --- a/app/src/main/res/drawable/ic_like_filled.xml +++ b/app/src/main/res/drawable/ic_like_filled.xml @@ -1,7 +1,16 @@ - - - - - - + + + + + + diff --git a/app/src/main/res/drawable/ic_like_not_filled.xml b/app/src/main/res/drawable/ic_like_not_filled.xml index 64066ec..4c94f0f 100644 --- a/app/src/main/res/drawable/ic_like_not_filled.xml +++ b/app/src/main/res/drawable/ic_like_not_filled.xml @@ -1,6 +1,6 @@ + + diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 0000000..e155153 --- /dev/null +++ b/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/layout/activity_season.xml b/app/src/main/res/layout/activity_season.xml index b27ef24..bc39c6c 100644 --- a/app/src/main/res/layout/activity_season.xml +++ b/app/src/main/res/layout/activity_season.xml @@ -1,10 +1,388 @@ - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +