diff --git a/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt b/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt
index aa33ed6..64e5205 100644
--- a/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt
+++ b/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt
@@ -11,6 +11,8 @@ import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
import com.woka.audiobooks.AudioBookRepository
import com.woka.audiobooks.models.audiodata.AudioBookData
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ShowViewHolderBinding
import com.woka.userPreference.UserType
import com.woka.utils.isNetworkConnected
@@ -123,6 +125,8 @@ class AudioBooksAdapter(
audioBook.id?.let{
onBookChanged(it, audioBook)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBook.id)
}
fav.isSelected = audioBook.mark_as_favourite == true
@@ -149,6 +153,8 @@ class AudioBooksAdapter(
audioBook.id?.let{
onBookChanged(it, audioBook)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBook.id)
}
root.setOnClickListener {
diff --git a/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt b/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt
index d381cc2..929f06d 100644
--- a/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt
+++ b/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt
@@ -11,6 +11,8 @@ import com.woka.WokaApp
import com.woka.audiobooks.AudioBookRepository
import com.woka.audiobooks.models.audiodata.AudioBookData
import com.woka.audiobooks.models.continuedata.ContinueAudioData
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FavViewHolderBinding
import com.woka.home.mylist.adapters.FavoriteViewHolder
import com.woka.utils.isNetworkConnected
@@ -108,6 +110,8 @@ class ContinueAudioAdapter(private val context: Context,
likeCount.text = "${audioBook.likes_count}"
audioBook?.id?.let{onContinueBookChanged(it, AudioBookData(audioBook))}
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBook.id)
}
fav.isSelected = audioBook.mark_as_favourite == true
@@ -128,6 +132,8 @@ class ContinueAudioAdapter(private val context: Context,
fav.isSelected = audioBook.mark_as_favourite == true
audioBook?.id?.let{onContinueBookChanged(it, AudioBookData(audioBook))}
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBook.id)
}
root.setOnClickListener {
diff --git a/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt b/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt
index e08d95c..79d279e 100644
--- a/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt
+++ b/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt
@@ -23,6 +23,8 @@ import com.woka.audiobooks.adapters.ContinueAudioAdapter
import com.woka.audiobooks.models.audiodata.AudioBookData
import com.woka.audiobooks.models.continuedata.ContinueAudioData
import com.woka.audiobooks.viewmodels.AudioBookViewModel
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityAudioBooksBinding
import com.woka.databinding.DialogModuleShowerBinding
import com.woka.networking.ApiResult
@@ -34,6 +36,7 @@ import com.woka.utils.WokaBaseActivity
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import java.text.SimpleDateFormat
@@ -71,7 +74,7 @@ class AudioBooksActivity : WokaBaseActivity() {
viewModel = ViewModelProvider(this)[AudioBookViewModel::class.java]
- audioBookAdapter = AudioBooksAdapter(this, ::onBookClicked, ::onBookChanged){
+ audioBookAdapter = AudioBooksAdapter(this, ::onBookClicked, ::onBookChanged) {
noSignInDialog.show()
}
continueAudioAdapter =
@@ -91,11 +94,17 @@ class AudioBooksActivity : WokaBaseActivity() {
setObservers()
- if (!viewModel.audioBookLiveData.isInitialized){
+ if (!viewModel.audioBookLiveData.isInitialized) {
viewModel.loadAudioSongs()
}
}
+ override fun onDestroy() {
+ super.onDestroy()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews() {
binding.apply {
adjustTrailerImage()
@@ -129,6 +138,10 @@ class AudioBooksActivity : WokaBaseActivity() {
}
dialogBinding.close.setOnClickListener { audioDialog.dismiss() }
+
+ audioDialog.setOnDismissListener {
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
}
private fun clickEvents() {
@@ -139,17 +152,21 @@ class AudioBooksActivity : WokaBaseActivity() {
retryBtn.setOnClickListener {
viewModel.loadAudioSongs()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
loadMoreBtn.setOnClickListener {
viewModel.loadAudioSongs()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
private fun setObservers() {
- viewModel.audioBookLiveData.observe(this){
- when(it){
+ viewModel.audioBookLiveData.observe(this) {
+ when (it) {
is ApiResult.Error -> {
binding.shimmer.hide()
if (audioBookAdapter.currentList.size == 0) {
@@ -166,6 +183,7 @@ class AudioBooksActivity : WokaBaseActivity() {
binding.loadMoreBtn.show()
}
}
+
is ApiResult.Loading -> {
if (audioBookAdapter.currentList.size == 0) {
// loading first data
@@ -177,9 +195,10 @@ class AudioBooksActivity : WokaBaseActivity() {
binding.loadMoreBtn.hide()
}
}
+
is ApiResult.Success -> {
- it.data?.let {newList ->
- if (newList.isNotEmpty()){
+ it.data?.let { newList ->
+ if (newList.isNotEmpty()) {
binding.rvAudioBooks.show()
binding.listenTxt.show()
binding.trailerView.show()
@@ -191,15 +210,15 @@ class AudioBooksActivity : WokaBaseActivity() {
binding.loadMoreBtn.text = getString(R.string.load_more)
binding.loadMoreBtn.setVisibility(!viewModel.lastPage)
- if (audioBookAdapter.currentList.isEmpty()){
+ if (audioBookAdapter.currentList.isEmpty()) {
// first data load
- if (userPrefs?.userType != UserType.GUEST && !viewModel.audioContinueLiveData.isInitialized){
+ if (userPrefs?.userType != UserType.GUEST && !viewModel.audioContinueLiveData.isInitialized) {
viewModel.loadContinueData()
}
loadTrailerData(newList[0])
audioBookAdapter.submitList(newList)
- }else{
+ } else {
// loaded more data
audioBookAdapter.notifyItemRangeInserted(
audioBookAdapter.currentList.size,
@@ -260,6 +279,8 @@ class AudioBooksActivity : WokaBaseActivity() {
trailerBtn.setOnClickListener {
onListenClicked(audioBookData)
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}
}
}
@@ -278,11 +299,15 @@ class AudioBooksActivity : WokaBaseActivity() {
private fun onBookClicked(audioBookData: AudioBookData) {
loadTrailerData(audioBookData)
showAudioDialog(audioBookData)
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}
private fun onContinueBookClicked(audioBookData: ContinueAudioData) {
loadTrailerData(AudioBookData(audioBookData))
showAudioDialog(AudioBookData(audioBookData))
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}
private fun onBookChanged(id: Int, audioBookData: AudioBookData) {
@@ -320,18 +345,18 @@ class AudioBooksActivity : WokaBaseActivity() {
var url: String? = null
var title = ""
- audioBookData.content_more_details?.let {moreDetails ->
- if (moreDetails.isNotEmpty()){
- if (userPrefs?.appLanguage == "hi" && moreDetails.size > 1){
+ audioBookData.content_more_details?.let { moreDetails ->
+ if (moreDetails.isNotEmpty()) {
+ if (userPrefs?.appLanguage == "hi" && moreDetails.size > 1) {
url = moreDetails[1]?.url
- title = moreDetails[1]?.title?:""
- }else{
+ title = moreDetails[1]?.title ?: ""
+ } else {
url = moreDetails[0]?.url
- title = moreDetails[0]?.title?:""
+ title = moreDetails[0]?.title ?: ""
}
- }else{
+ } else {
url = audioBookData.audio_url
- title = audioBookData.title?:""
+ title = audioBookData.title ?: ""
}
}
@@ -417,15 +442,23 @@ class AudioBooksActivity : WokaBaseActivity() {
watchCard.setOnClickListener {
onListenClicked(audioBookData)
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
+ }
+
+ share.setOnClickListener {
+ shareWokaApp()
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}
like.setOnClickListener {
- if (!isNetworkConnected()){
+ if (!isNetworkConnected()) {
toast(getString(R.string.no_internet))
return@setOnClickListener
}
- if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
+ if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) {
noSignInDialog.show()
return@setOnClickListener
}
@@ -436,10 +469,10 @@ class AudioBooksActivity : WokaBaseActivity() {
)
audioBookData.likes_count?.let {
- audioBookData.likes_count = if (like.isSelected){
+ audioBookData.likes_count = if (like.isSelected) {
// unlike
max(0, it - 1)
- }else{
+ } else {
// like
it + 1
}
@@ -453,19 +486,21 @@ class AudioBooksActivity : WokaBaseActivity() {
}
like.isSelected = !like.isSelected
likeCount.text = "${audioBookData.likes_count}"
+
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}
fav.setOnClickListener {
- if (!isNetworkConnected()){
+ if (!isNetworkConnected()) {
toast(getString(R.string.no_internet))
return@setOnClickListener
}
- if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
+ if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) {
noSignInDialog.show()
return@setOnClickListener
}
-
+
AudioBookRepository.updateFavShow(
audioBookData,
!fav.isSelected
@@ -479,10 +514,8 @@ class AudioBooksActivity : WokaBaseActivity() {
}
fav.isSelected = !fav.isSelected
- }
- close.setOnClickListener {
- audioDialog.dismiss()
+ ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}
audioDialog.show()
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 364f82c..5d76dfe 100644
--- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt
+++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt
@@ -22,6 +22,7 @@ import com.woka.networking.ApiResult
import com.woka.players.models.VideoPlayList
import com.woka.players.views.LiveStreamPlayerActivity
import com.woka.players.views.PlayerActivity
+import com.woka.shop.views.ShopActivity
import com.woka.streamingurls.StreamingUrlRepository
import com.woka.userPreference.UserType
import com.woka.userdata.userDataModels.UserDataResponse
@@ -130,6 +131,14 @@ class Home2Fragment : Fragment() {
}
}
+ shop.setOnClickListener {
+ activity?.let {
+ startActivity(Intent(it, ShopActivity::class.java))
+
+ clickHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+ }
+
playTrailer.setOnClickListener {
activity?.let {
it.startActivity(Intent(it, PlayerActivity::class.java).apply {
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 f6a74e4..33055c0 100644
--- a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt
+++ b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt
@@ -57,6 +57,7 @@ import com.woka.userdata.UserRepository
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import com.woka.webseries.models.ShowData
@@ -484,6 +485,11 @@ class MyListFragment : Fragment() {
clickHelper.upsertClickEvent(ContentType.OTHERS)
}
+
+ dialogBinding.share.setOnClickListener {
+ clickHelper.upsertClickEvent(ContentType.OTHERS)
+ activity?.shareWokaApp()
+ }
}
private fun onListGotEmpty(postType: PostType, isEng: Boolean = true) {
@@ -967,6 +973,24 @@ class MyListFragment : Fragment() {
" "
), Html.FROM_HTML_MODE_LEGACY
)
+
+ watchCard.setOnClickListener {
+ activity?.let { activity ->
+ data.video_url_hd?.let {
+ startActivity(
+ Intent(
+ activity,
+ KaraokePlayerActivity::class.java
+ ).apply {
+ putExtra(
+ KaraokePlayerActivity.EXTRA_KARAOKE_DATA,
+ KaraokePlayerData(it, karaokeData.title)
+ )
+ })
+ }
+ }
+ clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
+ }
}
} else {
moreDetailsList[0]?.let { data ->
@@ -977,6 +1001,24 @@ class MyListFragment : Fragment() {
" "
), Html.FROM_HTML_MODE_LEGACY
)
+
+ watchCard.setOnClickListener {
+ activity?.let { activity ->
+ data.video_url_hd?.let {
+ startActivity(
+ Intent(
+ activity,
+ KaraokePlayerActivity::class.java
+ ).apply {
+ putExtra(
+ KaraokePlayerActivity.EXTRA_KARAOKE_DATA,
+ KaraokePlayerData(it, karaokeData.title)
+ )
+ })
+ }
+ }
+ clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
+ }
}
}
} else {
@@ -995,23 +1037,6 @@ class MyListFragment : Fragment() {
}
watchCard.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_mic, 0, 0, 0)
watchCard.text = getString(R.string.sing_now)
- watchCard.setOnClickListener {
- activity?.let { activity ->
- karaokeData.video_url?.let {
- startActivity(
- Intent(
- activity,
- KaraokePlayerActivity::class.java
- ).apply {
- putExtra(
- KaraokePlayerActivity.EXTRA_KARAOKE_DATA,
- KaraokePlayerData(it, karaokeData.title)
- )
- })
- }
- }
- clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
- }
like.setOnClickListener {
KaraokeRepository.likeUnLikeSong(
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 45cd288..eb7a80d 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
@@ -25,7 +25,11 @@ class WebSeriesAdapter(
oldItem: BookmarkedShowData,
newItem: BookmarkedShowData
): Boolean {
- return oldItem.title == newItem.title
+ return oldItem.thumbnail_path == newItem.thumbnail_path &&
+ oldItem.title == newItem.title &&
+ oldItem.is_liked == newItem.is_liked &&
+ oldItem.mark_as_favourite == newItem.mark_as_favourite &&
+ oldItem.likes_count == newItem.likes_count
}
}
diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt
index 3d02199..425d7e4 100644
--- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt
+++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt
@@ -32,6 +32,7 @@ import com.woka.players.views.PlayerActivity
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import java.text.SimpleDateFormat
@@ -121,6 +122,11 @@ class FavAudioFragment : Fragment() {
clickHelper.upsertClickEvent(ContentType.OTHERS)
}
+
+ dialogBinding.share.setOnClickListener {
+ clickHelper.upsertClickEvent(ContentType.OTHERS)
+ activity?.shareWokaApp()
+ }
}
private fun setObservers(){
diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt
index 791fc48..eea7822 100644
--- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt
+++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt
@@ -27,6 +27,7 @@ import com.woka.networking.ApiResult
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import com.woka.wokagames.GamesRepository
@@ -107,6 +108,11 @@ class FavGameFragment : Fragment() {
clickHelper.upsertClickEvent(ContentType.OTHERS)
}
+
+ dialogBinding.share.setOnClickListener {
+ clickHelper.upsertClickEvent(ContentType.OTHERS)
+ activity?.shareWokaApp()
+ }
}
private fun initViews(){
diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt
index 40b50ea..bf77025 100644
--- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt
+++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt
@@ -21,7 +21,6 @@ import com.woka.database.models.clicks.ContentType
import com.woka.databinding.DialogModuleShowerBinding
import com.woka.databinding.FragmentFavoritesBinding
import com.woka.home.mylist.MyListRepository
-import com.woka.home.mylist.models.FavKaraokeData
import com.woka.home.mylist.viewmodel.FavoriteViewModel
import com.woka.karaoke.KaraokeRepository
import com.woka.karaoke.adapters.KaraokeAdapter
@@ -32,6 +31,7 @@ import com.woka.networking.ApiResult
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import java.text.SimpleDateFormat
@@ -107,6 +107,11 @@ class FavKaraokeFragment : Fragment() {
clickHelper.upsertClickEvent(ContentType.OTHERS)
}
+
+ dialogBinding.share.setOnClickListener {
+ clickHelper.upsertClickEvent(ContentType.OTHERS)
+ activity?.shareWokaApp()
+ }
}
private fun initViews(){
@@ -207,6 +212,24 @@ class FavKaraokeFragment : Fragment() {
" "
), Html.FROM_HTML_MODE_LEGACY
)
+
+ watchCard.setOnClickListener {
+ activity?.let { activity ->
+ data.video_url_hd?.let {
+ startActivity(
+ Intent(
+ activity,
+ KaraokePlayerActivity::class.java
+ ).apply {
+ putExtra(
+ KaraokePlayerActivity.EXTRA_KARAOKE_DATA,
+ KaraokePlayerData(it, karaokeData.title)
+ )
+ })
+ }
+ }
+ clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
+ }
}
} else {
moreDetailsList[0]?.let { data ->
@@ -217,6 +240,24 @@ class FavKaraokeFragment : Fragment() {
" "
), Html.FROM_HTML_MODE_LEGACY
)
+
+ watchCard.setOnClickListener {
+ activity?.let { activity ->
+ data.video_url_hd?.let {
+ startActivity(
+ Intent(
+ activity,
+ KaraokePlayerActivity::class.java
+ ).apply {
+ putExtra(
+ KaraokePlayerActivity.EXTRA_KARAOKE_DATA,
+ KaraokePlayerData(it, karaokeData.title)
+ )
+ })
+ }
+ }
+ clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
+ }
}
}
} else {
@@ -235,23 +276,6 @@ class FavKaraokeFragment : Fragment() {
}
watchCard.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_mic, 0, 0, 0)
watchCard.text = getString(R.string.sing_now)
- watchCard.setOnClickListener {
- activity?.let { activity ->
- karaokeData.video_url?.let {
- startActivity(
- Intent(
- activity,
- KaraokePlayerActivity::class.java
- ).apply {
- putExtra(
- KaraokePlayerActivity.EXTRA_KARAOKE_DATA,
- KaraokePlayerData(it, karaokeData.title)
- )
- })
- }
- }
- clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
- }
like.setOnClickListener {
KaraokeRepository.likeUnLikeSong(
diff --git a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt
index 66fbe32..89c720d 100644
--- a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt
+++ b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt
@@ -7,6 +7,8 @@ import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
import com.woka.audiobooks.views.AudioBooksActivity
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityNotificationsBinding
import com.woka.karaoke.views.KaraokeActivity
import com.woka.networking.ApiResult
@@ -56,10 +58,14 @@ class NotificationsActivity : WokaBaseActivity() {
binding.apply {
retry.setOnClickListener {
NotificationRepository.loadNotifications()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
backBtn.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
adapter.clickListener = {
@@ -77,6 +83,8 @@ class NotificationsActivity : WokaBaseActivity() {
this@NotificationsActivity, destination
))
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt b/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt
index db54884..4a670f3 100644
--- a/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt
+++ b/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt
@@ -7,6 +7,8 @@ import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityAboutBinding
import com.woka.utils.WokaBaseActivity
import com.woka.utils.lightStatusBar
@@ -36,6 +38,13 @@ class AboutActivity : WokaBaseActivity() {
clickEvents()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun clickEvents() {
binding.apply {
backBtn.setOnClickListener {
diff --git a/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt b/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt
index e3f3599..d14c3d2 100644
--- a/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt
+++ b/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt
@@ -8,6 +8,8 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityFaqBinding
import com.woka.modules.faqs.FAQsRepository
import com.woka.networking.ApiResult
@@ -44,6 +46,13 @@ class FaqActivity : AppCompatActivity() {
setObservers()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun setObservers() {
FAQsRepository.faqLiveData.observe(this){
when(it){
diff --git a/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt b/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt
index 59729d3..b9c2ca9 100644
--- a/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt
+++ b/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt
@@ -10,6 +10,8 @@ import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityUserProfileBinding
import com.woka.networking.ApiResult
import com.woka.userPreference.UserType
@@ -51,6 +53,13 @@ class UserProfileActivity : WokaBaseActivity() {
setObservers()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews() {
binding.apply {
genderMTxt.text = if (userPrefs?.userType == UserType.GUARDIAN) getString(R.string.male)
@@ -63,8 +72,16 @@ class UserProfileActivity : WokaBaseActivity() {
private fun clickEvents() {
binding.apply {
- genderM.setOnClickListener { selectGender(Gender.MALE) }
- genderF.setOnClickListener { selectGender(Gender.FEMALE) }
+ genderM.setOnClickListener {
+ selectGender(Gender.MALE)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+ genderF.setOnClickListener {
+ selectGender(Gender.FEMALE)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
backBtn.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
@@ -82,6 +99,8 @@ class UserProfileActivity : WokaBaseActivity() {
}
)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt b/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt
index 0f9e3e0..0c319af 100644
--- a/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt
+++ b/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt
@@ -6,6 +6,8 @@ import android.transition.Slide
import android.util.Patterns
import android.view.Gravity
import android.view.MotionEvent
+import android.view.View
+import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
@@ -13,6 +15,8 @@ import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.ViewModelProvider
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivitySupportBinding
import com.woka.networking.ApiResult
import com.woka.utils.ProgressView
@@ -59,6 +63,13 @@ class SupportActivity : WokaBaseActivity() {
setObservers()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun setObservers() {
viewModel.supportLiveData.observe(this){
when(it){
@@ -108,6 +119,19 @@ class SupportActivity : WokaBaseActivity() {
android.R.layout.simple_spinner_dropdown_item
)
+ subjectSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
+ override fun onItemSelected(
+ parent: AdapterView<*>?,
+ view: View?,
+ position: Int,
+ id: Long
+ ) {
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {}
+ }
+
subjectSpinner.setAdapter(adapter)
message.setOnTouchListener { v, event ->
@@ -150,6 +174,8 @@ class SupportActivity : WokaBaseActivity() {
}
}
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt b/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt
index 0c46b0f..0f25523 100644
--- a/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt
+++ b/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt
@@ -1,21 +1,28 @@
package com.woka.home.viewmodels
import android.content.Context
+import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.media3.common.MediaItem
+import androidx.media3.common.PlaybackException
import androidx.media3.common.Player
import androidx.media3.common.Player.Listener
import androidx.media3.exoplayer.ExoPlayer
import com.woka.home.views.BottomNavigation.Companion.HOME
import com.woka.networking.ApiResult
import com.woka.userdata.UserRepository
+import com.woka.utils.TAG
import kotlinx.coroutines.launch
class HomeViewModel : ViewModel() {
+ companion object{
+ private const val ERROR_RETRY_COUNT = 10
+ }
+
var selectedBottomTab: Int = HOME
var isHomeBackgroundBlurred: Boolean = false
@@ -34,6 +41,7 @@ class HomeViewModel : ViewModel() {
var playerReadyCallback: (() -> Unit)? = null
var player: Player? = null
+ private var errorRetryCount = ERROR_RETRY_COUNT
fun initPlayer(context: Context, liveUrl: String) {
player = ExoPlayer.Builder(context).build()
@@ -56,6 +64,25 @@ class HomeViewModel : ViewModel() {
}
}
}
+
+ override fun onIsPlayingChanged(isPlaying: Boolean) {
+ super.onIsPlayingChanged(isPlaying)
+ if (isPlaying){
+ errorRetryCount = ERROR_RETRY_COUNT
+ }
+ }
+
+ override fun onPlayerError(error: PlaybackException) {
+ super.onPlayerError(error)
+ Log.d(TAG, "onPlayerError: $errorRetryCount")
+ if (errorRetryCount > 0){
+ errorRetryCount--
+
+ player?.setMediaItem(MediaItem.fromUri(liveUrl))
+ player?.playWhenReady = true
+ player?.prepare()
+ }
+ }
})
player?.setMediaItem(MediaItem.fromUri(liveUrl))
diff --git a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt
index 5a0fa00..1e2550e 100644
--- a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt
+++ b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt
@@ -113,8 +113,6 @@ class MoreHomeActivity : WokaBaseActivity() {
blogBinding.close.setOnClickListener {
blogDialog.dismiss()
-
- clickHelper.upsertClickEvent(ContentType.OTHERS)
}
}
@@ -122,6 +120,8 @@ class MoreHomeActivity : WokaBaseActivity() {
binding.apply {
more.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
+
+ clickHelper.upsertClickEvent(ContentType.OTHERS)
}
playTrailer.setOnClickListener {
diff --git a/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt b/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt
index 26978ea..f74a55c 100644
--- a/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt
+++ b/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt
@@ -9,6 +9,8 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ShowViewHolderBinding
import com.woka.karaoke.KaraokeRepository
import com.woka.karaoke.models.listing.KaraokeData
@@ -126,6 +128,8 @@ class KaraokeAdapter(
}
karaokeData.id?.let{onKaraokeChanged(it, false, karaokeData)}
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}
fav.isSelected = karaokeData.mark_as_favourite == true
@@ -151,6 +155,8 @@ class KaraokeAdapter(
fav.isSelected = karaokeData.mark_as_favourite == true
karaokeData.id?.let{onKaraokeChanged(it, false, karaokeData)}
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}
root.setOnClickListener {
diff --git a/app/src/main/java/com/woka/karaoke/models/listing/ContentMoreDetail.kt b/app/src/main/java/com/woka/karaoke/models/listing/ContentMoreDetail.kt
index 264ee53..6a81638 100644
--- a/app/src/main/java/com/woka/karaoke/models/listing/ContentMoreDetail.kt
+++ b/app/src/main/java/com/woka/karaoke/models/listing/ContentMoreDetail.kt
@@ -8,5 +8,6 @@ data class ContentMoreDetail(
val post_type: Int?,
val tags_keywords: String?,
val title: String?,
- val url: String?
+ val url: String?,
+ val video_url_hd: String?
)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt
index 2805fce..67f7871 100644
--- a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt
+++ b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt
@@ -31,6 +31,8 @@ import androidx.media3.common.Player
import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.ExoPlayer
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityKaraokePlayerrBinding
import com.woka.players.models.PlayBackState
import com.woka.utils.TAG
@@ -167,6 +169,8 @@ class KaraokePlayerActivity : WokaBaseActivity() {
File(recordingOutputPath).deleteOnExit()
File(karaokeFinalPath).deleteOnExit()
File(karaokeMusicPath).deleteOnExit()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
private fun initViews() {
@@ -188,6 +192,8 @@ class KaraokePlayerActivity : WokaBaseActivity() {
binding.mainView.show()
binding.errorView.hide()
playVideo()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
closeBtn.setOnClickListener {
@@ -196,12 +202,16 @@ class KaraokePlayerActivity : WokaBaseActivity() {
recordBtn.setOnClickListener {
startStopRecording()
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokePlayerData?.id)
}
audioBtn.setOnClickListener {
if (audioBtn.isEnabled){
playStopPlayingAudio()
}
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokePlayerData?.id)
}
downloadBtn.setOnClickListener {
@@ -219,6 +229,8 @@ class KaraokePlayerActivity : WokaBaseActivity() {
Log.d(TAG, "clickEvents: $e")
toast(getString(R.string.something_went_wrong))
}
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokePlayerData?.id)
}
}
}
@@ -335,6 +347,8 @@ class KaraokePlayerActivity : WokaBaseActivity() {
} else {
PlayBackState.PAUSED
}
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokePlayerData?.id)
}
override fun onPlayerError(error: PlaybackException) {
diff --git a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerData.kt b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerData.kt
index 523685c..43e5731 100644
--- a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerData.kt
+++ b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerData.kt
@@ -6,5 +6,6 @@ import kotlinx.parcelize.Parcelize
@Parcelize
data class KaraokePlayerData(
val karaokeVideoUrl: String,
- val title: String?
+ val title: String?,
+ val id: Int?
): Parcelable
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt
index 169229d..87673e0 100644
--- a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt
+++ b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt
@@ -17,6 +17,8 @@ import androidx.recyclerview.widget.SimpleItemAnimator
import com.google.android.material.appbar.CollapsingToolbarLayout
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityKaraokeBinding
import com.woka.databinding.DialogModuleShowerBinding
import com.woka.karaoke.KaraokeRepository
@@ -34,6 +36,7 @@ import com.woka.utils.WokaBaseActivity
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import java.text.SimpleDateFormat
@@ -75,9 +78,10 @@ class KaraokeActivity : WokaBaseActivity() {
karaokeAdapter = KaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) {
noSignInDialog.show()
}
- continueKaraokeAdapter = ContinueKaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) {
- noSignInDialog.show()
- }
+ continueKaraokeAdapter =
+ ContinueKaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) {
+ noSignInDialog.show()
+ }
dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater)
karaokeDialog = Dialog(this)
@@ -98,6 +102,12 @@ class KaraokeActivity : WokaBaseActivity() {
}
}
+ override fun onDestroy() {
+ super.onDestroy()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews() {
binding.apply {
adjustTrailerImage()
@@ -130,7 +140,13 @@ class KaraokeActivity : WokaBaseActivity() {
// do nothing
}
- dialogBinding.close.setOnClickListener { karaokeDialog.dismiss() }
+ dialogBinding.close.setOnClickListener {
+ karaokeDialog.dismiss()
+ }
+
+ karaokeDialog.setOnDismissListener {
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
dialogBinding.watchCard.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_mic, 0, 0, 0)
dialogBinding.watchCard.backgroundTintList =
@@ -146,10 +162,14 @@ class KaraokeActivity : WokaBaseActivity() {
retryBtn.setOnClickListener {
viewModel.loadKaraokeSongs()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
loadMoreBtn.setOnClickListener {
viewModel.loadKaraokeSongs()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
@@ -177,15 +197,33 @@ class KaraokeActivity : WokaBaseActivity() {
trailerBtn.setOnClickListener {
onSingClicked(karaokeData)
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, it.id)
}
}
}
private fun onSingClicked(karaokeData: KaraokeData) {
- karaokeData.video_url?.let {
- startActivity(Intent(this@KaraokeActivity, KaraokePlayerActivity::class.java).apply {
- putExtra(EXTRA_KARAOKE_DATA, KaraokePlayerData(it, karaokeData.title))
- })
+ karaokeData.content_more_details?.let { moreDetailsList ->
+ if (moreDetailsList.isNotEmpty()){
+ if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1){
+ moreDetailsList[1]?.let {data ->
+ data.video_url_hd?.let {
+ startActivity(Intent(this@KaraokeActivity, KaraokePlayerActivity::class.java).apply {
+ putExtra(EXTRA_KARAOKE_DATA, KaraokePlayerData(it, karaokeData.title, karaokeData.id))
+ })
+ }
+ }
+ }else{
+ moreDetailsList[0]?.let {data ->
+ data.video_url_hd?.let {
+ startActivity(Intent(this@KaraokeActivity, KaraokePlayerActivity::class.java).apply {
+ putExtra(EXTRA_KARAOKE_DATA, KaraokePlayerData(it, karaokeData.title, karaokeData.id))
+ })
+ }
+ }
+ }
+ }
}
}
@@ -258,17 +296,24 @@ class KaraokeActivity : WokaBaseActivity() {
)
}
+ share.setOnClickListener {
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
+ shareWokaApp()
+ }
+
watchCard.setOnClickListener {
onSingClicked(karaokeData)
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}
like.setOnClickListener {
- if (!isNetworkConnected()){
+ if (!isNetworkConnected()) {
toast(getString(R.string.no_internet))
return@setOnClickListener
}
- if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
+ if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) {
noSignInDialog.show()
return@setOnClickListener
}
@@ -296,15 +341,17 @@ class KaraokeActivity : WokaBaseActivity() {
}
like.isSelected = !like.isSelected
likeCount.text = "${karaokeData.likes_count}"
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}
fav.setOnClickListener {
- if (!isNetworkConnected()){
+ if (!isNetworkConnected()) {
toast(getString(R.string.no_internet))
return@setOnClickListener
}
- if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
+ if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) {
noSignInDialog.show()
return@setOnClickListener
}
@@ -322,10 +369,8 @@ class KaraokeActivity : WokaBaseActivity() {
}
fav.isSelected = !fav.isSelected
- }
- close.setOnClickListener {
- karaokeDialog.dismiss()
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}
karaokeDialog.show()
@@ -366,6 +411,8 @@ class KaraokeActivity : WokaBaseActivity() {
private fun onKaraokeClicked(karaokeData: KaraokeData) {
loadTrailerData(karaokeData)
showKaraokeDialog(karaokeData)
+
+ ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}
private fun setObservers() {
diff --git a/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt b/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt
index 4e57042..9e9b227 100644
--- a/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt
+++ b/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt
@@ -13,6 +13,8 @@ import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
import com.woka.WokaApp
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityBlogsBinding
import com.woka.databinding.DialogBlogsBinding
import com.woka.modules.blogs.BlogsGridAdapter
@@ -54,6 +56,13 @@ class BlogsActivity : AppCompatActivity() {
setObservers()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews(){
binding.apply {
toolbar.title.text = getString(R.string.blogs)
@@ -65,6 +74,8 @@ class BlogsActivity : AppCompatActivity() {
binding.apply {
retryBtn.setOnClickListener {
BlogsRepository.loadBlogs()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
toolbar.backBtn.setOnClickListener {
@@ -129,6 +140,8 @@ class BlogsActivity : AppCompatActivity() {
}
blogDialog.show()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
private fun setObservers(){
diff --git a/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt b/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt
index 0b393b8..994b08a 100644
--- a/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt
+++ b/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt
@@ -5,6 +5,8 @@ import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityDisclaimerBinding
import com.woka.utils.WokaBaseActivity
@@ -27,4 +29,11 @@ class DisclaimerActivity : WokaBaseActivity() {
onBackPressedDispatcher.onBackPressed()
}
}
+
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt b/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt
index 0e9858b..fdcda19 100644
--- a/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt
+++ b/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt
@@ -13,6 +13,8 @@ import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityWebViewBinding
import com.woka.utils.WEBSITE_BASE_URL
import com.woka.utils.WokaBaseActivity
@@ -63,6 +65,13 @@ class WebViewActivity : WokaBaseActivity() {
}
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
override fun onSupportNavigateUp(): Boolean {
onBackPressedDispatcher.onBackPressed()
return true
diff --git a/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt b/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt
index 29fc231..f73c9dc 100644
--- a/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt
@@ -9,6 +9,8 @@ import android.view.WindowManager
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentAgeSelectBinding
import com.woka.onboard.fragments.GetEmailFragment.Companion.IS_UNDER_16
@@ -34,16 +36,22 @@ class AgeSelectionFragment : Fragment() {
val args = Bundle()
args.putBoolean(IS_UNDER_16, true)
findNavController().navigate(R.id.action_age_select_fragment_to_getEmailFragment, args)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
binding.above16.setOnClickListener {
val args = Bundle()
args.putBoolean(IS_UNDER_16, false)
findNavController().navigate(R.id.action_age_select_fragment_to_getEmailFragment, args)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
binding.backBtn.setOnClickListener{
activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt b/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt
index 3297660..9dda642 100644
--- a/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt
@@ -8,6 +8,8 @@ import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentChildListBinding
import com.woka.onboard.adapters.ChildAdapter
import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG
@@ -45,7 +47,11 @@ class ChildListFragment : Fragment() {
private fun clickEvents() {
binding.apply {
- next.setOnClickListener { gotoSignUpFragment() }
+ next.setOnClickListener {
+ gotoSignUpFragment()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt
index 416a571..de06de0 100644
--- a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt
@@ -13,6 +13,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentGetCodeBinding
import com.woka.networking.ApiResult
import com.woka.networking.NoSuccessError
@@ -291,6 +293,8 @@ class GetCodeFragment : Fragment() {
binding.apply {
backBtn.setOnClickListener {
activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
next.setOnClickListener {
@@ -301,6 +305,8 @@ class GetCodeFragment : Fragment() {
} else {
viewModel.validateOTP(uniqueString, otp)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
resend.setOnClickListener {
@@ -311,6 +317,8 @@ class GetCodeFragment : Fragment() {
} else {
viewModel.sendOTP(email, CHILD_TYPE)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt
index 2173831..a89d466 100644
--- a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt
@@ -10,6 +10,8 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentGetEmailBinding
import com.woka.networking.ApiResult
import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG
@@ -211,10 +213,14 @@ class GetEmailFragment : Fragment() {
// child
viewModel.sendOTP(binding.email.text.toString(), CHILD_TYPE)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
binding.backBtn.setOnClickListener {
activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt
index e944862..7803804 100644
--- a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt
@@ -10,6 +10,8 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentGetMoreInfoBinding
import com.woka.networking.ApiResult
import com.woka.onboard.views.InterestTopicView
@@ -67,6 +69,8 @@ class GetMoreInfoFragment : Fragment() {
// topic select callback
if (selected) viewModel.interestTopics.add(id)
else viewModel.interestTopics.remove(id)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
)
}
@@ -77,10 +81,22 @@ class GetMoreInfoFragment : Fragment() {
private fun clickEvents() {
binding.apply {
- genderM.setOnClickListener { selectGender(Gender.MALE) }
- genderF.setOnClickListener { selectGender(Gender.FEMALE) }
+ genderM.setOnClickListener {
+ selectGender(Gender.MALE)
- backBtn.setOnClickListener { activity?.onBackPressedDispatcher?.onBackPressed() }
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+ genderF.setOnClickListener {
+ selectGender(Gender.FEMALE)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
+ backBtn.setOnClickListener {
+ activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
next.setOnClickListener {
if (viewModel.selectedGender == Gender.NONE) {
@@ -97,6 +113,8 @@ class GetMoreInfoFragment : Fragment() {
{
putBoolean(IS_UNDER_16, isUnder16)
})
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt
index f8ce67b..a21c97d 100644
--- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt
@@ -8,6 +8,9 @@ import android.view.View
import android.view.ViewGroup
import androidx.core.app.ActivityOptionsCompat
import androidx.fragment.app.Fragment
+import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentLanguageBinding
import com.woka.onboard.views.OnboardActivity
import com.woka.utils.LOCALE_ENGLISH
@@ -30,7 +33,7 @@ class LanguageFragment : Fragment() {
savedInstanceState: Bundle?
): View {
binding = FragmentLanguageBinding.inflate(inflater, container, false)
- progressView = ProgressView(requireContext(), "please wait...")
+ progressView = ProgressView(requireContext(), getString(R.string.please_wait))
return binding.root
}
@@ -43,11 +46,13 @@ class LanguageFragment : Fragment() {
binding.english.setOnClickListener {
requireActivity().changeLocale(LOCALE_ENGLISH)
gotoOnboardActivity()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
binding.hindi.setOnClickListener {
requireActivity().changeLocale(LOCALE_HINDI)
gotoOnboardActivity()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt
index bdfeaca..e490097 100644
--- a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt
@@ -9,6 +9,8 @@ import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentNewPasswordBinding
import com.woka.networking.ApiResult
import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG
@@ -77,6 +79,8 @@ class NewPasswordFragment : Fragment() {
binding.apply {
backBtn.setOnClickListener {
activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
next.setOnClickListener {
@@ -87,6 +91,8 @@ class NewPasswordFragment : Fragment() {
}
}
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt b/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt
index a2e130d..2979f7e 100644
--- a/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt
@@ -14,6 +14,8 @@ import androidx.navigation.fragment.findNavController
import com.google.android.material.tabs.TabLayoutMediator
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentOnboardBinding
import com.woka.home.views.HomeActivity
import com.woka.networking.ApiResult
@@ -105,18 +107,22 @@ class OnboardFragment : Fragment() {
binding.apply {
backBtn.setOnClickListener{
activity?.onBackPressedDispatcher?.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
createAccount.setOnClickListener {
findNavController().navigate(R.id.action_onboardFragment_to_age_select_fragment)
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
login.setOnClickListener {
findNavController().navigate(R.id.action_onboardFragment_to_signInFragment)
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
guest.setOnClickListener {
viewModel.guestLogin()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt
index 44658d8..0d3e3a0 100644
--- a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt
@@ -10,6 +10,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentSelectAvatarBinding
import com.woka.home.views.HomeActivity
import com.woka.networking.ApiResult
@@ -67,6 +69,8 @@ class SelectAvatarFragment : Fragment() {
binding.apply {
backBtn.setOnClickListener {
activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
next.setOnClickListener {
@@ -93,6 +97,8 @@ class SelectAvatarFragment : Fragment() {
}
viewModel.registerUser(registerRequestData)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
@@ -115,6 +121,8 @@ class SelectAvatarFragment : Fragment() {
it.data?.result?.let { avatarList ->
adapter = AvatarAdapter(avatarList, viewModel.selectedAvatarPos) { pos ->
viewModel.selectedAvatarPos = pos
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
binding.rvAvatar.adapter = adapter
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt
index 07e5142..b76203c 100644
--- a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt
@@ -12,6 +12,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentSignInBinding
import com.woka.home.views.HomeActivity
import com.woka.networking.ApiResult
@@ -185,10 +187,13 @@ class SignInFragment : Fragment() {
Bundle().apply {
putBoolean(IS_RESET_PASSWORD_INTENT, true)
})
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
backBtn.setOnClickListener {
activity?.onBackPressedDispatcher?.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
continueAsGuest.setOnClickListener {
@@ -201,10 +206,13 @@ class SignInFragment : Fragment() {
})
activity?.finish()
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
createAccount.setOnClickListener {
findNavController().navigate(R.id.action_signInFragment_to_age_select_fragment)
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
login.setOnClickListener {
@@ -221,6 +229,8 @@ class SignInFragment : Fragment() {
viewModel.login(username.text.toString(), password.toString())
}?:toast(getString(R.string.something_went_wrong))
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt
index 23aff7e..a97d6bc 100644
--- a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt
+++ b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt
@@ -11,6 +11,8 @@ import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentSignUpBinding
import com.woka.networking.ApiResult
import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG
@@ -141,6 +143,8 @@ class SignUpFragment : Fragment() {
binding.apply {
backBtn.setOnClickListener {
activity?.onBackPressedDispatcher?.onBackPressed()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
next.setOnClickListener {
@@ -150,6 +154,8 @@ class SignUpFragment : Fragment() {
viewModel.checkUserNameExist(it, username.text.toString(), userType)
} ?: toast(getString(R.string.something_went_wrong))
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
diff --git a/app/src/main/java/com/woka/onboard/models/Guest.kt b/app/src/main/java/com/woka/onboard/models/Guest.kt
index b98199c..2ebe6b8 100644
--- a/app/src/main/java/com/woka/onboard/models/Guest.kt
+++ b/app/src/main/java/com/woka/onboard/models/Guest.kt
@@ -2,5 +2,6 @@ package com.woka.onboard.models
data class Guest(
val fullname: String?,
- val username: String?
+ val username: String?,
+ val new_guest: Boolean?
)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt b/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt
index acd55f8..edba067 100644
--- a/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt
+++ b/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt
@@ -5,7 +5,7 @@ import kotlinx.parcelize.Parcelize
@Parcelize
data class VideoViewRequestData(
- val post_id: String,
+ val post_id: Int?,
val post_type: String,
var total_watched_duration: String? = null,
val category_id: String? = null
diff --git a/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt b/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt
index 7004449..ea9a161 100644
--- a/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt
+++ b/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt
@@ -30,6 +30,8 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler {
companion object{
const val EXTRA_LIVE_STREAM_URL = "extra_live_stream_url"
const val EXTRA_LIVE_STREAM_ID = "extra_live_stream_id"
+
+ private const val ERROR_RETRY_COUNT = 10
}
private lateinit var binding: ActivityLiveStreamPlayerBinding
@@ -47,6 +49,8 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler {
private var liveStreamUrl: String = ""
private var liveTvId: Int = -1
+ private var errorRetryCount = ERROR_RETRY_COUNT
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
@@ -125,6 +129,8 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler {
binding.errorView.hide()
upsertClickEvent()
+
+ errorRetryCount = ERROR_RETRY_COUNT
})
player.addListener(EventType.PAUSE, VideoPlayerEvents.OnPauseListener {
playbackState = PlayBackState.PAUSED
@@ -133,8 +139,13 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler {
})
player.addListener(EventType.ERROR, VideoPlayerEvents.OnErrorListener {
playbackState = PlayBackState.STOPPED
- binding.playerView.hide()
- binding.errorView.show()
+ if (errorRetryCount > 0){
+ errorRetryCount--
+ configureAndPlay()
+ }else{
+ binding.playerView.hide()
+ binding.errorView.show()
+ }
})
(getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager).registerNetworkCallback(
diff --git a/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt b/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt
index 954950b..4467e1f 100644
--- a/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt
+++ b/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt
@@ -8,6 +8,8 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.CartAddressViewHolderBinding
import com.woka.shop.models.addresslisting.ParentAddressData
import com.woka.shop.viewmodels.CartViewModel
@@ -124,6 +126,8 @@ class ParentAddressAdapter(private val viewModel: CartViewModel) :
addressSelectListener?.invoke(address.id)
holder.loadEDD(address)
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/AddressActivity.kt b/app/src/main/java/com/woka/shop/views/AddressActivity.kt
index bd2c19d..863b6e1 100644
--- a/app/src/main/java/com/woka/shop/views/AddressActivity.kt
+++ b/app/src/main/java/com/woka/shop/views/AddressActivity.kt
@@ -5,6 +5,8 @@ import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityAddressBinding
import com.woka.utils.WokaBaseActivity
@@ -32,6 +34,13 @@ class AddressActivity : WokaBaseActivity() {
clickEvents()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews() {
binding.apply {
toolbar.title.text = getString(R.string.address_details)
diff --git a/app/src/main/java/com/woka/shop/views/CartActivity.kt b/app/src/main/java/com/woka/shop/views/CartActivity.kt
index 0654d77..49e1720 100644
--- a/app/src/main/java/com/woka/shop/views/CartActivity.kt
+++ b/app/src/main/java/com/woka/shop/views/CartActivity.kt
@@ -1,10 +1,13 @@
package com.woka.shop.views
import android.os.Bundle
+import android.window.OnBackInvokedDispatcher
import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.ViewModelProvider
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityCartBinding
import com.woka.shop.viewmodels.CartViewModel
import com.woka.utils.WokaBaseActivity
@@ -36,6 +39,12 @@ class CartActivity : WokaBaseActivity() {
setObservers()
}
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun clickEvents() {
binding.apply {
toolbar.backBtn.setOnClickListener {
diff --git a/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt b/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt
index f41092d..b1ac3c7 100644
--- a/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt
+++ b/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt
@@ -2,6 +2,7 @@ package com.woka.shop.views
import android.content.Intent
import android.os.Bundle
+import android.window.OnBackInvokedDispatcher
import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
@@ -10,6 +11,8 @@ import androidx.lifecycle.lifecycleScope
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.woka.R
import com.woka.WokaApp
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityMyOrdersBinding
import com.woka.databinding.BsOrderTrackingBinding
import com.woka.networking.ApiResult
@@ -78,6 +81,13 @@ class MyOrdersActivity : WokaBaseActivity() {
}
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews(){
binding.apply {
rvOrders.adapter = adapter
@@ -97,14 +107,20 @@ class MyOrdersActivity : WokaBaseActivity() {
}else{
startActivity(Intent(this@MyOrdersActivity, CartActivity::class.java))
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
loadMoreBtn.setOnClickListener {
viewModel.loadOrders()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
adapter.orderTrackClickListener = {
showOrderTrackingDialog(it)
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/ShopActivity.kt b/app/src/main/java/com/woka/shop/views/ShopActivity.kt
index 9197c7b..d94f285 100644
--- a/app/src/main/java/com/woka/shop/views/ShopActivity.kt
+++ b/app/src/main/java/com/woka/shop/views/ShopActivity.kt
@@ -2,6 +2,7 @@ package com.woka.shop.views
import android.content.Intent
import android.os.Bundle
+import android.window.OnBackInvokedDispatcher
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
@@ -10,6 +11,8 @@ import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.ViewModelProvider
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityShopBinding
import com.woka.shop.viewmodels.ShopViewModel
import com.woka.shop.views.CartActivity.Companion.EXTRA_CURRENT_PRODUCT
@@ -54,6 +57,13 @@ class ShopActivity : WokaBaseActivity() {
registerLaunchers()
}
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews() {
binding.apply {
title.text = getString(R.string.shop)
@@ -74,6 +84,8 @@ class ShopActivity : WokaBaseActivity() {
putExtra(EXTRA_CURRENT_PRODUCT, viewModel.currentProductId)
})
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt
index 1863db3..374839d 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt
@@ -11,6 +11,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.navArgs
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentAddAddressBinding
import com.woka.networking.ApiResult
import com.woka.shop.models.addaddress.AddAddressRequestData
@@ -62,6 +64,8 @@ class AddAddressFragment : Fragment() {
if (allOkay()){
addAddress()
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt
index b0ecf7d..db3d306 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt
@@ -10,6 +10,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentPinCodeBinding
import com.woka.networking.ApiResult
import com.woka.shop.viewmodels.AddressViewModel
@@ -46,6 +48,8 @@ class PinCodeFragment :Fragment() {
private fun clickEvents() {
binding.apply {
btn.setOnClickListener {
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
+
if (selectedPinCode.length == 6){
findNavController().navigate(PinCodeFragmentDirections.actionPinCodeFragmentToAddAddressFragment(
diff --git a/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt
index 806eda8..96c3232 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt
@@ -13,6 +13,8 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentCartBinding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.CartAdapter
@@ -80,44 +82,52 @@ class CartFragment: Fragment() {
binding.apply {
adapter.onCartItemDeleteListener = {cartItem, position ->
- lifecycleScope.launch {
- progressDialog.show(getString(R.string.removing_item))
+ decisionDialog.setPositiveButton(getString(R.string.yes)){
+ lifecycleScope.launch {
+ progressDialog.show(getString(R.string.removing_item))
- cartItem.id?.let {
- when (val response = viewModel.removeItem(it)){
- is ApiResult.Error -> {
- progressDialog.hide()
- toast(response.errorMessage)
- }
- is ApiResult.Loading -> {}
- is ApiResult.Success -> {
- progressDialog.hide()
- toast(response.message)
+ cartItem.id?.let {
+ when (val response = viewModel.removeItem(it)){
+ is ApiResult.Error -> {
+ progressDialog.hide()
+ toast(response.errorMessage)
+ }
+ is ApiResult.Loading -> {}
+ is ApiResult.Success -> {
+ progressDialog.hide()
+ toast(response.message)
- try {
- adapter.notifyItemRemoved(position)
- } finally {
- response.data?.let {cartValue ->
- if (cartValue > 0){
- val finalAmount = "₹ $cartValue"
- totalAmount.text = finalAmount
- }else{
- rvCart.hide()
- progressView.hide()
- checkoutView.hide()
+ try {
+ adapter.notifyItemRemoved(position)
+ } finally {
+ response.data?.let {cartValue ->
+ if (cartValue > 0){
+ val finalAmount = "₹ $cartValue"
+ totalAmount.text = finalAmount
+ }else{
+ rvCart.hide()
+ progressView.hide()
+ checkoutView.hide()
- noDataView.show()
+ noDataView.show()
+ }
}
}
- }
- if (cartItem.id == currentProductId){
- activity?.setResult(AppCompatActivity.RESULT_OK, Intent())
+ if (cartItem.id == currentProductId){
+ activity?.setResult(AppCompatActivity.RESULT_OK, Intent())
+ }
}
}
}
}
}
+ decisionDialog.setNegativeButton(getString(R.string.no))
+
+ decisionDialog.show(getString(R.string.alert),
+ getString(R.string.are_you_sure_you_want_to_remove_item_from_cart))
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, cartItem.id)
}
binding.checkout.setOnClickListener {
@@ -129,6 +139,8 @@ class CartFragment: Fragment() {
viewModel.clearAppliedCoupon()
findNavController().navigate(R.id.action_cartFragment_to_orderSummaryFragment)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt
index 3da70f8..8ef7983 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt
@@ -10,6 +10,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentOrderSummaryBinding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.CouponAdapter
@@ -81,6 +83,8 @@ class OrderSummaryFragment : Fragment() {
couponsView.show()
showCouponIndicator.setImageResource(R.drawable.ic_half_arrow_up)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
applyBtn.setOnClickListener {
@@ -95,11 +99,15 @@ class OrderSummaryFragment : Fragment() {
}
viewModel.applyCoupon(couponCode.text.toString(), "$cartTotalAmount")
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
confirm.setOnClickListener {
viewModel.clearAddressSelection()
findNavController().navigate(R.id.action_orderSummaryFragment_to_parentAddressFragment)
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
@@ -133,6 +141,8 @@ class OrderSummaryFragment : Fragment() {
binding.couponCode.setText(it.coupon_code)
viewModel.selectedCouponCode = it.coupon_code
viewModel.selectedCouponId = it.id
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
viewModel.applyCouponLiveData.observe(viewLifecycleOwner) {
diff --git a/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt
index e616ee9..aca7e3e 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt
@@ -11,6 +11,8 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentParentAddressBinding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.ParentAddressAdapter
@@ -89,6 +91,8 @@ class ParentAddressFragment : Fragment() {
}
viewModel.createOrder(productIds, viewModel.appliedCoupon, "${viewModel.selectedAddressId}")
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
addNewAddress.setOnClickListener {
@@ -100,6 +104,8 @@ class ParentAddressFragment : Fragment() {
)
)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt
index 3cc171b..e781e2c 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt
@@ -12,6 +12,8 @@ import androidx.navigation.fragment.navArgs
import com.google.android.material.tabs.TabLayoutMediator
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentProductBinding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.ProductImagesAdapter
@@ -87,6 +89,8 @@ class ProductFragment : Fragment() {
binding.apply {
retryBtn.setOnClickListener {
loadProductData()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
@@ -196,6 +200,8 @@ class ProductFragment : Fragment() {
}
}
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, shopProduct.id)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt
index ddf11ad..4f57582 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt
@@ -8,6 +8,8 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentShop1Binding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.CategoryAdapter
@@ -61,10 +63,13 @@ class ShopFragment1 : Fragment() {
binding.apply {
retryButton.setOnClickListener {
viewModel.loadSuperCategories()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
adapter.onCategoryClickListener = {id, _ ->
findNavController().navigate(ShopFragment1Directions.actionShopFragment1ToShopFragment2(id))
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, id)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt
index 85b8c73..6d13b61 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt
@@ -9,6 +9,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentShop2Binding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.CategoryAdapter
@@ -68,6 +70,8 @@ class ShopFragment2 : Fragment() {
binding.apply {
retryButton.setOnClickListener {
viewModel.loadCategories(superCategoryId)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
adapter.onCategoryClickListener = {id, title ->
@@ -78,6 +82,8 @@ class ShopFragment2 : Fragment() {
title
)
)
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, id)
}
}
}
diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt
index 58941b8..80e0e29 100644
--- a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt
+++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt
@@ -10,6 +10,8 @@ import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.google.android.material.tabs.TabLayout
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.FragmentShop3Binding
import com.woka.networking.ApiResult
import com.woka.shop.adapters.ShopProductAdapter
@@ -75,16 +77,22 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener {
binding.apply {
retryButton.setOnClickListener {
viewModel.loadSubCategories(superCategoryId, categoryId)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
prodLoadMoreBtn.setOnClickListener {
loadMoreProducts = true
val subCategoryId = categoryTabs.getTabAt(categoryTabs.selectedTabPosition)?.tag?.toString()
viewModel.loadMoreProducts(superCategoryId, categoryId, subCategoryId)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
productAdapter.onProductClicked = {
findNavController().navigate(ShopFragment3Directions.actionShopFragment3ToProductFragment(it))
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, it)
}
}
}
@@ -96,6 +104,8 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener {
if (selectedTabPos < subCategories.size) {
loadMoreProducts = false
viewModel.loadProducts(superCategoryId, categoryId, subCategories[selectedTabPos].id?.toString())
+
+ ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, subCategories[selectedTabPos].id)
}
}
}
diff --git a/app/src/main/java/com/woka/utils/Constants.kt b/app/src/main/java/com/woka/utils/Constants.kt
index 3526bdd..d866c39 100644
--- a/app/src/main/java/com/woka/utils/Constants.kt
+++ b/app/src/main/java/com/woka/utils/Constants.kt
@@ -16,4 +16,8 @@ const val LOCALE_ENGLISH = "en"
// website urls
const val WEBSITE_BASE_URL = "https://www.wokaland.com/"
const val TERMS_N_CONDITIONS_URL = "https://www.wokaland.com/terms/"
-const val PRIVACY_N_POLICY_URL = "https://www.wokaland.com/privacy-policy/"
\ No newline at end of file
+const val PRIVACY_N_POLICY_URL = "https://www.wokaland.com/privacy-policy/"
+
+// other urls
+
+const val PLAY_STORE_URL = "https://play.google.com/store/apps/details?id=com.woka"
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/utils/Extensions.kt b/app/src/main/java/com/woka/utils/Extensions.kt
index 1aacc6b..c227bb1 100644
--- a/app/src/main/java/com/woka/utils/Extensions.kt
+++ b/app/src/main/java/com/woka/utils/Extensions.kt
@@ -4,6 +4,7 @@ import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.app.Activity
import android.content.Context
+import android.content.Intent
import android.content.res.Configuration
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
@@ -79,6 +80,17 @@ fun Activity.closeKeyboard(){
}
}
+fun Activity.shareWokaApp(){
+ val sendIntent: Intent = Intent().apply {
+ action = Intent.ACTION_SEND
+ putExtra(Intent.EXTRA_TEXT, PLAY_STORE_URL)
+ type = "text/plain"
+ }
+
+ val shareIntent = Intent.createChooser(sendIntent, null)
+ startActivity(shareIntent)
+}
+
fun Context.toast(text: String?, length: Int = Toast.LENGTH_SHORT){
Toast.makeText(this, "$text", length).show()
}
diff --git a/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt
index 578add1..ad1ab72 100644
--- a/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt
+++ b/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt
@@ -36,7 +36,7 @@ class EpisodeAdapter private constructor(val context: Context,
constructor(context: Context): this(context, DIFF_CONFIG)
var onEpisodeClicked: ((position: Int, episodeData: EpisodeData) -> Unit)? = null
- var onEpisodePlayClicked: ((position: Int) -> Unit)? = null
+ var onEpisodePlayClicked: ((position: Int, EpisodeData) -> Unit)? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EpisodeViewHolder {
return EpisodeViewHolder(
@@ -71,7 +71,7 @@ class EpisodeAdapter private constructor(val context: Context,
}
playBtn.setOnClickListener {
- onEpisodePlayClicked?.invoke(holder.absoluteAdapterPosition)
+ onEpisodePlayClicked?.invoke(holder.absoluteAdapterPosition, episode)
}
card.setOnClickListener {
diff --git a/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt
index d3deb42..3e499af 100644
--- a/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt
+++ b/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt
@@ -35,7 +35,7 @@ class TeaserAdapter private constructor(val context: Context,
constructor(context: Context): this(context, DIFF_CONFIG)
var onEpisodeClicked: ((position: Int, teaserData: TeaserData) -> Unit)? = null
- var onEpisodePlayClicked: ((position: Int) -> Unit)? = null
+ var onEpisodePlayClicked: ((position: Int, TeaserData) -> Unit)? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EpisodeViewHolder {
return EpisodeViewHolder(
@@ -70,7 +70,7 @@ class TeaserAdapter private constructor(val context: Context,
}
playBtn.setOnClickListener {
- onEpisodePlayClicked?.invoke(holder.absoluteAdapterPosition)
+ onEpisodePlayClicked?.invoke(holder.absoluteAdapterPosition, episode)
}
card.setOnClickListener {
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 b4634a6..1b3f124 100644
--- a/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt
+++ b/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt
@@ -8,6 +8,8 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ShowViewHolderBinding
import com.woka.userPreference.UserType
import com.woka.utils.isNetworkConnected
@@ -115,6 +117,8 @@ class WebSeriesShowAdapter(
categoryId?.let {
onShowCommonDataChange?.invoke(showData, it)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
}
categoryId?.let { fav.isSelected = showData.isBookMarked(it) }
@@ -147,6 +151,8 @@ class WebSeriesShowAdapter(
fav.isSelected = !fav.isSelected
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
}
root.setOnClickListener {
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 cb2dc39..648d6a6 100644
--- a/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt
+++ b/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt
@@ -7,6 +7,8 @@ import androidx.core.view.WindowInsetsCompat
import androidx.navigation.NavOptions
import androidx.navigation.fragment.NavHostFragment
import com.woka.R
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityWebSeriesBinding
import com.woka.utils.WokaBaseActivity
import com.woka.webseries.models.ShowData
@@ -45,4 +47,11 @@ class WebSeriesActivity : WokaBaseActivity() {
), NavOptions.Builder().setPopUpTo(R.id.webSeriesFragment2, true).build())
}
}
+
+ @Suppress("DEPRECATION")
+ @Deprecated("Deprecated in Java")
+ override fun onBackPressed() {
+ super.onBackPressed()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
}
\ No newline at end of file
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 8f75d75..6c169fc 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
@@ -21,6 +21,8 @@ import com.google.android.material.appbar.CollapsingToolbarLayout
import com.jwplayer.pub.api.media.playlists.PlaylistItem
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.DialogContinueEpisodeBinding
import com.woka.databinding.FragmentWebSeriesBinding
import com.woka.networking.ApiResult
@@ -111,6 +113,8 @@ class WebSeriesFragment : Fragment() {
binding.errorView.hide()
viewModel.loadCategories()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
loadMoreBtn.setOnClickListener {
@@ -118,6 +122,8 @@ class WebSeriesFragment : Fragment() {
loadingMore = true
viewModel.loadMoreWebSeries(it)
}
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
trailerBtn.setOnClickListener {
@@ -140,6 +146,8 @@ class WebSeriesFragment : Fragment() {
)
putExtra(EXTRA_PLAY_INDEX, 0)
})
+
+ ClicksHelper.upsertClickEvent(ContentType.TEASER)
}
}
}
@@ -203,6 +211,10 @@ class WebSeriesFragment : Fragment() {
}
episodeDialogBinding.close.setOnClickListener { episodeDialog.dismiss() }
+
+ episodeDialog.setOnDismissListener {
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
}
private fun loadShowData() {
@@ -334,6 +346,7 @@ class WebSeriesFragment : Fragment() {
}
viewModel.selectedCategoryPos = position
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
override fun onNothingSelected(parent: AdapterView<*>?) {}
@@ -350,6 +363,8 @@ class WebSeriesFragment : Fragment() {
showData, categoryId
)
)
+
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
}
// updating common data of shows across all category show list
@@ -429,12 +444,14 @@ class WebSeriesFragment : Fragment() {
videoPlayList.videoViewRequestDataList?.add(
VideoViewRequestData(
- "${episodeData.id}",
+ episodeData.id,
"3",
null,
category_id = "18"
)
)
+
+ ClicksHelper.upsertClickEvent(ContentType.EPISODE, episodeData.id, "18")
} else {
videoPlayList.playlist.add(
PlaylistItem.Builder()
@@ -446,12 +463,14 @@ class WebSeriesFragment : Fragment() {
videoPlayList.videoViewRequestDataList?.add(
VideoViewRequestData(
- "${episodeData.id}",
+ episodeData.id,
"3",
null,
"1"
)
)
+
+ ClicksHelper.upsertClickEvent(ContentType.EPISODE, episodeData.id, "1")
}
}
@@ -463,10 +482,6 @@ class WebSeriesFragment : Fragment() {
}
}
- close.setOnClickListener {
- episodeDialog.dismiss()
- }
-
episodeDialog.show()
}
}
diff --git a/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt b/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt
index 1426eaa..786df40 100644
--- a/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt
+++ b/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt
@@ -21,6 +21,8 @@ import com.google.android.material.tabs.TabLayout
import com.jwplayer.pub.api.media.playlists.PlaylistItem
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.DialogEpisodeBinding
import com.woka.databinding.FragmentWebShowBinding
import com.woka.networking.ApiResult
@@ -32,6 +34,7 @@ import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.lightStatusBar
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import com.woka.webseries.WebSeriesRepository
@@ -161,11 +164,20 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
watchCard.setOnClickListener {
playTrailer.performClick()
+
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
+ }
+
+ shareSeason.setOnClickListener {
+ activity?.shareWokaApp()
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
}
epLoadMoreBtn.setOnClickListener {
loadMoreEpisodes = true
viewModel.loadMoreEpisodes("${showData.id}", selectedSeasonId)
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
likeSeason.setOnClickListener {
@@ -202,6 +214,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
})
showDataChanged = true
+
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
}
favSeason.setOnClickListener {
@@ -239,6 +253,7 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
})
showDataChanged = true
+ ClicksHelper.upsertClickEvent(ContentType.SERIES, showData.id, categoryId)
}
playTrailer.setOnClickListener {
@@ -283,6 +298,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
}
}
}
+
+ ClicksHelper.upsertClickEvent(ContentType.SEASON, seasonData.id, categoryId)
}
}
}
@@ -314,6 +331,10 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
}
episodeDialogBinding.close.setOnClickListener { episodeDialog.dismiss() }
+
+ episodeDialog.setOnDismissListener {
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
}
// callbacks
@@ -473,7 +494,7 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
}
watchCard.setOnClickListener {
- onEpisodePlayClicked(position)
+ onEpisodePlayClicked(position, episodeData)
}
close.setOnClickListener {
@@ -483,9 +504,11 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
episodeDialog.show()
}
}
+
+ ClicksHelper.upsertClickEvent(ContentType.EPISODE, episodeData.id, categoryId)
}
- private fun onEpisodePlayClicked(position: Int) {
+ private fun onEpisodePlayClicked(position: Int, episodeData: EpisodeData) {
activity?.let {
startActivity(Intent(it, PlayerActivity::class.java).apply {
putExtra(
@@ -494,6 +517,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
)
putExtra(PlayerActivity.EXTRA_PLAY_INDEX, position)
})
+
+ ClicksHelper.upsertClickEvent(ContentType.EPISODE, episodeData.id, categoryId)
}
}
@@ -550,7 +575,7 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
}
watchCard.setOnClickListener {
- onTeaserPlayClicked(position)
+ onTeaserPlayClicked(position, teaserData)
}
close.setOnClickListener {
@@ -560,6 +585,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
episodeDialog.show()
}
}
+
+ ClicksHelper.upsertClickEvent(ContentType.TEASER, teaserData.id, categoryId)
}
private fun loadSeasonData() {
@@ -570,6 +597,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
if (seasonsTab.selectedTabPosition < seasonList.size) {
seasonList[seasonsTab.selectedTabPosition].let { seasonData ->
+ ClicksHelper.upsertClickEvent(ContentType.SEASON, seasonData.id, categoryId)
+
playTrailer.show()
detailsProgressiveView.hide()
detailsView.show()
@@ -626,7 +655,7 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
}
}
- private fun onTeaserPlayClicked(position: Int) {
+ private fun onTeaserPlayClicked(position: Int, teaserData: TeaserData) {
activity?.let {
startActivity(Intent(it, PlayerActivity::class.java).apply {
putExtra(
@@ -635,6 +664,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
)
putExtra(PlayerActivity.EXTRA_PLAY_INDEX, position)
})
+
+ ClicksHelper.upsertClickEvent(ContentType.TEASER, teaserData.id, categoryId)
}
}
diff --git a/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt b/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt
index 50ffe3b..c2262d6 100644
--- a/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt
+++ b/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt
@@ -9,6 +9,8 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ShowViewHolderBinding
import com.woka.userPreference.UserType
import com.woka.utils.isNetworkConnected
@@ -120,6 +122,8 @@ class GamesAdapter(
like.isSelected = !like.isSelected
likeCount.text = "${gameData.likes_count}"
+
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
fav.isSelected = gameData.mark_as_favourite == true
@@ -143,6 +147,8 @@ class GamesAdapter(
gameData.mark_as_favourite = !fav.isSelected
fav.isSelected = gameData.mark_as_favourite == true
+
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
root.setOnClickListener {
diff --git a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt
index e9bcdfe..49cd176 100644
--- a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt
+++ b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt
@@ -17,6 +17,8 @@ import androidx.recyclerview.widget.SimpleItemAnimator
import com.google.android.material.appbar.CollapsingToolbarLayout
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
+import com.woka.database.helpers.ClicksHelper
+import com.woka.database.models.clicks.ContentType
import com.woka.databinding.ActivityGamesBinding
import com.woka.databinding.DialogModuleShowerBinding
import com.woka.networking.ApiResult
@@ -26,6 +28,7 @@ import com.woka.utils.WokaBaseActivity
import com.woka.utils.hide
import com.woka.utils.isNetworkConnected
import com.woka.utils.setVisibility
+import com.woka.utils.shareWokaApp
import com.woka.utils.show
import com.woka.utils.toast
import com.woka.wokagames.GamesRepository
@@ -92,6 +95,11 @@ class GamesActivity : WokaBaseActivity() {
}
}
+ override fun onDestroy() {
+ super.onDestroy()
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
private fun initViews() {
binding.apply {
adjustTrailerImage()
@@ -123,6 +131,10 @@ class GamesActivity : WokaBaseActivity() {
dialogBinding.close.setOnClickListener { gameDialog.dismiss() }
+ gameDialog.setOnDismissListener {
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
+ }
+
dialogBinding.watchCard.backgroundTintList = ColorStateList.valueOf(getColor(R.color.game_grad_one))
dialogBinding.watchCard.text = getString(R.string.play_now)
}
@@ -135,10 +147,14 @@ class GamesActivity : WokaBaseActivity() {
retryBtn.setOnClickListener {
viewModel.loadGames()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
loadMoreBtn.setOnClickListener {
viewModel.loadGames()
+
+ ClicksHelper.upsertClickEvent(ContentType.OTHERS)
}
}
}
@@ -146,6 +162,8 @@ class GamesActivity : WokaBaseActivity() {
private fun onGameClicked(gameData: GameData) {
loadTrailerData(gameData)
showGameDialog(gameData)
+
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
private fun loadTrailerData(gameData: GameData) {
@@ -175,6 +193,8 @@ class GamesActivity : WokaBaseActivity() {
putExtra(EXTRA_GAME_PLAYER_DATA, GamePlayerData(it, gameData.screen_orientation == "Landscape"))
})
}
+
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
}
}
@@ -254,6 +274,13 @@ class GamesActivity : WokaBaseActivity() {
putExtra(EXTRA_GAME_PLAYER_DATA, GamePlayerData(it, gameData.screen_orientation == "Landscape"))
})
}
+
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
+ }
+
+ dialogBinding.share.setOnClickListener {
+ shareWokaApp()
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
like.setOnClickListener {
@@ -289,6 +316,8 @@ class GamesActivity : WokaBaseActivity() {
}
like.isSelected = !like.isSelected
likeCount.text = "${gameData.likes_count}"
+
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
fav.setOnClickListener {
@@ -314,10 +343,8 @@ class GamesActivity : WokaBaseActivity() {
}
fav.isSelected = !fav.isSelected
- }
- close.setOnClickListener {
- gameDialog.dismiss()
+ ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}
gameDialog.show()
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index 44fe464..05b42ef 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -58,7 +58,7 @@
पासवर्ड भूल गए?
अपना पासवर्ड भूल गए?
कृपया हमें अपना उपयोगकर्ता नाम दें
- हम आपके माता-पिता के ईमेल पर एक रीसेट कोड भेजेंगे
+ हम आपके ईमेल पर एक रीसेट कोड भेजेंगे
अपना पासवर्ड रीसेट करने के लिए उनसे कोड के लिए अनुरोध करें
नया पासवर्ड चुनें
नया पासवर्ड दर्ज करें
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dc63afa..fc90af9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -60,7 +60,7 @@
Forgot Password?
Forgot your Password?
PLEASE GIVE US YOUR USERNAME
- We will send a reset code to your parent’s email
+ We will send a reset code to your email
Request them for the code to reset your password
Great! Select New Password
Enter a new password
@@ -297,4 +297,6 @@
Status:
Expected Date:
VIEW ALL
+ Alert!
+ Are you sure you want to remove item from cart?
\ No newline at end of file