Home1Fragment night theme animations handling
Added shimmers in HomeMoreActivity Integrated NoSignInDialog into all modules for handling guest user click for like and add to fav Cleaned all code from the start
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
package com.woka
|
package com.woka
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import com.woka.userPreference.UserPreference
|
import com.woka.userPreference.UserPreference
|
||||||
|
|
||||||
class WokaApp: Application() {
|
class WokaApp: Application() {
|
||||||
|
|
||||||
companion object{
|
companion object{
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
var userPrefs: UserPreference? = null
|
var userPrefs: UserPreference? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.woka.WokaApp.Companion.userPrefs
|
|||||||
import com.woka.audiobooks.AudioBookRepository
|
import com.woka.audiobooks.AudioBookRepository
|
||||||
import com.woka.audiobooks.models.audiodata.AudioBookData
|
import com.woka.audiobooks.models.audiodata.AudioBookData
|
||||||
import com.woka.databinding.ShowViewHolderBinding
|
import com.woka.databinding.ShowViewHolderBinding
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
import com.woka.utils.isNetworkConnected
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
import com.woka.utils.toast
|
||||||
@@ -21,7 +22,8 @@ import kotlin.math.max
|
|||||||
class AudioBooksAdapter(
|
class AudioBooksAdapter(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private var onBookClicked: (AudioBookData) -> Unit,
|
private var onBookClicked: (AudioBookData) -> Unit,
|
||||||
private var onBookChanged: (id: Int, AudioBookData) -> Unit
|
private var onBookChanged: (id: Int, AudioBookData) -> Unit,
|
||||||
|
private val noSignInListener: () -> Unit
|
||||||
): ListAdapter<AudioBookData, AudioBooksAdapter.AudioBookViewHolder>(ASYNC_DIFF_UTIL) {
|
): ListAdapter<AudioBookData, AudioBooksAdapter.AudioBookViewHolder>(ASYNC_DIFF_UTIL) {
|
||||||
|
|
||||||
inner class AudioBookViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
inner class AudioBookViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
||||||
@@ -92,6 +94,11 @@ class AudioBooksAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
AudioBookRepository.likeUnLikeAudioBook(
|
AudioBookRepository.likeUnLikeAudioBook(
|
||||||
"${audioBook.id}",
|
"${audioBook.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
@@ -125,6 +132,11 @@ class AudioBooksAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
AudioBookRepository.updateFavShow(
|
AudioBookRepository.updateFavShow(
|
||||||
audioBook,
|
audioBook,
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
|
|||||||
@@ -29,10 +29,13 @@ import com.woka.networking.ApiResult
|
|||||||
import com.woka.players.models.VideoPlayList
|
import com.woka.players.models.VideoPlayList
|
||||||
import com.woka.players.views.PlayerActivity
|
import com.woka.players.views.PlayerActivity
|
||||||
import com.woka.userPreference.UserType
|
import com.woka.userPreference.UserType
|
||||||
|
import com.woka.utils.NoSignInDialog
|
||||||
import com.woka.utils.WokaBaseActivity
|
import com.woka.utils.WokaBaseActivity
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.setVisibility
|
import com.woka.utils.setVisibility
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
|
import com.woka.utils.toast
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
@@ -49,6 +52,8 @@ class AudioBooksActivity : WokaBaseActivity() {
|
|||||||
private lateinit var dialogBinding: DialogModuleShowerBinding
|
private lateinit var dialogBinding: DialogModuleShowerBinding
|
||||||
private lateinit var audioDialog: Dialog
|
private lateinit var audioDialog: Dialog
|
||||||
|
|
||||||
|
private lateinit var noSignInDialog: NoSignInDialog
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
enableEdgeToEdge()
|
enableEdgeToEdge()
|
||||||
@@ -66,7 +71,9 @@ class AudioBooksActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
viewModel = ViewModelProvider(this)[AudioBookViewModel::class.java]
|
viewModel = ViewModelProvider(this)[AudioBookViewModel::class.java]
|
||||||
|
|
||||||
audioBookAdapter = AudioBooksAdapter(this, ::onBookClicked, ::onBookChanged)
|
audioBookAdapter = AudioBooksAdapter(this, ::onBookClicked, ::onBookChanged){
|
||||||
|
noSignInDialog.show()
|
||||||
|
}
|
||||||
continueAudioAdapter =
|
continueAudioAdapter =
|
||||||
ContinueAudioAdapter(this, ::onContinueBookClicked, ::onContinueBookChanged)
|
ContinueAudioAdapter(this, ::onContinueBookClicked, ::onContinueBookChanged)
|
||||||
|
|
||||||
@@ -74,6 +81,8 @@ class AudioBooksActivity : WokaBaseActivity() {
|
|||||||
audioDialog = Dialog(this)
|
audioDialog = Dialog(this)
|
||||||
audioDialog.setContentView(dialogBinding.root)
|
audioDialog.setContentView(dialogBinding.root)
|
||||||
|
|
||||||
|
noSignInDialog = NoSignInDialog(this)
|
||||||
|
|
||||||
initViews()
|
initViews()
|
||||||
|
|
||||||
initAudioDialog()
|
initAudioDialog()
|
||||||
@@ -411,6 +420,16 @@ class AudioBooksActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
like.setOnClickListener {
|
like.setOnClickListener {
|
||||||
|
if (!isNetworkConnected()){
|
||||||
|
toast(getString(R.string.no_internet))
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
AudioBookRepository.likeUnLikeAudioBook(
|
AudioBookRepository.likeUnLikeAudioBook(
|
||||||
"${audioBookData.id}",
|
"${audioBookData.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
@@ -437,6 +456,16 @@ class AudioBooksActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fav.setOnClickListener {
|
fav.setOnClickListener {
|
||||||
|
if (!isNetworkConnected()){
|
||||||
|
toast(getString(R.string.no_internet))
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
AudioBookRepository.updateFavShow(
|
AudioBookRepository.updateFavShow(
|
||||||
audioBookData,
|
audioBookData,
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
|
|||||||
@@ -60,8 +60,6 @@ class Home1Fragment : Fragment(), Listener {
|
|||||||
viewModel = ViewModelProvider(it)[HomeViewModel::class.java]
|
viewModel = ViewModelProvider(it)[HomeViewModel::class.java]
|
||||||
}
|
}
|
||||||
|
|
||||||
currentBackground = null
|
|
||||||
|
|
||||||
initViews()
|
initViews()
|
||||||
|
|
||||||
initPlayerView()
|
initPlayerView()
|
||||||
@@ -442,16 +440,6 @@ class Home1Fragment : Fragment(), Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private var instance: Home1Fragment? = null
|
fun getInstance() = Home1Fragment()
|
||||||
private val any = Any()
|
|
||||||
fun getInstance(): Home1Fragment{
|
|
||||||
return synchronized(any){
|
|
||||||
if (instance == null){
|
|
||||||
instance = Home1Fragment()
|
|
||||||
}
|
|
||||||
|
|
||||||
return@synchronized instance!!
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,25 +2,22 @@ package com.woka.home.fragments
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
|
||||||
import androidx.fragment.app.Fragment
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.WokaApp
|
import com.woka.WokaApp
|
||||||
import com.woka.databinding.FragmentHome2Binding
|
import com.woka.databinding.FragmentHome2Binding
|
||||||
import com.woka.home.views.FMActivity
|
|
||||||
import com.woka.home.viewmodels.HomeViewModel
|
import com.woka.home.viewmodels.HomeViewModel
|
||||||
import com.woka.userdata.userDataModels.UserDataResponse
|
import com.woka.home.views.FMActivity
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.players.views.LiveStreamPlayerActivity
|
import com.woka.players.views.LiveStreamPlayerActivity
|
||||||
import com.woka.userPreference.UserType
|
import com.woka.userPreference.UserType
|
||||||
import com.woka.utils.TAG
|
import com.woka.userdata.userDataModels.UserDataResponse
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
|
||||||
|
|
||||||
class Home2Fragment : Fragment() {
|
class Home2Fragment : Fragment() {
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import androidx.recyclerview.widget.AsyncDifferConfig
|
|||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.WokaApp
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import com.woka.databinding.FavViewHolderBinding
|
import com.woka.databinding.FavViewHolderBinding
|
||||||
import com.woka.home.mylist.models.BookmarkedShowData
|
import com.woka.home.mylist.models.BookmarkedShowData
|
||||||
import com.woka.home.mylist.models.PostType
|
import com.woka.home.mylist.models.PostType
|
||||||
@@ -18,15 +18,23 @@ import com.woka.webseries.WebSeriesRepository
|
|||||||
import com.woka.webseries.models.ShowData
|
import com.woka.webseries.models.ShowData
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
class WebSeriesAdapter(private val context: Context,
|
class WebSeriesAdapter(
|
||||||
private val categoryId: String,
|
private val context: Context,
|
||||||
private val onListEmptyListener: ((postType: PostType, isEng: Boolean) -> Unit),
|
private val categoryId: String,
|
||||||
config: AsyncDifferConfig<BookmarkedShowData>): ListAdapter<BookmarkedShowData, FavoriteViewHolder>(config) {
|
private val onListEmptyListener: ((postType: PostType, isEng: Boolean) -> Unit)
|
||||||
|
) : ListAdapter<BookmarkedShowData, FavoriteViewHolder>(DIFF_CONFIG) {
|
||||||
|
|
||||||
companion object{
|
companion object {
|
||||||
private val DIFF_UTIL = object : DiffUtil.ItemCallback<BookmarkedShowData>(){
|
private val DIFF_UTIL = object : DiffUtil.ItemCallback<BookmarkedShowData>() {
|
||||||
override fun areItemsTheSame(oldItem: BookmarkedShowData, newItem: BookmarkedShowData): Boolean = oldItem.id == newItem.id
|
override fun areItemsTheSame(
|
||||||
override fun areContentsTheSame(oldItem: BookmarkedShowData, newItem: BookmarkedShowData): Boolean {
|
oldItem: BookmarkedShowData,
|
||||||
|
newItem: BookmarkedShowData
|
||||||
|
): Boolean = oldItem.id == newItem.id
|
||||||
|
|
||||||
|
override fun areContentsTheSame(
|
||||||
|
oldItem: BookmarkedShowData,
|
||||||
|
newItem: BookmarkedShowData
|
||||||
|
): Boolean {
|
||||||
return oldItem.title == newItem.title &&
|
return oldItem.title == newItem.title &&
|
||||||
oldItem.is_liked == newItem.is_liked &&
|
oldItem.is_liked == newItem.is_liked &&
|
||||||
oldItem.likes_count == newItem.likes_count
|
oldItem.likes_count == newItem.likes_count
|
||||||
@@ -41,10 +49,6 @@ class WebSeriesAdapter(private val context: Context,
|
|||||||
var onShowClickListener: ((BookmarkedShowData, String) -> Unit)? = null
|
var onShowClickListener: ((BookmarkedShowData, String) -> Unit)? = null
|
||||||
var onLikeChanged: ((Int) -> Unit)? = null
|
var onLikeChanged: ((Int) -> Unit)? = null
|
||||||
|
|
||||||
constructor(context: Context,
|
|
||||||
categoryId: String,
|
|
||||||
onListEmptyListener: ((postType: PostType, isEng: Boolean) -> Unit)): this(context, categoryId, onListEmptyListener, DIFF_CONFIG)
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FavoriteViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FavoriteViewHolder {
|
||||||
return FavoriteViewHolder(
|
return FavoriteViewHolder(
|
||||||
FavViewHolderBinding.inflate(
|
FavViewHolderBinding.inflate(
|
||||||
@@ -63,14 +67,14 @@ class WebSeriesAdapter(private val context: Context,
|
|||||||
image.loadImage(it)
|
image.loadImage(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
showData.content_more_details?.let {moreDetailsList ->
|
showData.content_more_details?.let { moreDetailsList ->
|
||||||
title.text = if (moreDetailsList.isNotEmpty()){
|
title.text = if (moreDetailsList.isNotEmpty()) {
|
||||||
if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1){
|
if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) {
|
||||||
moreDetailsList[1]?.title
|
moreDetailsList[1]?.title
|
||||||
}else{
|
} else {
|
||||||
moreDetailsList[0]?.title
|
moreDetailsList[0]?.title
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
showData.title
|
showData.title
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -87,22 +91,15 @@ class WebSeriesAdapter(private val context: Context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
like.setOnClickListener {
|
like.setOnClickListener {
|
||||||
if (!context.isNetworkConnected()){
|
if (!context.isNetworkConnected()) {
|
||||||
context.toast(context.getString(R.string.no_internet))
|
context.toast(context.getString(R.string.no_internet))
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
if (like.isSelected){
|
WebSeriesRepository.likeUnLikeShow(
|
||||||
WebSeriesRepository.likeUnLikeShow(
|
"${showData.id}",
|
||||||
"${showData.id}",
|
!like.isSelected
|
||||||
false
|
)
|
||||||
)
|
|
||||||
}else{
|
|
||||||
WebSeriesRepository.likeUnLikeShow(
|
|
||||||
"${showData.id}",
|
|
||||||
true
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
like.isSelected = !like.isSelected
|
like.isSelected = !like.isSelected
|
||||||
likeCount.text = "${showData.likes_count}"
|
likeCount.text = "${showData.likes_count}"
|
||||||
@@ -115,36 +112,36 @@ class WebSeriesAdapter(private val context: Context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
fav.show()
|
fav.show()
|
||||||
if (showData.isBookMarked(categoryId)){
|
if (showData.isBookMarked(categoryId)) {
|
||||||
fav.isSelected = true
|
fav.isSelected = true
|
||||||
}else{
|
} else {
|
||||||
val currentList = currentList.toMutableList()
|
val currentList = currentList.toMutableList()
|
||||||
currentList.removeAt(holder.absoluteAdapterPosition)
|
currentList.removeAt(holder.absoluteAdapterPosition)
|
||||||
submitList(currentList)
|
submitList(currentList)
|
||||||
|
|
||||||
if (currentList.isEmpty()){
|
if (currentList.isEmpty()) {
|
||||||
onListEmptyListener(PostType.WEB_SERIES, categoryId == "1")
|
onListEmptyListener(PostType.WEB_SERIES, categoryId == "1")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fav.setOnClickListener {
|
fav.setOnClickListener {
|
||||||
if (!context.isNetworkConnected()){
|
if (!context.isNetworkConnected()) {
|
||||||
context.toast(context.getString(R.string.no_internet))
|
context.toast(context.getString(R.string.no_internet))
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fav.isSelected){
|
if (fav.isSelected) {
|
||||||
WebSeriesRepository.updateFavShow(
|
WebSeriesRepository.updateFavShow(
|
||||||
ShowData(showData),
|
ShowData(showData),
|
||||||
false,
|
false,
|
||||||
categoryId
|
categoryId
|
||||||
)
|
)
|
||||||
|
|
||||||
val currentList = currentList.toMutableList()
|
val currentList = currentList.toMutableList()
|
||||||
currentList.removeAt(holder.absoluteAdapterPosition)
|
currentList.removeAt(holder.absoluteAdapterPosition)
|
||||||
submitList(currentList)
|
submitList(currentList)
|
||||||
|
|
||||||
if (currentList.isEmpty()){
|
if (currentList.isEmpty()) {
|
||||||
onListEmptyListener(PostType.WEB_SERIES, categoryId == "1")
|
onListEmptyListener(PostType.WEB_SERIES, categoryId == "1")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.woka.home.notifications
|
package com.woka.home.notifications
|
||||||
|
|
||||||
import android.util.Log
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.recyclerview.widget.AsyncDifferConfig
|
import androidx.recyclerview.widget.AsyncDifferConfig
|
||||||
@@ -9,10 +8,7 @@ import androidx.recyclerview.widget.ListAdapter
|
|||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||||
import com.woka.databinding.NotificationViewHolderBinding
|
import com.woka.databinding.NotificationViewHolderBinding
|
||||||
import com.woka.home.notifications.models.NotificationData
|
import com.woka.home.notifications.models.NotificationData
|
||||||
import com.woka.utils.TAG
|
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.time.LocalDate
|
|
||||||
import java.time.temporal.ChronoUnit
|
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
@@ -50,6 +46,7 @@ class NotificationAdapter(config: AsyncDifferConfig<NotificationData>): ListAdap
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
override fun onBindViewHolder(holder: NotificationViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: NotificationViewHolder, position: Int) {
|
||||||
val notification = getItem(position)
|
val notification = getItem(position)
|
||||||
notification.created_at?.let {
|
notification.created_at?.let {
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
package com.woka.home.notifications
|
package com.woka.home.notifications
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.databinding.ActivityNotificationsBinding
|
import com.woka.databinding.ActivityNotificationsBinding
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.utils.TAG
|
|
||||||
import com.woka.utils.WokaBaseActivity
|
import com.woka.utils.WokaBaseActivity
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
|
||||||
|
|
||||||
class NotificationsActivity : WokaBaseActivity() {
|
class NotificationsActivity : WokaBaseActivity() {
|
||||||
|
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ class UserProfileActivity : WokaBaseActivity() {
|
|||||||
genderM.setCardBackgroundColor(Color.WHITE)
|
genderM.setCardBackgroundColor(Color.WHITE)
|
||||||
genderM.cardElevation = 5f
|
genderM.cardElevation = 5f
|
||||||
|
|
||||||
genderF.setCardBackgroundColor(resources.getColor(R.color.white_50))
|
genderF.setCardBackgroundColor(getColor(R.color.white_50))
|
||||||
genderF.cardElevation = 0f
|
genderF.cardElevation = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,15 +186,15 @@ class UserProfileActivity : WokaBaseActivity() {
|
|||||||
genderF.setCardBackgroundColor(Color.WHITE)
|
genderF.setCardBackgroundColor(Color.WHITE)
|
||||||
genderF.cardElevation = 5f
|
genderF.cardElevation = 5f
|
||||||
|
|
||||||
genderM.setCardBackgroundColor(resources.getColor(R.color.white_50))
|
genderM.setCardBackgroundColor(getColor(R.color.white_50))
|
||||||
genderM.cardElevation = 0f
|
genderM.cardElevation = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
Gender.NONE -> {
|
Gender.NONE -> {
|
||||||
genderM.setCardBackgroundColor(resources.getColor(R.color.white_50))
|
genderM.setCardBackgroundColor(getColor(R.color.white_50))
|
||||||
genderM.cardElevation = 0f
|
genderM.cardElevation = 0f
|
||||||
|
|
||||||
genderF.setCardBackgroundColor(resources.getColor(R.color.white_50))
|
genderF.setCardBackgroundColor(getColor(R.color.white_50))
|
||||||
genderF.cardElevation = 0f
|
genderF.cardElevation = 0f
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,16 @@
|
|||||||
package com.woka.home.viewmodels
|
package com.woka.home.viewmodels
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
|
||||||
import android.util.Log
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import androidx.media3.common.MediaItem
|
import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.PlaybackException
|
|
||||||
import androidx.media3.common.Player
|
import androidx.media3.common.Player
|
||||||
import androidx.media3.common.Player.Listener
|
|
||||||
import androidx.media3.exoplayer.ExoPlayer
|
import androidx.media3.exoplayer.ExoPlayer
|
||||||
import com.woka.home.views.BottomNavigation.Companion.HOME
|
import com.woka.home.views.BottomNavigation.Companion.HOME
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.userdata.UserRepository
|
import com.woka.userdata.UserRepository
|
||||||
import com.woka.utils.TAG
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class HomeViewModel : ViewModel() {
|
class HomeViewModel : ViewModel() {
|
||||||
|
|||||||
@@ -38,12 +38,12 @@ class FMActivity : WokaBaseActivity() {
|
|||||||
val webSettings: WebSettings = binding.webView.getSettings()
|
val webSettings: WebSettings = binding.webView.getSettings()
|
||||||
webSettings.javaScriptEnabled = true
|
webSettings.javaScriptEnabled = true
|
||||||
|
|
||||||
webSettings.allowFileAccess = false;
|
webSettings.allowFileAccess = false
|
||||||
webSettings.allowContentAccess = false;
|
webSettings.allowContentAccess = false
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
webSettings.safeBrowsingEnabled = true
|
webSettings.safeBrowsingEnabled = true
|
||||||
};
|
}
|
||||||
|
|
||||||
binding.webView.setWebViewClient(WebViewClient())
|
binding.webView.setWebViewClient(WebViewClient())
|
||||||
|
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ class HomeActivity : WokaBaseActivity(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("Deprecated in Java")
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
if (binding.homeDrawer.isDrawerOpen(GravityCompat.END)){
|
if (binding.homeDrawer.isDrawerOpen(GravityCompat.END)){
|
||||||
binding.homeDrawer.closeDrawer(GravityCompat.END)
|
binding.homeDrawer.closeDrawer(GravityCompat.END)
|
||||||
@@ -137,6 +138,7 @@ class HomeActivity : WokaBaseActivity(),
|
|||||||
decisionDialog.message = getString(R.string.do_you_want_to_exit_from_the_woka_app)
|
decisionDialog.message = getString(R.string.do_you_want_to_exit_from_the_woka_app)
|
||||||
|
|
||||||
decisionDialog.setPositiveButton(getString(R.string.yes)){
|
decisionDialog.setPositiveButton(getString(R.string.yes)){
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +230,6 @@ class HomeActivity : WokaBaseActivity(),
|
|||||||
getString(R.string.login_register)
|
getString(R.string.login_register)
|
||||||
}else{
|
}else{
|
||||||
// showing menu options
|
// showing menu options
|
||||||
val type = userPrefs?.userType
|
|
||||||
if (userPrefs?.userType == UserType.GUARDIAN){
|
if (userPrefs?.userType == UserType.GUARDIAN){
|
||||||
sbAddChild.show()
|
sbAddChild.show()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import androidx.media3.common.MediaItem
|
|||||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.WokaApp
|
|
||||||
import com.woka.WokaApp.Companion.userPrefs
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import com.woka.databinding.ActivityMoreHomeBinding
|
import com.woka.databinding.ActivityMoreHomeBinding
|
||||||
import com.woka.databinding.DialogBlogsBinding
|
import com.woka.databinding.DialogBlogsBinding
|
||||||
@@ -128,19 +127,27 @@ class MoreHomeActivity : WokaBaseActivity() {
|
|||||||
is ApiResult.Error -> {
|
is ApiResult.Error -> {
|
||||||
binding.blogsTxt.hide()
|
binding.blogsTxt.hide()
|
||||||
binding.rvBlogs.hide()
|
binding.rvBlogs.hide()
|
||||||
|
binding.blogsShimmer.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
is ApiResult.Loading -> {
|
is ApiResult.Loading -> {
|
||||||
binding.blogsTxt.hide()
|
binding.blogsTxt.show()
|
||||||
|
binding.blogsShimmer.show()
|
||||||
|
|
||||||
binding.rvBlogs.hide()
|
binding.rvBlogs.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
is ApiResult.Success -> {
|
is ApiResult.Success -> {
|
||||||
it.data?.blogs?.let { blogList ->
|
it.data?.blogs?.let { blogList ->
|
||||||
binding.blogsTxt.show()
|
blogsAdapter.submitList(blogList){
|
||||||
binding.rvBlogs.show()
|
binding.blogsShimmer.hide()
|
||||||
|
binding.blogsTxt.show()
|
||||||
blogsAdapter.submitList(blogList)
|
binding.rvBlogs.show()
|
||||||
|
}
|
||||||
|
}?:{
|
||||||
|
binding.blogsTxt.hide()
|
||||||
|
binding.rvBlogs.hide()
|
||||||
|
binding.blogsShimmer.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,18 +160,19 @@ class MoreHomeActivity : WokaBaseActivity() {
|
|||||||
is ApiResult.Error -> {
|
is ApiResult.Error -> {
|
||||||
binding.wokaSongsTxt.hide()
|
binding.wokaSongsTxt.hide()
|
||||||
binding.rvWokaSongs.hide()
|
binding.rvWokaSongs.hide()
|
||||||
|
binding.songsShimmer.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
is ApiResult.Loading -> {
|
is ApiResult.Loading -> {
|
||||||
binding.wokaSongsTxt.hide()
|
binding.wokaSongsTxt.show()
|
||||||
|
binding.songsShimmer.show()
|
||||||
|
|
||||||
binding.rvWokaSongs.hide()
|
binding.rvWokaSongs.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
is ApiResult.Success -> {
|
is ApiResult.Success -> {
|
||||||
|
|
||||||
it.data?.paint_data?.let { songList ->
|
it.data?.paint_data?.let { songList ->
|
||||||
binding.wokaSongsTxt.show()
|
|
||||||
binding.rvWokaSongs.show()
|
|
||||||
|
|
||||||
val mediaItems = mutableListOf<MediaItem>()
|
val mediaItems = mutableListOf<MediaItem>()
|
||||||
|
|
||||||
@@ -188,6 +196,14 @@ class MoreHomeActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
songsAdapter.submitSongList(songList, mediaItems)
|
songsAdapter.submitSongList(songList, mediaItems)
|
||||||
|
|
||||||
|
binding.wokaSongsTxt.show()
|
||||||
|
binding.rvWokaSongs.show()
|
||||||
|
binding.songsShimmer.hide()
|
||||||
|
|
||||||
|
}?:{
|
||||||
|
binding.wokaSongsTxt.hide()
|
||||||
|
binding.rvWokaSongs.hide()
|
||||||
|
binding.songsShimmer.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,7 +231,7 @@ class MoreHomeActivity : WokaBaseActivity() {
|
|||||||
titleTxt = it[0]?.title
|
titleTxt = it[0]?.title
|
||||||
descriptionTxt = it[0]?.article
|
descriptionTxt = it[0]?.article
|
||||||
|
|
||||||
if (it.size > 1 && WokaApp.userPrefs?.appLanguage == "hi"){
|
if (it.size > 1 && userPrefs?.appLanguage == "hi"){
|
||||||
titleTxt = it[1]?.title
|
titleTxt = it[1]?.title
|
||||||
descriptionTxt = it[1]?.article
|
descriptionTxt = it[1]?.article
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.woka.databinding.FavViewHolderBinding
|
|||||||
import com.woka.karaoke.KaraokeRepository
|
import com.woka.karaoke.KaraokeRepository
|
||||||
import com.woka.karaoke.models.continuesing.ContinueKaraokeData
|
import com.woka.karaoke.models.continuesing.ContinueKaraokeData
|
||||||
import com.woka.karaoke.models.listing.KaraokeData
|
import com.woka.karaoke.models.listing.KaraokeData
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
import com.woka.utils.isNetworkConnected
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
import com.woka.utils.toast
|
||||||
@@ -22,7 +23,8 @@ import kotlin.math.max
|
|||||||
class ContinueKaraokeAdapter(
|
class ContinueKaraokeAdapter(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private var onKaraokeClicked: (KaraokeData) -> Unit,
|
private var onKaraokeClicked: (KaraokeData) -> Unit,
|
||||||
private var onKaraokeChanged: (id: Int, isFromContinue: Boolean, KaraokeData) -> Unit
|
private var onKaraokeChanged: (id: Int, isFromContinue: Boolean, KaraokeData) -> Unit,
|
||||||
|
private val noSignInListener: () -> Unit
|
||||||
): ListAdapter<ContinueKaraokeData, ContinueKaraokeAdapter.AudioBookViewHolder>(ASYNC_DIFF_UTIL) {
|
): ListAdapter<ContinueKaraokeData, ContinueKaraokeAdapter.AudioBookViewHolder>(ASYNC_DIFF_UTIL) {
|
||||||
|
|
||||||
inner class AudioBookViewHolder(val binding: FavViewHolderBinding): ViewHolder(binding.root)
|
inner class AudioBookViewHolder(val binding: FavViewHolderBinding): ViewHolder(binding.root)
|
||||||
@@ -93,6 +95,11 @@ class ContinueKaraokeAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
KaraokeRepository.likeUnLikeSong(
|
KaraokeRepository.likeUnLikeSong(
|
||||||
"${karaokeData.id}",
|
"${karaokeData.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
@@ -129,6 +136,11 @@ class ContinueKaraokeAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
KaraokeRepository.updateFavShow(
|
KaraokeRepository.updateFavShow(
|
||||||
KaraokeData(karaokeData),
|
KaraokeData(karaokeData),
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.woka.WokaApp.Companion.userPrefs
|
|||||||
import com.woka.databinding.ShowViewHolderBinding
|
import com.woka.databinding.ShowViewHolderBinding
|
||||||
import com.woka.karaoke.KaraokeRepository
|
import com.woka.karaoke.KaraokeRepository
|
||||||
import com.woka.karaoke.models.listing.KaraokeData
|
import com.woka.karaoke.models.listing.KaraokeData
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
import com.woka.utils.isNetworkConnected
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
import com.woka.utils.toast
|
||||||
@@ -21,7 +22,8 @@ import kotlin.math.max
|
|||||||
class KaraokeAdapter(
|
class KaraokeAdapter(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private var onKaraokeClicked: (KaraokeData) -> Unit,
|
private var onKaraokeClicked: (KaraokeData) -> Unit,
|
||||||
private var onKaraokeChanged: (id: Int, isContinue: Boolean, KaraokeData) -> Unit
|
private var onKaraokeChanged: (id: Int, isContinue: Boolean, KaraokeData) -> Unit,
|
||||||
|
private val noSignInListener: () -> Unit
|
||||||
): ListAdapter<KaraokeData, KaraokeAdapter.AudioBookViewHolder>(ASYNC_DIFF_UTIL) {
|
): ListAdapter<KaraokeData, KaraokeAdapter.AudioBookViewHolder>(ASYNC_DIFF_UTIL) {
|
||||||
|
|
||||||
inner class AudioBookViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
inner class AudioBookViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
||||||
@@ -92,6 +94,11 @@ class KaraokeAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
KaraokeRepository.likeUnLikeSong(
|
KaraokeRepository.likeUnLikeSong(
|
||||||
"${karaokeData.id}",
|
"${karaokeData.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
@@ -128,6 +135,11 @@ class KaraokeAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
KaraokeRepository.updateFavShow(
|
KaraokeRepository.updateFavShow(
|
||||||
karaokeData,
|
karaokeData,
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ class KaraokePlayerActivity : WokaBaseActivity() {
|
|||||||
WindowCompat.getInsetsController(window, window.decorView)
|
WindowCompat.getInsetsController(window, window.decorView)
|
||||||
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
|
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
karaokePlayerData = intent.getParcelableExtra(EXTRA_KARAOKE_DATA)
|
karaokePlayerData = intent.getParcelableExtra(EXTRA_KARAOKE_DATA)
|
||||||
|
|
||||||
networkCallback = object : ConnectivityManager.NetworkCallback() {
|
networkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||||
@@ -486,6 +487,7 @@ class KaraokePlayerActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun startRecording() {
|
private fun startRecording() {
|
||||||
recorder = MediaRecorder().apply {
|
recorder = MediaRecorder().apply {
|
||||||
setAudioSource(MediaRecorder.AudioSource.MIC)
|
setAudioSource(MediaRecorder.AudioSource.MIC)
|
||||||
@@ -658,7 +660,7 @@ class KaraokePlayerActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
AlertDialog.Builder(this@KaraokePlayerActivity)
|
AlertDialog.Builder(this@KaraokePlayerActivity)
|
||||||
.setMessage(getString(R.string.file_saved_to_your_music_folder))
|
.setMessage(getString(R.string.file_saved_to_your_music_folder))
|
||||||
.setPositiveButton(getString(R.string.ok_caps)) { dialog, which ->
|
.setPositiveButton(getString(R.string.ok_caps)) { dialog, _ ->
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
.create()
|
.create()
|
||||||
@@ -668,7 +670,7 @@ class KaraokePlayerActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
AlertDialog.Builder(this@KaraokePlayerActivity)
|
AlertDialog.Builder(this@KaraokePlayerActivity)
|
||||||
.setMessage(getString(R.string.file_saved_to_your_music_folder))
|
.setMessage(getString(R.string.file_saved_to_your_music_folder))
|
||||||
.setPositiveButton(getString(R.string.ok_caps)) { dialog, which ->
|
.setPositiveButton(getString(R.string.ok_caps)) { dialog, _ ->
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
.create()
|
.create()
|
||||||
|
|||||||
@@ -29,10 +29,13 @@ import com.woka.karaoke.player.KaraokePlayerData
|
|||||||
import com.woka.karaoke.viewmodels.KaraokeViewModel
|
import com.woka.karaoke.viewmodels.KaraokeViewModel
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.userPreference.UserType
|
import com.woka.userPreference.UserType
|
||||||
|
import com.woka.utils.NoSignInDialog
|
||||||
import com.woka.utils.WokaBaseActivity
|
import com.woka.utils.WokaBaseActivity
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.setVisibility
|
import com.woka.utils.setVisibility
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
|
import com.woka.utils.toast
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
@@ -50,6 +53,7 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
private lateinit var dialogBinding: DialogModuleShowerBinding
|
private lateinit var dialogBinding: DialogModuleShowerBinding
|
||||||
private lateinit var karaokeDialog: Dialog
|
private lateinit var karaokeDialog: Dialog
|
||||||
|
private lateinit var noSignInDialog: NoSignInDialog
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@@ -68,14 +72,19 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
viewModel = ViewModelProvider(this)[KaraokeViewModel::class.java]
|
viewModel = ViewModelProvider(this)[KaraokeViewModel::class.java]
|
||||||
|
|
||||||
karaokeAdapter = KaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged)
|
karaokeAdapter = KaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) {
|
||||||
continueKaraokeAdapter =
|
noSignInDialog.show()
|
||||||
ContinueKaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged)
|
}
|
||||||
|
continueKaraokeAdapter = ContinueKaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) {
|
||||||
|
noSignInDialog.show()
|
||||||
|
}
|
||||||
|
|
||||||
dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater)
|
dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater)
|
||||||
karaokeDialog = Dialog(this)
|
karaokeDialog = Dialog(this)
|
||||||
karaokeDialog.setContentView(dialogBinding.root)
|
karaokeDialog.setContentView(dialogBinding.root)
|
||||||
|
|
||||||
|
noSignInDialog = NoSignInDialog(this)
|
||||||
|
|
||||||
initViews()
|
initViews()
|
||||||
|
|
||||||
initKaraokeDialog()
|
initKaraokeDialog()
|
||||||
@@ -84,7 +93,7 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
setObservers()
|
setObservers()
|
||||||
|
|
||||||
if (!viewModel.karaokeLiveData.isInitialized){
|
if (!viewModel.karaokeLiveData.isInitialized) {
|
||||||
viewModel.loadKaraokeSongs()
|
viewModel.loadKaraokeSongs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,16 +263,26 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
like.setOnClickListener {
|
like.setOnClickListener {
|
||||||
|
if (isNetworkConnected()){
|
||||||
|
toast(getString(R.string.no_internet))
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
KaraokeRepository.likeUnLikeSong(
|
KaraokeRepository.likeUnLikeSong(
|
||||||
"${karaokeData.id}",
|
"${karaokeData.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
)
|
)
|
||||||
|
|
||||||
karaokeData.likes_count?.let {
|
karaokeData.likes_count?.let {
|
||||||
karaokeData.likes_count = if (like.isSelected){
|
karaokeData.likes_count = if (like.isSelected) {
|
||||||
// unlike
|
// unlike
|
||||||
max(0, it - 1)
|
max(0, it - 1)
|
||||||
}else{
|
} else {
|
||||||
// like
|
// like
|
||||||
it + 1
|
it + 1
|
||||||
}
|
}
|
||||||
@@ -280,6 +299,16 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fav.setOnClickListener {
|
fav.setOnClickListener {
|
||||||
|
if (isNetworkConnected()){
|
||||||
|
toast(getString(R.string.no_internet))
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
KaraokeRepository.updateFavShow(
|
KaraokeRepository.updateFavShow(
|
||||||
karaokeData,
|
karaokeData,
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
@@ -340,8 +369,8 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setObservers() {
|
private fun setObservers() {
|
||||||
viewModel.karaokeLiveData.observe(this){
|
viewModel.karaokeLiveData.observe(this) {
|
||||||
when(it){
|
when (it) {
|
||||||
is ApiResult.Error -> {
|
is ApiResult.Error -> {
|
||||||
binding.shimmer.hide()
|
binding.shimmer.hide()
|
||||||
if (karaokeAdapter.currentList.size == 0) {
|
if (karaokeAdapter.currentList.size == 0) {
|
||||||
@@ -358,6 +387,7 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
binding.loadMoreBtn.show()
|
binding.loadMoreBtn.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
is ApiResult.Loading -> {
|
is ApiResult.Loading -> {
|
||||||
if (karaokeAdapter.currentList.size == 0) {
|
if (karaokeAdapter.currentList.size == 0) {
|
||||||
// loading first data
|
// loading first data
|
||||||
@@ -369,9 +399,10 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
binding.loadMoreBtn.hide()
|
binding.loadMoreBtn.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
is ApiResult.Success -> {
|
is ApiResult.Success -> {
|
||||||
it.data?.let {newList ->
|
it.data?.let { newList ->
|
||||||
if (newList.isNotEmpty()){
|
if (newList.isNotEmpty()) {
|
||||||
binding.rvKaraoke.show()
|
binding.rvKaraoke.show()
|
||||||
binding.singTxt.show()
|
binding.singTxt.show()
|
||||||
binding.trailerView.show()
|
binding.trailerView.show()
|
||||||
@@ -383,15 +414,15 @@ class KaraokeActivity : WokaBaseActivity() {
|
|||||||
binding.loadMoreBtn.text = getString(R.string.load_more)
|
binding.loadMoreBtn.text = getString(R.string.load_more)
|
||||||
binding.loadMoreBtn.setVisibility(!viewModel.lastPage)
|
binding.loadMoreBtn.setVisibility(!viewModel.lastPage)
|
||||||
|
|
||||||
if (karaokeAdapter.currentList.isEmpty()){
|
if (karaokeAdapter.currentList.isEmpty()) {
|
||||||
// first data load
|
// first data load
|
||||||
if (userPrefs?.userType != UserType.GUEST && !viewModel.karaokeContinueLiveData.isInitialized){
|
if (userPrefs?.userType != UserType.GUEST && !viewModel.karaokeContinueLiveData.isInitialized) {
|
||||||
viewModel.loadContinueData()
|
viewModel.loadContinueData()
|
||||||
}
|
}
|
||||||
|
|
||||||
loadTrailerData(newList[0])
|
loadTrailerData(newList[0])
|
||||||
karaokeAdapter.submitList(newList)
|
karaokeAdapter.submitList(newList)
|
||||||
}else{
|
} else {
|
||||||
// loaded more data
|
// loaded more data
|
||||||
karaokeAdapter.notifyItemRangeInserted(
|
karaokeAdapter.notifyItemRangeInserted(
|
||||||
karaokeAdapter.currentList.size,
|
karaokeAdapter.currentList.size,
|
||||||
|
|||||||
@@ -1,13 +1,7 @@
|
|||||||
package com.woka.modules
|
package com.woka.modules
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
|
||||||
import com.woka.modules.categorymodels.CategoriesResponse
|
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.networking.RetrofitHelper
|
import com.woka.networking.RetrofitHelper
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
|
|
||||||
object ModuleRepository {
|
object ModuleRepository {
|
||||||
@@ -39,24 +33,4 @@ object ModuleRepository {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// categories listing
|
|
||||||
private val _showCategoryLiveData = MutableLiveData<ApiResult<CategoriesResponse>>()
|
|
||||||
val showCategoryLiveData: LiveData<ApiResult<CategoriesResponse>>
|
|
||||||
get() = _showCategoryLiveData
|
|
||||||
|
|
||||||
fun showCategories(){
|
|
||||||
CoroutineScope(Dispatchers.IO).launch {
|
|
||||||
_showCategoryLiveData.postValue(ApiResult.Loading())
|
|
||||||
_showCategoryLiveData.postValue(
|
|
||||||
RetrofitHelper.handleApiCall {
|
|
||||||
moduleApiService.categoryListing(
|
|
||||||
FormBody.Builder()
|
|
||||||
.add("module_id", "7")
|
|
||||||
.build()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,12 @@
|
|||||||
package com.woka.modules.blogs
|
package com.woka.modules.blogs
|
||||||
|
|
||||||
import android.text.Html
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.recyclerview.widget.AsyncDifferConfig
|
import androidx.recyclerview.widget.AsyncDifferConfig
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||||
import com.bumptech.glide.Glide
|
|
||||||
import com.jwplayer.pub.api.JWPlayer
|
|
||||||
import com.woka.R
|
|
||||||
import com.woka.WokaApp
|
import com.woka.WokaApp
|
||||||
import com.woka.WokaApp.Companion.userPrefs
|
|
||||||
import com.woka.databinding.BlogViewHolderBinding
|
import com.woka.databinding.BlogViewHolderBinding
|
||||||
import com.woka.modules.blogs.models.Blog
|
import com.woka.modules.blogs.models.Blog
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|||||||
@@ -50,12 +50,12 @@ class WebViewActivity : WokaBaseActivity() {
|
|||||||
val webSettings: WebSettings = binding.webView.getSettings()
|
val webSettings: WebSettings = binding.webView.getSettings()
|
||||||
webSettings.javaScriptEnabled = true
|
webSettings.javaScriptEnabled = true
|
||||||
|
|
||||||
webSettings.allowFileAccess = false;
|
webSettings.allowFileAccess = false
|
||||||
webSettings.allowContentAccess = false;
|
webSettings.allowContentAccess = false
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
webSettings.safeBrowsingEnabled = true
|
webSettings.safeBrowsingEnabled = true
|
||||||
};
|
}
|
||||||
|
|
||||||
binding.webView.setWebViewClient(SecureWebViewClient(binding.progressBar))
|
binding.webView.setWebViewClient(SecureWebViewClient(binding.progressBar))
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.woka.modules.wokasongs
|
package com.woka.modules.wokasongs
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
@@ -146,12 +147,14 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter<WokaSongsAdapter.
|
|||||||
}else{
|
}else{
|
||||||
playBtn.show()
|
playBtn.show()
|
||||||
playBtn.setImageResource(R.drawable.ic_play)
|
playBtn.setImageResource(R.drawable.ic_play)
|
||||||
|
currentTime.text = root.context.getString(R.string._00_00)
|
||||||
progressBar.hide()
|
progressBar.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
playBtn.show()
|
playBtn.show()
|
||||||
playBtn.setImageResource(R.drawable.ic_play)
|
playBtn.setImageResource(R.drawable.ic_play)
|
||||||
|
currentTime.text = root.context.getString(R.string._00_00)
|
||||||
progressBar.hide()
|
progressBar.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -160,7 +163,9 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter<WokaSongsAdapter.
|
|||||||
}else super.onBindViewHolder(holder, position, payloads)
|
}else super.onBindViewHolder(holder, position, payloads)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: SongViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: SongViewHolder, pos: Int) {
|
||||||
|
val position = holder.absoluteAdapterPosition
|
||||||
|
|
||||||
if (position >= songList.size) return
|
if (position >= songList.size) return
|
||||||
|
|
||||||
val songData = songList[position]
|
val songData = songList[position]
|
||||||
@@ -226,6 +231,7 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter<WokaSongsAdapter.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
fun submitSongList(list: List<SongData?>, mediaItems: MutableList<MediaItem>) {
|
fun submitSongList(list: List<SongData?>, mediaItems: MutableList<MediaItem>) {
|
||||||
songList.clear()
|
songList.clear()
|
||||||
for (song in list){
|
for (song in list){
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class AgeSelectionFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentAgeSelectBinding.inflate(inflater, container, false)
|
binding = FragmentAgeSelectBinding.inflate(inflater, container, false)
|
||||||
activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
||||||
activity?.window?.statusBarColor = Color.parseColor("#6ed5fe")
|
activity?.window?.statusBarColor = Color.parseColor("#6ed5fe")
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class ChildListFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentChildListBinding.inflate(inflater, container, false)
|
binding = FragmentChildListBinding.inflate(inflater, container, false)
|
||||||
activity?.let {
|
activity?.let {
|
||||||
viewModel = ViewModelProvider(it)[OnboardViewModel::class.java]
|
viewModel = ViewModelProvider(it)[OnboardViewModel::class.java]
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
package com.woka.onboard.fragments
|
package com.woka.onboard.fragments
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.CountDownTimer
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.fragment.app.Fragment
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.View.GONE
|
import android.view.View.GONE
|
||||||
import android.view.View.VISIBLE
|
import android.view.View.VISIBLE
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.core.widget.addTextChangedListener
|
import androidx.core.widget.addTextChangedListener
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
@@ -66,7 +64,7 @@ class GetCodeFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentGetCodeBinding.inflate(inflater, container, false)
|
binding = FragmentGetCodeBinding.inflate(inflater, container, false)
|
||||||
activity?.let {
|
activity?.let {
|
||||||
viewModel = ViewModelProvider(it)[OnboardViewModel::class.java]
|
viewModel = ViewModelProvider(it)[OnboardViewModel::class.java]
|
||||||
|
|||||||
@@ -2,12 +2,11 @@ package com.woka.onboard.fragments
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Patterns
|
import android.util.Patterns
|
||||||
import androidx.fragment.app.Fragment
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.View.VISIBLE
|
import android.view.View.VISIBLE
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.Toast
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
@@ -54,7 +53,7 @@ class GetEmailFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentGetEmailBinding.inflate(inflater, container, false)
|
binding = FragmentGetEmailBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
activity?.let {
|
activity?.let {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class GetMoreInfoFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentGetMoreInfoBinding.inflate(inflater, container, false)
|
binding = FragmentGetMoreInfoBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
activity?.let {
|
activity?.let {
|
||||||
@@ -136,7 +136,7 @@ class GetMoreInfoFragment : Fragment() {
|
|||||||
viewModel.selectedDOB.get(Calendar.YEAR),
|
viewModel.selectedDOB.get(Calendar.YEAR),
|
||||||
viewModel.selectedDOB.get(Calendar.MONTH),
|
viewModel.selectedDOB.get(Calendar.MONTH),
|
||||||
viewModel.selectedDOB.get(Calendar.DAY_OF_MONTH)
|
viewModel.selectedDOB.get(Calendar.DAY_OF_MONTH)
|
||||||
) { v, year, monthOfYear, dayOfMonth ->
|
) { _, year, monthOfYear, dayOfMonth ->
|
||||||
val cal = Calendar.getInstance()
|
val cal = Calendar.getInstance()
|
||||||
cal.set(Calendar.YEAR, year)
|
cal.set(Calendar.YEAR, year)
|
||||||
cal.set(Calendar.MONTH, monthOfYear)
|
cal.set(Calendar.MONTH, monthOfYear)
|
||||||
@@ -148,6 +148,7 @@ class GetMoreInfoFragment : Fragment() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun selectGender(gender: Gender) {
|
private fun selectGender(gender: Gender) {
|
||||||
binding.apply {
|
binding.apply {
|
||||||
when (gender) {
|
when (gender) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class LanguageFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentLanguageBinding.inflate(inflater, container, false)
|
binding = FragmentLanguageBinding.inflate(inflater, container, false)
|
||||||
progressView = ProgressView(requireContext(), "please wait...")
|
progressView = ProgressView(requireContext(), "please wait...")
|
||||||
return binding.root
|
return binding.root
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class NewPasswordFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentNewPasswordBinding.inflate(inflater, container, false)
|
binding = FragmentNewPasswordBinding.inflate(inflater, container, false)
|
||||||
activity?.let {
|
activity?.let {
|
||||||
viewModel = ViewModelProvider(it)[OnboardViewModel::class.java]
|
viewModel = ViewModelProvider(it)[OnboardViewModel::class.java]
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class OnboardFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentOnboardBinding.inflate(inflater, container, false)
|
binding = FragmentOnboardBinding.inflate(inflater, container, false)
|
||||||
activity?.let {
|
activity?.let {
|
||||||
it.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
it.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
||||||
|
|||||||
@@ -58,6 +58,11 @@ class SelectAvatarFragment : Fragment() {
|
|||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
super.onDestroyView()
|
||||||
|
viewModel.clearRegisterUserData()
|
||||||
|
}
|
||||||
|
|
||||||
private fun clickEvents() {
|
private fun clickEvents() {
|
||||||
binding.apply {
|
binding.apply {
|
||||||
backBtn.setOnClickListener {
|
backBtn.setOnClickListener {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class SignInFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentSignInBinding.inflate(inflater, container, false)
|
binding = FragmentSignInBinding.inflate(inflater, container, false)
|
||||||
activity?.let {
|
activity?.let {
|
||||||
it.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
it.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
||||||
@@ -174,6 +174,7 @@ class SignInFragment : Fragment() {
|
|||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
viewModel.clearLoginLiveData()
|
viewModel.clearLoginLiveData()
|
||||||
|
viewModel.clearLoginProceedLiveData()
|
||||||
viewModel.clearGuestLoginData()
|
viewModel.clearGuestLoginData()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class SignUpFragment : Fragment() {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentSignUpBinding.inflate(inflater, container, false)
|
binding = FragmentSignUpBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
activity?.let {
|
activity?.let {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class SplashFragment : Fragment(), Observer<ApiResult<UserDataResponse>?> {
|
|||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View {
|
||||||
binding = FragmentSplashBinding.inflate(inflater, container, false)
|
binding = FragmentSplashBinding.inflate(inflater, container, false)
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
package com.woka.onboard.mvvm
|
package com.woka.onboard.mvvm
|
||||||
|
|
||||||
import com.woka.WokaApp
|
import com.woka.WokaApp
|
||||||
import com.woka.networking.ApiResponse
|
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.networking.RetrofitHelper.handleApiCall
|
import com.woka.networking.RetrofitHelper.handleApiCall
|
||||||
import com.woka.networking.RetrofitHelper.handleApiResponse
|
|
||||||
import com.woka.onboard.models.AvatarList
|
import com.woka.onboard.models.AvatarList
|
||||||
import com.woka.onboard.models.ChildListResponse
|
import com.woka.onboard.models.ChildListResponse
|
||||||
import com.woka.onboard.models.ForgotPasswrodOTPResponse
|
import com.woka.onboard.models.ForgotPasswrodOTPResponse
|
||||||
@@ -14,11 +12,7 @@ import com.woka.onboard.models.LoginResponse
|
|||||||
import com.woka.onboard.models.RegisterRequestData
|
import com.woka.onboard.models.RegisterRequestData
|
||||||
import com.woka.onboard.models.RegisterResponse
|
import com.woka.onboard.models.RegisterResponse
|
||||||
import com.woka.onboard.models.VerifyEmail
|
import com.woka.onboard.models.VerifyEmail
|
||||||
import com.woka.utils.NO_INTERNET_MESSAGE
|
|
||||||
import com.woka.utils.UNKNOWN_ERROR_MESSAGE
|
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
import retrofit2.Response
|
|
||||||
import java.net.UnknownHostException
|
|
||||||
|
|
||||||
class OnboardRepository(private val apiService: OnboardApiService) {
|
class OnboardRepository(private val apiService: OnboardApiService) {
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import com.woka.onboard.models.RegisterResponse
|
|||||||
import com.woka.onboard.models.VerifyEmail
|
import com.woka.onboard.models.VerifyEmail
|
||||||
import com.woka.utils.Gender
|
import com.woka.utils.Gender
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
|
|
||||||
@@ -238,7 +237,7 @@ class OnboardViewModel: ViewModel(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// otp count down timer
|
// otp count down timer
|
||||||
private val OTP_RESEND_COUNT_DOWN_TIME = 10 * 60 * 1000L // 10 min
|
private val otpCountDownTime = 10 * 60 * 1000L // 10 min
|
||||||
|
|
||||||
private var countDownTimer: CountDownTimer? = null
|
private var countDownTimer: CountDownTimer? = null
|
||||||
private var _otpResendTimeLiveData = MutableLiveData<Long>()
|
private var _otpResendTimeLiveData = MutableLiveData<Long>()
|
||||||
@@ -247,7 +246,7 @@ class OnboardViewModel: ViewModel(){
|
|||||||
|
|
||||||
fun startOTPTimeCountDown(){
|
fun startOTPTimeCountDown(){
|
||||||
countDownTimer?.cancel()
|
countDownTimer?.cancel()
|
||||||
countDownTimer = object : CountDownTimer(OTP_RESEND_COUNT_DOWN_TIME, 1000){
|
countDownTimer = object : CountDownTimer(otpCountDownTime, 1000){
|
||||||
override fun onTick(millisUntilFinished: Long) {
|
override fun onTick(millisUntilFinished: Long) {
|
||||||
_otpResendTimeLiveData.postValue(millisUntilFinished)
|
_otpResendTimeLiveData.postValue(millisUntilFinished)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,10 +60,10 @@ class OnboardActivity : WokaBaseActivity() {
|
|||||||
.setPopUpTo(R.id.onboardFragment, true)
|
.setPopUpTo(R.id.onboardFragment, true)
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
|
}else{
|
||||||
|
player = MediaPlayer.create(this, R.raw.audiotwo)
|
||||||
|
player?.isLooping = true
|
||||||
}
|
}
|
||||||
|
|
||||||
player = MediaPlayer.create(this, R.raw.audiotwo)
|
|
||||||
player?.isLooping = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ import android.net.ConnectivityManager.NetworkCallback
|
|||||||
import android.net.Network
|
import android.net.Network
|
||||||
import android.net.NetworkRequest
|
import android.net.NetworkRequest
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
|
||||||
import android.os.Looper
|
|
||||||
import android.util.Log
|
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
@@ -15,7 +12,6 @@ import androidx.core.view.ViewCompat
|
|||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import com.jwplayer.pub.api.JWPlayer
|
import com.jwplayer.pub.api.JWPlayer
|
||||||
import com.jwplayer.pub.api.PlayReason
|
|
||||||
import com.jwplayer.pub.api.configuration.PlayerConfig
|
import com.jwplayer.pub.api.configuration.PlayerConfig
|
||||||
import com.jwplayer.pub.api.events.EventType
|
import com.jwplayer.pub.api.events.EventType
|
||||||
import com.jwplayer.pub.api.events.listeners.VideoPlayerEvents
|
import com.jwplayer.pub.api.events.listeners.VideoPlayerEvents
|
||||||
@@ -24,7 +20,6 @@ import com.jwplayer.pub.api.media.playlists.PlaylistItem
|
|||||||
import com.woka.databinding.ActivityLiveStreamPlayerBinding
|
import com.woka.databinding.ActivityLiveStreamPlayerBinding
|
||||||
import com.woka.players.KeepScreenOnHandler
|
import com.woka.players.KeepScreenOnHandler
|
||||||
import com.woka.players.models.PlayBackState
|
import com.woka.players.models.PlayBackState
|
||||||
import com.woka.utils.TAG
|
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ class PlayerActivity : AppCompatActivity(), FullscreenHandler {
|
|||||||
WindowCompat.getInsetsController(window, window.decorView)
|
WindowCompat.getInsetsController(window, window.decorView)
|
||||||
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
|
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
videoPlayList = intent.getParcelableExtra(EXTRA_PLAY_LIST)
|
videoPlayList = intent.getParcelableExtra(EXTRA_PLAY_LIST)
|
||||||
playingIndex = intent.getIntExtra(EXTRA_PLAY_INDEX, 0)
|
playingIndex = intent.getIntExtra(EXTRA_PLAY_INDEX, 0)
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import com.woka.onboard.views.OnboardActivity
|
|||||||
import com.woka.userdata.UserRepository
|
import com.woka.userdata.UserRepository
|
||||||
import com.woka.userdata.userDataModels.UserData
|
import com.woka.userdata.userDataModels.UserData
|
||||||
import com.woka.userdata.userDataModels.UserDataResponse
|
import com.woka.userdata.userDataModels.UserDataResponse
|
||||||
import com.woka.webseries.WebSeriesRepository
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
package com.woka.userdata
|
package com.woka.userdata
|
||||||
|
|
||||||
import com.woka.audiobooks.models.continuedata.ContinueAudioResponse
|
|
||||||
import com.woka.home.mylist.models.MyListResponse
|
import com.woka.home.mylist.models.MyListResponse
|
||||||
import com.woka.home.notifications.models.NotificationData
|
import com.woka.home.notifications.models.NotificationData
|
||||||
import com.woka.userdata.userDataModels.UserDataResponse
|
|
||||||
import com.woka.networking.ApiResponse
|
import com.woka.networking.ApiResponse
|
||||||
import com.woka.webseries.models.ContinueEpisodeResponse
|
import com.woka.userdata.userDataModels.UserDataResponse
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import com.bumptech.glide.load.engine.GlideException
|
|||||||
import com.bumptech.glide.request.RequestListener
|
import com.bumptech.glide.request.RequestListener
|
||||||
import com.bumptech.glide.request.target.Target
|
import com.bumptech.glide.request.target.Target
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import kotlin.reflect.KFunction
|
|
||||||
|
|
||||||
class AdiImageView: FrameLayout {
|
class AdiImageView: FrameLayout {
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import android.content.Context
|
|||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import android.util.Log
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.View.GONE
|
import android.view.View.GONE
|
||||||
import android.view.View.VISIBLE
|
import android.view.View.VISIBLE
|
||||||
@@ -19,8 +18,6 @@ import androidx.fragment.app.Fragment
|
|||||||
import com.woka.WokaApp.Companion.userPrefs
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import kotlin.math.ceil
|
import kotlin.math.ceil
|
||||||
import kotlin.math.round
|
|
||||||
import kotlin.math.roundToLong
|
|
||||||
|
|
||||||
fun Window.lightStatusBar(lightStatus: Boolean = false){
|
fun Window.lightStatusBar(lightStatus: Boolean = false){
|
||||||
WindowCompat.getInsetsController(this, decorView).isAppearanceLightStatusBars = lightStatus
|
WindowCompat.getInsetsController(this, decorView).isAppearanceLightStatusBars = lightStatus
|
||||||
@@ -52,6 +49,8 @@ fun View.setVisibility(show: Boolean){
|
|||||||
else hide()
|
else hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
fun Context.changeLocale(language: String){
|
fun Context.changeLocale(language: String){
|
||||||
val locale = Locale(language)
|
val locale = Locale(language)
|
||||||
Locale.setDefault(locale)
|
Locale.setDefault(locale)
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ class NoSignInDialog(context: Context) {
|
|||||||
|
|
||||||
dialog = Dialog(context)
|
dialog = Dialog(context)
|
||||||
dialog.setContentView(binding.getRoot())
|
dialog.setContentView(binding.getRoot())
|
||||||
dialog.setCancelable(false)
|
|
||||||
|
|
||||||
binding.signIm.setOnClickListener {
|
binding.signIm.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
@@ -33,6 +32,8 @@ class NoSignInDialog(context: Context) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.closeBtn.setOnClickListener { dismiss() }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val back = ColorDrawable(Color.TRANSPARENT)
|
val back = ColorDrawable(Color.TRANSPARENT)
|
||||||
val inset = InsetDrawable(back, 50)
|
val inset = InsetDrawable(back, 50)
|
||||||
@@ -61,12 +62,6 @@ class NoSignInDialog(context: Context) {
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun closeListener(click: () -> Unit){
|
|
||||||
binding.closeBtn.setOnClickListener {
|
|
||||||
click()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun show() = dialog.show()
|
fun show() = dialog.show()
|
||||||
|
|
||||||
fun dismiss() = dialog.dismiss()
|
fun dismiss() = dialog.dismiss()
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import com.woka.R
|
|||||||
|
|
||||||
class PressableCard : FrameLayout {
|
class PressableCard : FrameLayout {
|
||||||
|
|
||||||
enum class PressableType(value: Int){
|
enum class PressableType {
|
||||||
SCALE(0), FADE(1);
|
SCALE, FADE;
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(context: Context?) : super(context!!)
|
constructor(context: Context?) : super(context!!)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
package com.woka.utils
|
|
||||||
@@ -2,9 +2,7 @@ package com.woka.utils
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.os.Bundle
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.WindowCompat
|
|
||||||
import com.woka.WokaApp.Companion.userPrefs
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,9 @@ import androidx.recyclerview.widget.AsyncDifferConfig
|
|||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||||
import com.bumptech.glide.Glide
|
|
||||||
import com.woka.WokaApp.Companion.userPrefs
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import com.woka.databinding.ContinueShowViewHolderBinding
|
import com.woka.databinding.ContinueShowViewHolderBinding
|
||||||
import com.woka.webseries.models.ContinueEpisodeData
|
import com.woka.webseries.models.ContinueEpisodeData
|
||||||
import com.woka.webseries.models.ShowData
|
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
class ContinueEpisodeAdapter(val context: Context,
|
class ContinueEpisodeAdapter(val context: Context,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.woka.webseries.adapters;
|
package com.woka.webseries.adapters
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import com.woka.modules.categorymodels.Category
|
|||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
|
|
||||||
class SpinnerAdapter(context: Context, private val list: List<Category>, ): ArrayAdapter<Category>(context, 0, list){
|
class SpinnerAdapter(context: Context, private val list: List<Category>): ArrayAdapter<Category>(context, 0, list){
|
||||||
|
|
||||||
var currentSelection: Int = 0
|
var currentSelection: Int = 0
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.woka.webseries.adapters;
|
package com.woka.webseries.adapters
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
|||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.WokaApp.Companion.userPrefs
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import com.woka.databinding.ShowViewHolderBinding
|
import com.woka.databinding.ShowViewHolderBinding
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
import com.woka.utils.isNetworkConnected
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
import com.woka.utils.toast
|
||||||
@@ -19,7 +20,8 @@ import kotlin.math.max
|
|||||||
class WebSeriesShowAdapter(
|
class WebSeriesShowAdapter(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
private var onShowClicked: (ShowData, String) -> Unit,
|
private var onShowClicked: (ShowData, String) -> Unit,
|
||||||
private var onShowCommonDataChange: ((ShowData, String) -> Unit)? = null
|
private var onShowCommonDataChange: ((ShowData, String) -> Unit)? = null,
|
||||||
|
private val noSignInListener: () -> Unit
|
||||||
): RecyclerView.Adapter<WebSeriesShowAdapter.ShowViewHolder>() {
|
): RecyclerView.Adapter<WebSeriesShowAdapter.ShowViewHolder>() {
|
||||||
|
|
||||||
inner class ShowViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
inner class ShowViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
||||||
@@ -85,6 +87,11 @@ class WebSeriesShowAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
WebSeriesRepository.likeUnLikeShow("${showData.id}", !like.isSelected)
|
WebSeriesRepository.likeUnLikeShow("${showData.id}", !like.isSelected)
|
||||||
|
|
||||||
showData.likes_count?.let {
|
showData.likes_count?.let {
|
||||||
@@ -117,6 +124,11 @@ class WebSeriesShowAdapter(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
categoryId?.let {
|
categoryId?.let {
|
||||||
WebSeriesRepository.updateFavShow(
|
WebSeriesRepository.updateFavShow(
|
||||||
showData,
|
showData,
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
package com.woka.webseries.views.fragments
|
|
||||||
|
|
||||||
import com.woka.webseries.models.ShowData
|
|
||||||
import java.io.Serializable
|
|
||||||
|
|
||||||
interface ShowChangeInterface: Serializable {
|
|
||||||
fun onShowDataChanged(showData: ShowData, categoryId: String)
|
|
||||||
}
|
|
||||||
@@ -29,6 +29,7 @@ import com.woka.players.views.PlayerActivity
|
|||||||
import com.woka.players.views.PlayerActivity.Companion.EXTRA_PLAY_INDEX
|
import com.woka.players.views.PlayerActivity.Companion.EXTRA_PLAY_INDEX
|
||||||
import com.woka.players.views.PlayerActivity.Companion.EXTRA_PLAY_LIST
|
import com.woka.players.views.PlayerActivity.Companion.EXTRA_PLAY_LIST
|
||||||
import com.woka.userPreference.UserType
|
import com.woka.userPreference.UserType
|
||||||
|
import com.woka.utils.NoSignInDialog
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
import com.woka.utils.lightStatusBar
|
import com.woka.utils.lightStatusBar
|
||||||
import com.woka.utils.setVisibility
|
import com.woka.utils.setVisibility
|
||||||
@@ -56,6 +57,8 @@ class WebSeriesFragment private constructor(): Fragment() {
|
|||||||
|
|
||||||
private var loadingMore = false
|
private var loadingMore = false
|
||||||
|
|
||||||
|
private lateinit var noSignInDialog: NoSignInDialog
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun newInstance() = WebSeriesFragment()
|
fun newInstance() = WebSeriesFragment()
|
||||||
}
|
}
|
||||||
@@ -77,6 +80,8 @@ class WebSeriesFragment private constructor(): Fragment() {
|
|||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
|
noSignInDialog = NoSignInDialog(requireContext())
|
||||||
|
|
||||||
initViews()
|
initViews()
|
||||||
|
|
||||||
initEpisodeDialog()
|
initEpisodeDialog()
|
||||||
@@ -115,7 +120,9 @@ class WebSeriesFragment private constructor(): Fragment() {
|
|||||||
|
|
||||||
// adapters
|
// adapters
|
||||||
activity?.let {
|
activity?.let {
|
||||||
showAdapter = WebSeriesShowAdapter(it, ::onShowClicked, ::onShowCommonDataChange)
|
showAdapter = WebSeriesShowAdapter(it, ::onShowClicked, ::onShowCommonDataChange){
|
||||||
|
noSignInDialog.show()
|
||||||
|
}
|
||||||
continueWatchAdapter = ContinueEpisodeAdapter(it)
|
continueWatchAdapter = ContinueEpisodeAdapter(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import com.woka.databinding.FragmentWebShowBinding
|
|||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
import com.woka.players.models.VideoPlayList
|
import com.woka.players.models.VideoPlayList
|
||||||
import com.woka.players.views.PlayerActivity
|
import com.woka.players.views.PlayerActivity
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
|
import com.woka.utils.NoSignInDialog
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
import com.woka.utils.isNetworkConnected
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.lightStatusBar
|
import com.woka.utils.lightStatusBar
|
||||||
@@ -72,6 +74,8 @@ class WebShowFragment private constructor(
|
|||||||
private var loadMoreEpisodes = false
|
private var loadMoreEpisodes = false
|
||||||
private var showDataChanged: Boolean = false
|
private var showDataChanged: Boolean = false
|
||||||
|
|
||||||
|
private lateinit var noSignInDialog: NoSignInDialog
|
||||||
|
|
||||||
override fun onAttach(context: Context) {
|
override fun onAttach(context: Context) {
|
||||||
super.onAttach(context)
|
super.onAttach(context)
|
||||||
episodeAdapter = EpisodeAdapter(context)
|
episodeAdapter = EpisodeAdapter(context)
|
||||||
@@ -96,6 +100,9 @@ class WebShowFragment private constructor(
|
|||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
|
noSignInDialog = NoSignInDialog(requireContext())
|
||||||
|
|
||||||
initViews()
|
initViews()
|
||||||
|
|
||||||
initEpisodeDialog()
|
initEpisodeDialog()
|
||||||
@@ -173,6 +180,11 @@ class WebShowFragment private constructor(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
WebSeriesRepository.likeUnLikeShow("${showData.id}", showData.is_liked == false)
|
WebSeriesRepository.likeUnLikeShow("${showData.id}", showData.is_liked == false)
|
||||||
|
|
||||||
showData.likes_count?.let {
|
showData.likes_count?.let {
|
||||||
@@ -202,6 +214,11 @@ class WebShowFragment private constructor(
|
|||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
WebSeriesRepository.updateFavShow(
|
WebSeriesRepository.updateFavShow(
|
||||||
showData,
|
showData,
|
||||||
!showData.isBookMarked(categoryId),
|
!showData.isBookMarked(categoryId),
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ import androidx.recyclerview.widget.DiffUtil
|
|||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.WokaApp
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import com.woka.databinding.ShowViewHolderBinding
|
import com.woka.databinding.ShowViewHolderBinding
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
import com.woka.utils.isNetworkConnected
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
import com.woka.utils.toast
|
import com.woka.utils.toast
|
||||||
@@ -18,14 +19,19 @@ import com.woka.wokagames.models.listing.GameData
|
|||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
|
||||||
class GamesAdapter(var context: Context,
|
class GamesAdapter(
|
||||||
private var onGameClicked: (GameData) -> Unit): ListAdapter<GameData, GamesAdapter.GameViewHolder>(
|
var context: Context,
|
||||||
ASYNC_DIFF_UTIL) {
|
private var onGameClicked: (GameData) -> Unit,
|
||||||
inner class GameViewHolder(var binding: ShowViewHolderBinding): ViewHolder(binding.root)
|
private val noSignInListener: () -> Unit
|
||||||
|
) : ListAdapter<GameData, GamesAdapter.GameViewHolder>(
|
||||||
|
ASYNC_DIFF_UTIL
|
||||||
|
) {
|
||||||
|
inner class GameViewHolder(var binding: ShowViewHolderBinding) : ViewHolder(binding.root)
|
||||||
|
|
||||||
companion object{
|
companion object {
|
||||||
val DIFF_UTIL = object : DiffUtil.ItemCallback<GameData>(){
|
val DIFF_UTIL = object : DiffUtil.ItemCallback<GameData>() {
|
||||||
override fun areItemsTheSame(oldItem: GameData, newItem: GameData): Boolean = oldItem.id == newItem.id
|
override fun areItemsTheSame(oldItem: GameData, newItem: GameData): Boolean =
|
||||||
|
oldItem.id == newItem.id
|
||||||
|
|
||||||
override fun areContentsTheSame(oldItem: GameData, newItem: GameData): Boolean {
|
override fun areContentsTheSame(oldItem: GameData, newItem: GameData): Boolean {
|
||||||
return oldItem.thumbnail_path == newItem.thumbnail_path &&
|
return oldItem.thumbnail_path == newItem.thumbnail_path &&
|
||||||
@@ -59,14 +65,14 @@ class GamesAdapter(var context: Context,
|
|||||||
image.loadImage(it)
|
image.loadImage(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
gameData.content_more_details?.let {moreDetailsList ->
|
gameData.content_more_details?.let { moreDetailsList ->
|
||||||
title.text = if (moreDetailsList.isNotEmpty()){
|
title.text = if (moreDetailsList.isNotEmpty()) {
|
||||||
if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1){
|
if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) {
|
||||||
moreDetailsList[1]?.title
|
moreDetailsList[1]?.title
|
||||||
}else{
|
} else {
|
||||||
moreDetailsList[0]?.title
|
moreDetailsList[0]?.title
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
gameData.title
|
gameData.title
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -84,21 +90,26 @@ class GamesAdapter(var context: Context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
like.setOnClickListener {
|
like.setOnClickListener {
|
||||||
if (!context.isNetworkConnected()){
|
if (!context.isNetworkConnected()) {
|
||||||
context.toast(context.getString(R.string.no_internet))
|
context.toast(context.getString(R.string.no_internet))
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) {
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
GamesRepository.likeUnLikeGame(
|
GamesRepository.likeUnLikeGame(
|
||||||
"${gameData.id}",
|
"${gameData.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
)
|
)
|
||||||
|
|
||||||
gameData.likes_count?.let {
|
gameData.likes_count?.let {
|
||||||
gameData.likes_count = if (like.isSelected){
|
gameData.likes_count = if (like.isSelected) {
|
||||||
// unlike
|
// unlike
|
||||||
max(0, it - 1)
|
max(0, it - 1)
|
||||||
}else{
|
} else {
|
||||||
// like
|
// like
|
||||||
it + 1
|
it + 1
|
||||||
}
|
}
|
||||||
@@ -113,11 +124,16 @@ class GamesAdapter(var context: Context,
|
|||||||
fav.isSelected = gameData.mark_as_favourite == true
|
fav.isSelected = gameData.mark_as_favourite == true
|
||||||
|
|
||||||
fav.setOnClickListener {
|
fav.setOnClickListener {
|
||||||
if (!context.isNetworkConnected()){
|
if (!context.isNetworkConnected()) {
|
||||||
context.toast(context.getString(R.string.no_internet))
|
context.toast(context.getString(R.string.no_internet))
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) {
|
||||||
|
noSignInListener()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
GamesRepository.updateFavShow(
|
GamesRepository.updateFavShow(
|
||||||
gameData,
|
gameData,
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.woka.wokagames.playerr
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
import android.graphics.Color
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
@@ -14,7 +13,6 @@ import com.woka.R
|
|||||||
import com.woka.databinding.ActivityGamePlayerBinding
|
import com.woka.databinding.ActivityGamePlayerBinding
|
||||||
import com.woka.utils.DecisionDialog
|
import com.woka.utils.DecisionDialog
|
||||||
import com.woka.utils.WokaBaseActivity
|
import com.woka.utils.WokaBaseActivity
|
||||||
import com.woka.utils.lightStatusBar
|
|
||||||
|
|
||||||
class GamePlayerActivity : WokaBaseActivity() {
|
class GamePlayerActivity : WokaBaseActivity() {
|
||||||
|
|
||||||
@@ -41,6 +39,7 @@ class GamePlayerActivity : WokaBaseActivity() {
|
|||||||
message = getString(R.string.back_warning_text)
|
message = getString(R.string.back_warning_text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
intent.getParcelableExtra<GamePlayerData?>(EXTRA_GAME_PLAYER_DATA)?.let {
|
intent.getParcelableExtra<GamePlayerData?>(EXTRA_GAME_PLAYER_DATA)?.let {
|
||||||
gamePlayerData = it
|
gamePlayerData = it
|
||||||
requestedOrientation = if (it.landscape){
|
requestedOrientation = if (it.landscape){
|
||||||
@@ -82,12 +81,12 @@ class GamePlayerActivity : WokaBaseActivity() {
|
|||||||
val webSettings: WebSettings = binding.webView.getSettings()
|
val webSettings: WebSettings = binding.webView.getSettings()
|
||||||
webSettings.javaScriptEnabled = true
|
webSettings.javaScriptEnabled = true
|
||||||
|
|
||||||
webSettings.allowFileAccess = false;
|
webSettings.allowFileAccess = false
|
||||||
webSettings.allowContentAccess = false;
|
webSettings.allowContentAccess = false
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
webSettings.safeBrowsingEnabled = true
|
webSettings.safeBrowsingEnabled = true
|
||||||
};
|
}
|
||||||
|
|
||||||
binding.webView.setWebViewClient(WebViewClient())
|
binding.webView.setWebViewClient(WebViewClient())
|
||||||
|
|
||||||
@@ -97,6 +96,7 @@ class GamePlayerActivity : WokaBaseActivity() {
|
|||||||
@Deprecated("Deprecated in Java")
|
@Deprecated("Deprecated in Java")
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
decisionDialog.setPositiveButton(getString(R.string.ok_caps)){
|
decisionDialog.setPositiveButton(getString(R.string.ok_caps)){
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
}
|
}
|
||||||
decisionDialog.setNegativeButton(getString(R.string.cancel_caps)){
|
decisionDialog.setNegativeButton(getString(R.string.cancel_caps)){
|
||||||
|
|||||||
@@ -16,14 +16,18 @@ import androidx.lifecycle.ViewModelProvider
|
|||||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||||
import com.google.android.material.appbar.CollapsingToolbarLayout
|
import com.google.android.material.appbar.CollapsingToolbarLayout
|
||||||
import com.woka.R
|
import com.woka.R
|
||||||
import com.woka.WokaApp
|
import com.woka.WokaApp.Companion.userPrefs
|
||||||
import com.woka.databinding.ActivityGamesBinding
|
import com.woka.databinding.ActivityGamesBinding
|
||||||
import com.woka.databinding.DialogModuleShowerBinding
|
import com.woka.databinding.DialogModuleShowerBinding
|
||||||
import com.woka.networking.ApiResult
|
import com.woka.networking.ApiResult
|
||||||
|
import com.woka.userPreference.UserType
|
||||||
|
import com.woka.utils.NoSignInDialog
|
||||||
import com.woka.utils.WokaBaseActivity
|
import com.woka.utils.WokaBaseActivity
|
||||||
import com.woka.utils.hide
|
import com.woka.utils.hide
|
||||||
|
import com.woka.utils.isNetworkConnected
|
||||||
import com.woka.utils.setVisibility
|
import com.woka.utils.setVisibility
|
||||||
import com.woka.utils.show
|
import com.woka.utils.show
|
||||||
|
import com.woka.utils.toast
|
||||||
import com.woka.wokagames.GamesRepository
|
import com.woka.wokagames.GamesRepository
|
||||||
import com.woka.wokagames.adapters.GamesAdapter
|
import com.woka.wokagames.adapters.GamesAdapter
|
||||||
import com.woka.wokagames.models.listing.GameData
|
import com.woka.wokagames.models.listing.GameData
|
||||||
@@ -46,6 +50,8 @@ class GamesActivity : WokaBaseActivity() {
|
|||||||
private lateinit var dialogBinding: DialogModuleShowerBinding
|
private lateinit var dialogBinding: DialogModuleShowerBinding
|
||||||
private lateinit var gameDialog: Dialog
|
private lateinit var gameDialog: Dialog
|
||||||
|
|
||||||
|
private lateinit var noSignInDialog: NoSignInDialog
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityGamesBinding.inflate(layoutInflater)
|
binding = ActivityGamesBinding.inflate(layoutInflater)
|
||||||
@@ -63,12 +69,16 @@ class GamesActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
viewModel = ViewModelProvider(this)[GamesViewModel::class.java]
|
viewModel = ViewModelProvider(this)[GamesViewModel::class.java]
|
||||||
|
|
||||||
gameAdapter = GamesAdapter(this, ::onGameClicked)
|
|
||||||
|
|
||||||
dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater)
|
dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater)
|
||||||
gameDialog = Dialog(this)
|
gameDialog = Dialog(this)
|
||||||
gameDialog.setContentView(dialogBinding.root)
|
gameDialog.setContentView(dialogBinding.root)
|
||||||
|
|
||||||
|
noSignInDialog = NoSignInDialog(this)
|
||||||
|
|
||||||
|
gameAdapter = GamesAdapter(this, ::onGameClicked){
|
||||||
|
noSignInDialog.show()
|
||||||
|
}
|
||||||
|
|
||||||
initViews()
|
initViews()
|
||||||
|
|
||||||
initGameDialog()
|
initGameDialog()
|
||||||
@@ -149,7 +159,7 @@ class GamesActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
gameData.content_more_details?.let { moreDetailsList ->
|
gameData.content_more_details?.let { moreDetailsList ->
|
||||||
trailerName.text = if (moreDetailsList.isNotEmpty()) {
|
trailerName.text = if (moreDetailsList.isNotEmpty()) {
|
||||||
if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) {
|
if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) {
|
||||||
moreDetailsList[1]?.title
|
moreDetailsList[1]?.title
|
||||||
} else {
|
} else {
|
||||||
moreDetailsList[0]?.title
|
moreDetailsList[0]?.title
|
||||||
@@ -207,7 +217,7 @@ class GamesActivity : WokaBaseActivity() {
|
|||||||
|
|
||||||
if (moreDetailsList.isNotEmpty()) {
|
if (moreDetailsList.isNotEmpty()) {
|
||||||
|
|
||||||
if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) {
|
if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) {
|
||||||
moreDetailsList[1]?.let { data ->
|
moreDetailsList[1]?.let { data ->
|
||||||
title.text = data.title
|
title.text = data.title
|
||||||
description.text = Html.fromHtml(
|
description.text = Html.fromHtml(
|
||||||
@@ -247,6 +257,16 @@ class GamesActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
like.setOnClickListener {
|
like.setOnClickListener {
|
||||||
|
if (!isNetworkConnected()){
|
||||||
|
toast(getString(R.string.no_internet))
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
GamesRepository.likeUnLikeGame(
|
GamesRepository.likeUnLikeGame(
|
||||||
"${gameData.id}",
|
"${gameData.id}",
|
||||||
!like.isSelected
|
!like.isSelected
|
||||||
@@ -272,6 +292,16 @@ class GamesActivity : WokaBaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fav.setOnClickListener {
|
fav.setOnClickListener {
|
||||||
|
if (!isNetworkConnected()){
|
||||||
|
toast(getString(R.string.no_internet))
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){
|
||||||
|
noSignInDialog.show()
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
|
||||||
GamesRepository.updateFavShow(
|
GamesRepository.updateFavShow(
|
||||||
gameData,
|
gameData,
|
||||||
!fav.isSelected
|
!fav.isSelected
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/main"
|
android:id="@+id/main"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
@@ -10,21 +10,20 @@
|
|||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:src="@drawable/img_more_bg"
|
|
||||||
android:contentDescription="@string/image"
|
android:contentDescription="@string/image"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
/>
|
android:src="@drawable/img_more_bg" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
|
||||||
android:translationZ="1dp"
|
|
||||||
|
|
||||||
android:layout_marginTop="@dimen/_30sdp"
|
android:layout_marginTop="@dimen/_30sdp"
|
||||||
|
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:orientation="vertical">
|
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:translationZ="1dp">
|
||||||
|
|
||||||
<com.woka.utils.PressableImageView
|
<com.woka.utils.PressableImageView
|
||||||
android:id="@+id/more"
|
android:id="@+id/more"
|
||||||
@@ -53,31 +52,30 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
android:text="@string/coming_soonn_on_woka"
|
android:layout_marginHorizontal="15dp"
|
||||||
android:fontFamily="@font/exo_2_bold"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/_13ssp"
|
|
||||||
|
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
|
android:fontFamily="@font/exo_2_bold"
|
||||||
|
|
||||||
android:layout_marginHorizontal="15dp"
|
android:text="@string/coming_soonn_on_woka"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
|
||||||
|
android:textSize="@dimen/_13ssp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<androidx.cardview.widget.CardView
|
||||||
android:visibility="gone"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="15dp"
|
||||||
app:cardBackgroundColor="@color/white"
|
|
||||||
app:cardCornerRadius="5dp"
|
|
||||||
|
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
|
||||||
android:layout_marginHorizontal="15dp"
|
app:cardBackgroundColor="@color/white"
|
||||||
>
|
|
||||||
|
app:cardCornerRadius="5dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -88,35 +86,32 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/_100sdp"
|
android:layout_height="@dimen/_100sdp"
|
||||||
android:layout_marginHorizontal="15dp"
|
android:layout_marginHorizontal="15dp"
|
||||||
android:layout_marginTop="15dp"
|
android:layout_marginTop="15dp">
|
||||||
>
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:src="@drawable/img_masila_tn_small"
|
|
||||||
android:contentDescription="@string/masila"
|
android:contentDescription="@string/masila"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
/>
|
android:src="@drawable/img_masila_tn_small" />
|
||||||
|
|
||||||
<com.woka.utils.PressableCard
|
<com.woka.utils.PressableCard
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/round_25"
|
|
||||||
android:backgroundTint="@color/color_primary"
|
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
>
|
android:background="@drawable/round_25"
|
||||||
|
android:backgroundTint="@color/color_primary">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
android:text="@string/play_trailer"
|
|
||||||
android:fontFamily="@font/exo_2_bold"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
|
|
||||||
android:layout_marginHorizontal="15dp"
|
android:layout_marginHorizontal="15dp"
|
||||||
android:layout_marginVertical="10dp"
|
android:layout_marginVertical="10dp"
|
||||||
|
android:fontFamily="@font/exo_2_bold"
|
||||||
|
|
||||||
|
android:text="@string/play_trailer"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -128,14 +123,14 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
android:text="@string/masila"
|
android:layout_marginVertical="10dp"
|
||||||
|
android:layout_marginStart="15dp"
|
||||||
android:fontFamily="@font/exo_2_bold"
|
android:fontFamily="@font/exo_2_bold"
|
||||||
|
android:text="@string/masila"
|
||||||
|
|
||||||
android:textColor="@color/color_primary"
|
android:textColor="@color/color_primary"
|
||||||
android:textSize="@dimen/_12ssp"
|
android:textSize="@dimen/_12ssp"
|
||||||
|
|
||||||
android:layout_marginStart="15dp"
|
|
||||||
android:layout_marginVertical="10dp"
|
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -147,54 +142,106 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
android:text="@string/blogs"
|
android:layout_marginHorizontal="15dp"
|
||||||
android:fontFamily="@font/exo_2_bold"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/_13ssp"
|
|
||||||
|
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
|
android:fontFamily="@font/exo_2_bold"
|
||||||
|
|
||||||
android:layout_marginHorizontal="15dp"
|
android:text="@string/blogs"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
|
||||||
|
android:textSize="@dimen/_13ssp"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<com.facebook.shimmer.ShimmerFrameLayout
|
||||||
|
android:id="@+id/blogs_shimmer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:shimmer_auto_start="true"
|
||||||
|
app:shimmer_duration="1500"
|
||||||
|
app:shimmer_highlight_alpha="0.5">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginVertical="5dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<include layout="@layout/blog_view_holder" />
|
||||||
|
|
||||||
|
<include layout="@layout/blog_view_holder" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_blogs"
|
android:id="@+id/rv_blogs"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
tools:listitem="@layout/blog_view_holder"
|
|
||||||
android:layout_marginVertical="5dp"
|
android:layout_marginVertical="5dp"
|
||||||
/>
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:listitem="@layout/blog_view_holder" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/woka_songs_txt"
|
android:id="@+id/woka_songs_txt"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
android:text="@string/woka_songs"
|
android:layout_marginHorizontal="15dp"
|
||||||
android:fontFamily="@font/exo_2_bold"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/_13ssp"
|
|
||||||
|
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
|
android:fontFamily="@font/exo_2_bold"
|
||||||
|
|
||||||
android:layout_marginHorizontal="15dp"
|
android:text="@string/woka_songs"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
|
||||||
|
android:textSize="@dimen/_13ssp"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<com.facebook.shimmer.ShimmerFrameLayout
|
||||||
|
android:id="@+id/songs_shimmer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:shimmer_auto_start="true"
|
||||||
|
app:shimmer_duration="1500"
|
||||||
|
app:shimmer_highlight_alpha="0.5">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginVertical="5dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<include layout="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
|
<include layout="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
|
<include layout="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
|
<include layout="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
|
<include layout="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
|
<include layout="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_woka_songs"
|
android:id="@+id/rv_woka_songs"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
|
||||||
android:orientation="vertical"
|
|
||||||
tools:listitem="@layout/woka_song_view_holder"
|
|
||||||
android:layout_marginVertical="5dp"
|
android:layout_marginVertical="5dp"
|
||||||
/>
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:listitem="@layout/woka_song_view_holder" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
||||||
tools:text="Sabak Degi Naani: The Lessons of a Wise Grandmother and this is extr"
|
|
||||||
android:fontFamily="@font/exo_2_bold"
|
android:fontFamily="@font/exo_2_bold"
|
||||||
android:textColor="@color/color_primary"
|
android:textColor="@color/color_primary"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
|
|||||||
@@ -73,8 +73,7 @@
|
|||||||
|
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"/>
|
||||||
tools:text="AA ZARA" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll"
|
android:id="@+id/ll"
|
||||||
|
|||||||
Reference in New Issue
Block a user