diff --git a/app/src/main/java/com/woka/home/ExploreWokaActivity.kt b/app/src/main/java/com/woka/home/ExploreWokaActivity.kt index 710230c..cb54d30 100644 --- a/app/src/main/java/com/woka/home/ExploreWokaActivity.kt +++ b/app/src/main/java/com/woka/home/ExploreWokaActivity.kt @@ -1,5 +1,6 @@ package com.woka.home +import android.content.Intent import android.os.Build import android.os.Bundle import android.transition.Fade @@ -10,6 +11,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.databinding.ActivityExploreWokaBinding +import com.woka.players.LiveStreamPlayerActivity import com.woka.utils.WokaBaseActivity import com.woka.utils.lightStatusBar import com.woka.utils.toast @@ -52,9 +54,14 @@ class ExploreWokaActivity : WokaBaseActivity() { finish() } - wokaFm.setOnClickListener { - + liveTv.setOnClickListener { + startActivity(Intent(this@ExploreWokaActivity, LiveStreamPlayerActivity::class.java)) } + + wokaFm.setOnClickListener { + startActivity(Intent(this@ExploreWokaActivity, FMActivity::class.java)) + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/HomeActivity.kt b/app/src/main/java/com/woka/home/HomeActivity.kt index 91d5213..48b59c7 100644 --- a/app/src/main/java/com/woka/home/HomeActivity.kt +++ b/app/src/main/java/com/woka/home/HomeActivity.kt @@ -42,6 +42,7 @@ import com.woka.home.sidebar.profile.UserProfileActivity import com.woka.home.sidebar.support.SupportActivity import com.woka.modules.disclaimer.DisclaimerActivity import com.woka.modules.webview.WebViewActivity +import com.woka.modules.webview.WebViewActivity.Companion.WEB_VIEW_TITLE import com.woka.modules.webview.WebViewActivity.Companion.WEB_VIEW_URL import com.woka.userdata.userDataModels.UserDataResponse import com.woka.networking.ApiResult @@ -358,6 +359,7 @@ class HomeActivity : WokaBaseActivity(), startActivity( Intent(this@HomeActivity, WebViewActivity::class.java).apply { putExtra(WEB_VIEW_URL, TERMS_N_CONDITIONS_URL) + putExtra(WEB_VIEW_TITLE, getString(R.string.terms_conditions)) } ) } @@ -366,6 +368,7 @@ class HomeActivity : WokaBaseActivity(), startActivity( Intent(this@HomeActivity, WebViewActivity::class.java).apply { putExtra(WEB_VIEW_URL, PRIVACY_N_POLICY_URL) + putExtra(WEB_VIEW_TITLE, getString(R.string.privacy_policy)) } ) } diff --git a/app/src/main/java/com/woka/home/MoreHomeActivity.kt b/app/src/main/java/com/woka/home/MoreHomeActivity.kt index 6832612..2f7cb54 100644 --- a/app/src/main/java/com/woka/home/MoreHomeActivity.kt +++ b/app/src/main/java/com/woka/home/MoreHomeActivity.kt @@ -1,7 +1,11 @@ package com.woka.home +import android.app.Dialog import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.InsetDrawable import android.os.Bundle +import android.text.Html import android.transition.Fade import android.view.WindowManager import androidx.activity.enableEdgeToEdge @@ -9,11 +13,16 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.SimpleItemAnimator +import com.bumptech.glide.Glide import com.google.android.exoplayer2.MediaItem import com.woka.R +import com.woka.WokaApp +import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ActivityMoreHomeBinding +import com.woka.databinding.DialogBlogsBinding import com.woka.modules.blogs.BlogsAdapter import com.woka.modules.blogs.BlogsRepository +import com.woka.modules.blogs.models.Blog import com.woka.modules.wokasongs.WokaSongsAdapter import com.woka.modules.wokasongs.WokaSongsRepository import com.woka.networking.ApiResult @@ -33,6 +42,9 @@ class MoreHomeActivity : WokaBaseActivity() { private lateinit var songsAdapter: WokaSongsAdapter + private lateinit var blogBinding: DialogBlogsBinding + private lateinit var blogDialog: Dialog + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) with(window) { @@ -56,9 +68,11 @@ class MoreHomeActivity : WokaBaseActivity() { viewModel = ViewModelProvider(this)[MoreViewModel::class.java] - blogsAdapter = BlogsAdapter() + blogsAdapter = BlogsAdapter(::obBlogClicked) songsAdapter = WokaSongsAdapter(this) + initBlogDialog() + initViews() clickEvents() @@ -71,6 +85,32 @@ class MoreHomeActivity : WokaBaseActivity() { songsAdapter.releasePlayer() } + private fun initBlogDialog(){ + blogBinding = DialogBlogsBinding.inflate(layoutInflater) + blogDialog = Dialog(this) + + blogDialog.setContentView(blogBinding.root) + + try { + val back = ColorDrawable(Color.TRANSPARENT) + val inset = InsetDrawable(back, 50) + blogDialog.window!!.setBackgroundDrawable(inset) + } catch (e: Exception) { + // do nothing + } + + try { + val layoutParams = blogDialog.window!!.attributes + layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT + layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT + blogDialog.window!!.setAttributes(layoutParams) + } catch (e: Exception) { + // do nothing + } + + blogBinding.close.setOnClickListener { blogDialog.dismiss() } + } + private fun clickEvents() { binding.apply { more.setOnClickListener { @@ -134,8 +174,20 @@ class MoreHomeActivity : WokaBaseActivity() { val mediaItems = mutableListOf() for (song in songList) { - song?.content_more_details?.get(0)?.url?.let { url -> - mediaItems.add(MediaItem.fromUri(url)) + song?.content_more_details?.let { contentMoreDetails -> + + if (contentMoreDetails.isNotEmpty()){ + if (contentMoreDetails.size > 1 && userPrefs?.appLanguage == "hi"){ + contentMoreDetails[1]?.url?.let { url -> + mediaItems.add(MediaItem.fromUri(url)) + } + }else{ + contentMoreDetails[0]?.url?.let { url -> + mediaItems.add(MediaItem.fromUri(url)) + } + } + } + } } @@ -146,4 +198,40 @@ class MoreHomeActivity : WokaBaseActivity() { } } } + + private fun obBlogClicked(blog: Blog){ + blogBinding.apply { + + scrollView.smoothScrollTo(0, 0) + + blog.thumbnail_path?.let { + Glide.with(this@MoreHomeActivity) + .load(it) + .placeholder(android.R.color.darker_gray) + .error(android.R.color.darker_gray) + .into(blogImage) + } + + var titleTxt = blog.title + var descriptionTxt = blog.description + + blog.content_more_details?.let { + if (it.isNotEmpty()){ + titleTxt = it[0]?.title + descriptionTxt = it[0]?.article + + if (it.size > 1 && WokaApp.userPrefs?.appLanguage == "hi"){ + titleTxt = it[1]?.title + descriptionTxt = it[1]?.article + } + } + } + + blogTitle.text = titleTxt + blogDescription.text = Html.fromHtml(descriptionTxt, Html.FROM_HTML_MODE_LEGACY) + + } + + blogDialog.show() + } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt index 791e96d..f2ee5bf 100644 --- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -164,6 +164,12 @@ class Home1Fragment : Fragment() { startActivity(Intent(it, FMActivity::class.java)) } } + + liveTv.setOnClickListener { + activity?.let { + startActivity(Intent(it, LiveStreamPlayerActivity::class.java)) + } + } } } diff --git a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt index 0e4caed..f459980 100644 --- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -10,6 +10,7 @@ import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp import com.woka.databinding.FragmentHome2Binding +import com.woka.home.FMActivity import com.woka.home.HomeViewModel import com.woka.userdata.userDataModels.UserDataResponse import com.woka.networking.ApiResult @@ -79,7 +80,21 @@ class Home2Fragment : Fragment() { private fun clickEvents(){ binding.apply { playerCard.setOnClickListener { - startActivity(Intent(activity, LiveStreamPlayerActivity::class.java)) + activity?.let { + startActivity(Intent(it, LiveStreamPlayerActivity::class.java)) + } + } + + liveTv.setOnClickListener { + activity?.let { + startActivity(Intent(it, LiveStreamPlayerActivity::class.java)) + } + } + + wokaFm.setOnClickListener { + activity?.let { + startActivity(Intent(it, FMActivity::class.java)) + } } } } @@ -106,6 +121,8 @@ class Home2Fragment : Fragment() { exploreWokaTxt.text = getString(R.string.explore_woka) comingSoonTxt.text = getString(R.string.coming_soonn_on_woka) + playTrailer.text = getString(R.string.play_trailer) + masila.text = getString(R.string.masila) } } diff --git a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt index 7a38130..c3904ec 100644 --- a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt +++ b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.SimpleItemAnimator import com.woka.databinding.FragmentMyListBinding @@ -13,6 +14,7 @@ import com.woka.home.mylist.adapters.AudioBooksAdapter import com.woka.home.mylist.adapters.GamesAdapter import com.woka.home.mylist.adapters.KaraokeAdapter import com.woka.home.mylist.adapters.WebSeriesAdapter +import com.woka.home.mylist.models.PostType import com.woka.home.mylist.models.ShowData import com.woka.networking.ApiResult import com.woka.utils.hide @@ -36,11 +38,11 @@ class MyListFragment : Fragment() { binding = FragmentMyListBinding.inflate(inflater, container, false) // adapters - webSeriesEAdapter = WebSeriesAdapter("1") - webSeriesHAdapter = WebSeriesAdapter("18") - audioBooksAdapter = AudioBooksAdapter() - karaokeAdapter = KaraokeAdapter() - gamesAdapter = GamesAdapter() + webSeriesEAdapter = WebSeriesAdapter(requireContext(),"1", ::onListGotEmpty) + webSeriesHAdapter = WebSeriesAdapter(requireContext(),"18", ::onListGotEmpty) + audioBooksAdapter = AudioBooksAdapter(requireContext(), ::onListGotEmpty) + karaokeAdapter = KaraokeAdapter(requireContext(), ::onListGotEmpty) + gamesAdapter = GamesAdapter(requireContext(), ::onListGotEmpty) initViews() @@ -177,6 +179,31 @@ class MyListFragment : Fragment() { } } + private fun onListGotEmpty(postType: PostType, isEng: Boolean = true){ + binding.apply { + when (postType){ + PostType.WEB_SERIES -> { + if (isEng){ + webSeriesEnglishView.hide() + }else{ + webSeriesHindiView.hide() + } + } + PostType.AUDIO_BOOKS -> audioBooksView.hide() + PostType.KARAOKE -> karaokeView.hide() + PostType.GAMES -> gamesView.hide() + } + + if (!webSeriesEnglishView.isVisible && + !webSeriesHindiView.isVisible && + !audioBooksView.isVisible && + !karaokeView.isVisible && + !gamesView.isVisible){ + noData.show() + } + } + } + companion object { fun newInstance() = MyListFragment() } 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 41c6055..94451e5 100644 --- a/app/src/main/java/com/woka/home/mylist/MyListRepository.kt +++ b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt @@ -1,5 +1,6 @@ package com.woka.home.mylist +import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.woka.home.mylist.models.AudioData @@ -11,6 +12,7 @@ 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 kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -109,7 +111,7 @@ object MyListRepository { }else{ myFavApiService.removeFromFav( FormBody.Builder() - .add("post_id", "${showData.id}") + .add("id", "${showData.id}") .add("post_type", PostType.WEB_SERIES.value) .build() ) @@ -145,7 +147,7 @@ object MyListRepository { }else{ myFavApiService.removeFromFav( FormBody.Builder() - .add("post_id", "${audioData.id}") + .add("id", "${audioData.id}") .add("post_type", PostType.AUDIO_BOOKS.value) .build() ) @@ -181,7 +183,7 @@ object MyListRepository { }else{ myFavApiService.removeFromFav( FormBody.Builder() - .add("post_id", "${karaokeData.id}") + .add("id", "${karaokeData.id}") .add("post_type", PostType.KARAOKE.value) .build() ) @@ -216,7 +218,7 @@ object MyListRepository { }else{ myFavApiService.removeFromFav( FormBody.Builder() - .add("post_id", "${gameData.id}") + .add("id", "${gameData.id}") .add("post_type", PostType.GAMES.value) .build() ) diff --git a/app/src/main/java/com/woka/home/mylist/adapters/AudioBooksAdapter.kt b/app/src/main/java/com/woka/home/mylist/adapters/AudioBooksAdapter.kt index eaa4bb7..aa08347 100644 --- a/app/src/main/java/com/woka/home/mylist/adapters/AudioBooksAdapter.kt +++ b/app/src/main/java/com/woka/home/mylist/adapters/AudioBooksAdapter.kt @@ -1,19 +1,25 @@ package com.woka.home.mylist.adapters +import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.AsyncDifferConfig import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import com.bumptech.glide.Glide +import com.woka.R import com.woka.databinding.FavViewHolderBinding import com.woka.home.mylist.MyListRepository import com.woka.home.mylist.models.AudioData import com.woka.home.mylist.models.PostType +import com.woka.utils.isNetworkConnected +import com.woka.utils.toast import java.util.concurrent.Executors import kotlin.math.max -class AudioBooksAdapter(config: AsyncDifferConfig): ListAdapter(config) { +class AudioBooksAdapter(private val context: Context, + config: AsyncDifferConfig, + private val onListEmptyListener: ((postType: PostType, isEng: Boolean) -> Unit)): ListAdapter(config) { companion object{ private val DIFF_UTIL = object : DiffUtil.ItemCallback(){ @@ -30,7 +36,8 @@ class AudioBooksAdapter(config: AsyncDifferConfig): ListAdapter