diff --git a/app/src/main/java/com/woka/WokaApp.kt b/app/src/main/java/com/woka/WokaApp.kt index 0c4c666..434732a 100644 --- a/app/src/main/java/com/woka/WokaApp.kt +++ b/app/src/main/java/com/woka/WokaApp.kt @@ -1,11 +1,13 @@ package com.woka +import android.annotation.SuppressLint import android.app.Application import com.woka.userPreference.UserPreference class WokaApp: Application() { companion object{ + @SuppressLint("StaticFieldLeak") var userPrefs: UserPreference? = null } diff --git a/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt b/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt index c3ccc7d..014f334 100644 --- a/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt +++ b/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt @@ -12,6 +12,7 @@ import com.woka.WokaApp.Companion.userPrefs import com.woka.audiobooks.AudioBookRepository import com.woka.audiobooks.models.audiodata.AudioBookData import com.woka.databinding.ShowViewHolderBinding +import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected import com.woka.utils.show import com.woka.utils.toast @@ -21,7 +22,8 @@ import kotlin.math.max class AudioBooksAdapter( private val context: Context, private var onBookClicked: (AudioBookData) -> Unit, - private var onBookChanged: (id: Int, AudioBookData) -> Unit + private var onBookChanged: (id: Int, AudioBookData) -> Unit, + private val noSignInListener: () -> Unit ): ListAdapter(ASYNC_DIFF_UTIL) { inner class AudioBookViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root) @@ -92,6 +94,11 @@ class AudioBooksAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + AudioBookRepository.likeUnLikeAudioBook( "${audioBook.id}", !like.isSelected @@ -125,6 +132,11 @@ class AudioBooksAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + AudioBookRepository.updateFavShow( audioBook, !fav.isSelected diff --git a/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt b/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt index 50cf1b4..828ecaa 100644 --- a/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt +++ b/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt @@ -29,10 +29,13 @@ import com.woka.networking.ApiResult import com.woka.players.models.VideoPlayList import com.woka.players.views.PlayerActivity import com.woka.userPreference.UserType +import com.woka.utils.NoSignInDialog import com.woka.utils.WokaBaseActivity import com.woka.utils.hide +import com.woka.utils.isNetworkConnected import com.woka.utils.setVisibility import com.woka.utils.show +import com.woka.utils.toast import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale @@ -49,6 +52,8 @@ class AudioBooksActivity : WokaBaseActivity() { private lateinit var dialogBinding: DialogModuleShowerBinding private lateinit var audioDialog: Dialog + private lateinit var noSignInDialog: NoSignInDialog + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -66,7 +71,9 @@ class AudioBooksActivity : WokaBaseActivity() { viewModel = ViewModelProvider(this)[AudioBookViewModel::class.java] - audioBookAdapter = AudioBooksAdapter(this, ::onBookClicked, ::onBookChanged) + audioBookAdapter = AudioBooksAdapter(this, ::onBookClicked, ::onBookChanged){ + noSignInDialog.show() + } continueAudioAdapter = ContinueAudioAdapter(this, ::onContinueBookClicked, ::onContinueBookChanged) @@ -74,6 +81,8 @@ class AudioBooksActivity : WokaBaseActivity() { audioDialog = Dialog(this) audioDialog.setContentView(dialogBinding.root) + noSignInDialog = NoSignInDialog(this) + initViews() initAudioDialog() @@ -411,6 +420,16 @@ class AudioBooksActivity : WokaBaseActivity() { } 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( "${audioBookData.id}", !like.isSelected @@ -437,6 +456,16 @@ class AudioBooksActivity : WokaBaseActivity() { } 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( audioBookData, !fav.isSelected diff --git a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt index 792b243..915a9af 100644 --- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -60,8 +60,6 @@ class Home1Fragment : Fragment(), Listener { viewModel = ViewModelProvider(it)[HomeViewModel::class.java] } - currentBackground = null - initViews() initPlayerView() @@ -442,16 +440,6 @@ class Home1Fragment : Fragment(), Listener { } companion object { - private var instance: Home1Fragment? = null - private val any = Any() - fun getInstance(): Home1Fragment{ - return synchronized(any){ - if (instance == null){ - instance = Home1Fragment() - } - - return@synchronized instance!! - } - } + fun getInstance() = Home1Fragment() } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt index f384111..11c5422 100644 --- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -2,25 +2,22 @@ package com.woka.home.fragments import android.content.Intent import android.os.Bundle -import android.util.Log -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp import com.woka.databinding.FragmentHome2Binding -import com.woka.home.views.FMActivity 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.players.views.LiveStreamPlayerActivity 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.show -import com.woka.utils.toast class Home2Fragment : Fragment() { diff --git a/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt b/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt index c33e819..3226be8 100644 --- a/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt +++ b/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt @@ -7,7 +7,7 @@ import androidx.recyclerview.widget.AsyncDifferConfig import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import com.woka.R -import com.woka.WokaApp +import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.FavViewHolderBinding import com.woka.home.mylist.models.BookmarkedShowData import com.woka.home.mylist.models.PostType @@ -18,15 +18,23 @@ import com.woka.webseries.WebSeriesRepository import com.woka.webseries.models.ShowData import java.util.concurrent.Executors -class WebSeriesAdapter(private val context: Context, - private val categoryId: String, - private val onListEmptyListener: ((postType: PostType, isEng: Boolean) -> Unit), - config: AsyncDifferConfig): ListAdapter(config) { +class WebSeriesAdapter( + private val context: Context, + private val categoryId: String, + private val onListEmptyListener: ((postType: PostType, isEng: Boolean) -> Unit) +) : ListAdapter(DIFF_CONFIG) { - companion object{ - private val DIFF_UTIL = object : DiffUtil.ItemCallback(){ - override fun areItemsTheSame(oldItem: BookmarkedShowData, newItem: BookmarkedShowData): Boolean = oldItem.id == newItem.id - override fun areContentsTheSame(oldItem: BookmarkedShowData, newItem: BookmarkedShowData): Boolean { + companion object { + private val DIFF_UTIL = object : DiffUtil.ItemCallback() { + override fun areItemsTheSame( + oldItem: BookmarkedShowData, + newItem: BookmarkedShowData + ): Boolean = oldItem.id == newItem.id + + override fun areContentsTheSame( + oldItem: BookmarkedShowData, + newItem: BookmarkedShowData + ): Boolean { return oldItem.title == newItem.title && oldItem.is_liked == newItem.is_liked && oldItem.likes_count == newItem.likes_count @@ -41,10 +49,6 @@ class WebSeriesAdapter(private val context: Context, var onShowClickListener: ((BookmarkedShowData, String) -> 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 { return FavoriteViewHolder( FavViewHolderBinding.inflate( @@ -63,14 +67,14 @@ class WebSeriesAdapter(private val context: Context, image.loadImage(it) } - showData.content_more_details?.let {moreDetailsList -> - title.text = if (moreDetailsList.isNotEmpty()){ - if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1){ + showData.content_more_details?.let { moreDetailsList -> + title.text = if (moreDetailsList.isNotEmpty()) { + if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) { moreDetailsList[1]?.title - }else{ + } else { moreDetailsList[0]?.title } - }else{ + } else { showData.title } } @@ -87,22 +91,15 @@ class WebSeriesAdapter(private val context: Context, } like.setOnClickListener { - if (!context.isNetworkConnected()){ + if (!context.isNetworkConnected()) { context.toast(context.getString(R.string.no_internet)) return@setOnClickListener } - if (like.isSelected){ - WebSeriesRepository.likeUnLikeShow( - "${showData.id}", - false - ) - }else{ - WebSeriesRepository.likeUnLikeShow( - "${showData.id}", - true - ) - } + WebSeriesRepository.likeUnLikeShow( + "${showData.id}", + !like.isSelected + ) like.isSelected = !like.isSelected likeCount.text = "${showData.likes_count}" @@ -115,36 +112,36 @@ class WebSeriesAdapter(private val context: Context, } fav.show() - if (showData.isBookMarked(categoryId)){ + if (showData.isBookMarked(categoryId)) { fav.isSelected = true - }else{ - val currentList = currentList.toMutableList() + } else { + val currentList = currentList.toMutableList() currentList.removeAt(holder.absoluteAdapterPosition) submitList(currentList) - if (currentList.isEmpty()){ + if (currentList.isEmpty()) { onListEmptyListener(PostType.WEB_SERIES, categoryId == "1") } } fav.setOnClickListener { - if (!context.isNetworkConnected()){ + if (!context.isNetworkConnected()) { context.toast(context.getString(R.string.no_internet)) return@setOnClickListener } - if (fav.isSelected){ + if (fav.isSelected) { WebSeriesRepository.updateFavShow( ShowData(showData), false, categoryId ) - val currentList = currentList.toMutableList() + val currentList = currentList.toMutableList() currentList.removeAt(holder.absoluteAdapterPosition) submitList(currentList) - if (currentList.isEmpty()){ + if (currentList.isEmpty()) { onListEmptyListener(PostType.WEB_SERIES, categoryId == "1") } } diff --git a/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt b/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt index 4109a0c..3f8fd70 100644 --- a/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt +++ b/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt @@ -1,6 +1,5 @@ package com.woka.home.notifications -import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.AsyncDifferConfig @@ -9,10 +8,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.databinding.NotificationViewHolderBinding import com.woka.home.notifications.models.NotificationData -import com.woka.utils.TAG import java.text.SimpleDateFormat -import java.time.LocalDate -import java.time.temporal.ChronoUnit import java.util.Calendar import java.util.Locale import java.util.concurrent.Executors @@ -50,6 +46,7 @@ class NotificationAdapter(config: AsyncDifferConfig): ListAdap ) } + @Suppress("DEPRECATION") override fun onBindViewHolder(holder: NotificationViewHolder, position: Int) { val notification = getItem(position) notification.created_at?.let { diff --git a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt index 8d8f5bb..cd4e5cd 100644 --- a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt +++ b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt @@ -1,18 +1,15 @@ package com.woka.home.notifications import android.os.Bundle -import android.util.Log import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.databinding.ActivityNotificationsBinding import com.woka.networking.ApiResult -import com.woka.utils.TAG import com.woka.utils.WokaBaseActivity import com.woka.utils.hide import com.woka.utils.show -import com.woka.utils.toast class NotificationsActivity : WokaBaseActivity() { diff --git a/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt b/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt index bba4eb8..516fcb8 100644 --- a/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt +++ b/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt @@ -178,7 +178,7 @@ class UserProfileActivity : WokaBaseActivity() { genderM.setCardBackgroundColor(Color.WHITE) genderM.cardElevation = 5f - genderF.setCardBackgroundColor(resources.getColor(R.color.white_50)) + genderF.setCardBackgroundColor(getColor(R.color.white_50)) genderF.cardElevation = 0f } @@ -186,15 +186,15 @@ class UserProfileActivity : WokaBaseActivity() { genderF.setCardBackgroundColor(Color.WHITE) genderF.cardElevation = 5f - genderM.setCardBackgroundColor(resources.getColor(R.color.white_50)) + genderM.setCardBackgroundColor(getColor(R.color.white_50)) genderM.cardElevation = 0f } Gender.NONE -> { - genderM.setCardBackgroundColor(resources.getColor(R.color.white_50)) + genderM.setCardBackgroundColor(getColor(R.color.white_50)) genderM.cardElevation = 0f - genderF.setCardBackgroundColor(resources.getColor(R.color.white_50)) + genderF.setCardBackgroundColor(getColor(R.color.white_50)) genderF.cardElevation = 0f } } diff --git a/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt b/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt index c66a72f..4d7bd01 100644 --- a/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt +++ b/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt @@ -1,21 +1,16 @@ package com.woka.home.viewmodels import android.content.Context -import android.net.Uri -import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import androidx.media3.common.MediaItem -import androidx.media3.common.PlaybackException import androidx.media3.common.Player -import androidx.media3.common.Player.Listener import androidx.media3.exoplayer.ExoPlayer import com.woka.home.views.BottomNavigation.Companion.HOME import com.woka.networking.ApiResult import com.woka.userdata.UserRepository -import com.woka.utils.TAG import kotlinx.coroutines.launch class HomeViewModel : ViewModel() { diff --git a/app/src/main/java/com/woka/home/views/FMActivity.kt b/app/src/main/java/com/woka/home/views/FMActivity.kt index f80586d..31c01ae 100644 --- a/app/src/main/java/com/woka/home/views/FMActivity.kt +++ b/app/src/main/java/com/woka/home/views/FMActivity.kt @@ -38,12 +38,12 @@ class FMActivity : WokaBaseActivity() { val webSettings: WebSettings = binding.webView.getSettings() webSettings.javaScriptEnabled = true - webSettings.allowFileAccess = false; - webSettings.allowContentAccess = false; + webSettings.allowFileAccess = false + webSettings.allowContentAccess = false if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { webSettings.safeBrowsingEnabled = true - }; + } binding.webView.setWebViewClient(WebViewClient()) diff --git a/app/src/main/java/com/woka/home/views/HomeActivity.kt b/app/src/main/java/com/woka/home/views/HomeActivity.kt index 82c0a9c..e9c21a5 100644 --- a/app/src/main/java/com/woka/home/views/HomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/HomeActivity.kt @@ -127,6 +127,7 @@ class HomeActivity : WokaBaseActivity(), } } + @Deprecated("Deprecated in Java") override fun onBackPressed() { if (binding.homeDrawer.isDrawerOpen(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.setPositiveButton(getString(R.string.yes)){ + @Suppress("DEPRECATION") super.onBackPressed() } @@ -228,7 +230,6 @@ class HomeActivity : WokaBaseActivity(), getString(R.string.login_register) }else{ // showing menu options - val type = userPrefs?.userType if (userPrefs?.userType == UserType.GUARDIAN){ sbAddChild.show() } diff --git a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt index a390a2e..b445ba4 100644 --- a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt @@ -15,7 +15,6 @@ import androidx.media3.common.MediaItem import androidx.recyclerview.widget.SimpleItemAnimator import com.bumptech.glide.Glide import com.woka.R -import com.woka.WokaApp import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ActivityMoreHomeBinding import com.woka.databinding.DialogBlogsBinding @@ -128,19 +127,27 @@ class MoreHomeActivity : WokaBaseActivity() { is ApiResult.Error -> { binding.blogsTxt.hide() binding.rvBlogs.hide() + binding.blogsShimmer.hide() } is ApiResult.Loading -> { - binding.blogsTxt.hide() + binding.blogsTxt.show() + binding.blogsShimmer.show() + binding.rvBlogs.hide() } is ApiResult.Success -> { it.data?.blogs?.let { blogList -> - binding.blogsTxt.show() - binding.rvBlogs.show() - - blogsAdapter.submitList(blogList) + blogsAdapter.submitList(blogList){ + binding.blogsShimmer.hide() + binding.blogsTxt.show() + binding.rvBlogs.show() + } + }?:{ + binding.blogsTxt.hide() + binding.rvBlogs.hide() + binding.blogsShimmer.hide() } } @@ -153,18 +160,19 @@ class MoreHomeActivity : WokaBaseActivity() { is ApiResult.Error -> { binding.wokaSongsTxt.hide() binding.rvWokaSongs.hide() + binding.songsShimmer.hide() } is ApiResult.Loading -> { - binding.wokaSongsTxt.hide() + binding.wokaSongsTxt.show() + binding.songsShimmer.show() + binding.rvWokaSongs.hide() } is ApiResult.Success -> { it.data?.paint_data?.let { songList -> - binding.wokaSongsTxt.show() - binding.rvWokaSongs.show() val mediaItems = mutableListOf() @@ -188,6 +196,14 @@ class MoreHomeActivity : WokaBaseActivity() { 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 descriptionTxt = it[0]?.article - if (it.size > 1 && WokaApp.userPrefs?.appLanguage == "hi"){ + if (it.size > 1 && userPrefs?.appLanguage == "hi"){ titleTxt = it[1]?.title descriptionTxt = it[1]?.article } diff --git a/app/src/main/java/com/woka/karaoke/adapters/ContinueKaraokeAdapter.kt b/app/src/main/java/com/woka/karaoke/adapters/ContinueKaraokeAdapter.kt index cca0bc7..71f20f2 100644 --- a/app/src/main/java/com/woka/karaoke/adapters/ContinueKaraokeAdapter.kt +++ b/app/src/main/java/com/woka/karaoke/adapters/ContinueKaraokeAdapter.kt @@ -13,6 +13,7 @@ import com.woka.databinding.FavViewHolderBinding import com.woka.karaoke.KaraokeRepository import com.woka.karaoke.models.continuesing.ContinueKaraokeData import com.woka.karaoke.models.listing.KaraokeData +import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected import com.woka.utils.show import com.woka.utils.toast @@ -22,7 +23,8 @@ import kotlin.math.max class ContinueKaraokeAdapter( private val context: Context, 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(ASYNC_DIFF_UTIL) { inner class AudioBookViewHolder(val binding: FavViewHolderBinding): ViewHolder(binding.root) @@ -93,6 +95,11 @@ class ContinueKaraokeAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + KaraokeRepository.likeUnLikeSong( "${karaokeData.id}", !like.isSelected @@ -129,6 +136,11 @@ class ContinueKaraokeAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + KaraokeRepository.updateFavShow( KaraokeData(karaokeData), !fav.isSelected diff --git a/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt b/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt index 9926880..b38bc58 100644 --- a/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt +++ b/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt @@ -12,6 +12,7 @@ import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ShowViewHolderBinding import com.woka.karaoke.KaraokeRepository import com.woka.karaoke.models.listing.KaraokeData +import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected import com.woka.utils.show import com.woka.utils.toast @@ -21,7 +22,8 @@ import kotlin.math.max class KaraokeAdapter( private val context: Context, 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(ASYNC_DIFF_UTIL) { inner class AudioBookViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root) @@ -92,6 +94,11 @@ class KaraokeAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + KaraokeRepository.likeUnLikeSong( "${karaokeData.id}", !like.isSelected @@ -128,6 +135,11 @@ class KaraokeAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + KaraokeRepository.updateFavShow( karaokeData, !fav.isSelected diff --git a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt index 17153fa..2805fce 100644 --- a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt +++ b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt @@ -108,6 +108,7 @@ class KaraokePlayerActivity : WokaBaseActivity() { WindowCompat.getInsetsController(window, window.decorView) windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) + @Suppress("DEPRECATION") karaokePlayerData = intent.getParcelableExtra(EXTRA_KARAOKE_DATA) networkCallback = object : ConnectivityManager.NetworkCallback() { @@ -486,6 +487,7 @@ class KaraokePlayerActivity : WokaBaseActivity() { } } + @Suppress("DEPRECATION") private fun startRecording() { recorder = MediaRecorder().apply { setAudioSource(MediaRecorder.AudioSource.MIC) @@ -658,7 +660,7 @@ class KaraokePlayerActivity : WokaBaseActivity() { AlertDialog.Builder(this@KaraokePlayerActivity) .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() } .create() @@ -668,7 +670,7 @@ class KaraokePlayerActivity : WokaBaseActivity() { AlertDialog.Builder(this@KaraokePlayerActivity) .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() } .create() diff --git a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt index 46d8141..b48e42d 100644 --- a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt +++ b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt @@ -29,10 +29,13 @@ import com.woka.karaoke.player.KaraokePlayerData import com.woka.karaoke.viewmodels.KaraokeViewModel import com.woka.networking.ApiResult import com.woka.userPreference.UserType +import com.woka.utils.NoSignInDialog import com.woka.utils.WokaBaseActivity import com.woka.utils.hide +import com.woka.utils.isNetworkConnected import com.woka.utils.setVisibility import com.woka.utils.show +import com.woka.utils.toast import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale @@ -50,6 +53,7 @@ class KaraokeActivity : WokaBaseActivity() { private lateinit var dialogBinding: DialogModuleShowerBinding private lateinit var karaokeDialog: Dialog + private lateinit var noSignInDialog: NoSignInDialog override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -68,14 +72,19 @@ class KaraokeActivity : WokaBaseActivity() { viewModel = ViewModelProvider(this)[KaraokeViewModel::class.java] - karaokeAdapter = KaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) - continueKaraokeAdapter = - ContinueKaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) + karaokeAdapter = KaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) { + noSignInDialog.show() + } + continueKaraokeAdapter = ContinueKaraokeAdapter(this, ::onKaraokeClicked, ::onKaraokeChanged) { + noSignInDialog.show() + } dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater) karaokeDialog = Dialog(this) karaokeDialog.setContentView(dialogBinding.root) + noSignInDialog = NoSignInDialog(this) + initViews() initKaraokeDialog() @@ -84,7 +93,7 @@ class KaraokeActivity : WokaBaseActivity() { setObservers() - if (!viewModel.karaokeLiveData.isInitialized){ + if (!viewModel.karaokeLiveData.isInitialized) { viewModel.loadKaraokeSongs() } } @@ -254,16 +263,26 @@ class KaraokeActivity : WokaBaseActivity() { } 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( "${karaokeData.id}", !like.isSelected ) karaokeData.likes_count?.let { - karaokeData.likes_count = if (like.isSelected){ + karaokeData.likes_count = if (like.isSelected) { // unlike max(0, it - 1) - }else{ + } else { // like it + 1 } @@ -280,6 +299,16 @@ class KaraokeActivity : WokaBaseActivity() { } 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( karaokeData, !fav.isSelected @@ -340,8 +369,8 @@ class KaraokeActivity : WokaBaseActivity() { } private fun setObservers() { - viewModel.karaokeLiveData.observe(this){ - when(it){ + viewModel.karaokeLiveData.observe(this) { + when (it) { is ApiResult.Error -> { binding.shimmer.hide() if (karaokeAdapter.currentList.size == 0) { @@ -358,6 +387,7 @@ class KaraokeActivity : WokaBaseActivity() { binding.loadMoreBtn.show() } } + is ApiResult.Loading -> { if (karaokeAdapter.currentList.size == 0) { // loading first data @@ -369,9 +399,10 @@ class KaraokeActivity : WokaBaseActivity() { binding.loadMoreBtn.hide() } } + is ApiResult.Success -> { - it.data?.let {newList -> - if (newList.isNotEmpty()){ + it.data?.let { newList -> + if (newList.isNotEmpty()) { binding.rvKaraoke.show() binding.singTxt.show() binding.trailerView.show() @@ -383,15 +414,15 @@ class KaraokeActivity : WokaBaseActivity() { binding.loadMoreBtn.text = getString(R.string.load_more) binding.loadMoreBtn.setVisibility(!viewModel.lastPage) - if (karaokeAdapter.currentList.isEmpty()){ + if (karaokeAdapter.currentList.isEmpty()) { // first data load - if (userPrefs?.userType != UserType.GUEST && !viewModel.karaokeContinueLiveData.isInitialized){ + if (userPrefs?.userType != UserType.GUEST && !viewModel.karaokeContinueLiveData.isInitialized) { viewModel.loadContinueData() } loadTrailerData(newList[0]) karaokeAdapter.submitList(newList) - }else{ + } else { // loaded more data karaokeAdapter.notifyItemRangeInserted( karaokeAdapter.currentList.size, diff --git a/app/src/main/java/com/woka/modules/ModuleRepository.kt b/app/src/main/java/com/woka/modules/ModuleRepository.kt index 42f902f..f01384c 100644 --- a/app/src/main/java/com/woka/modules/ModuleRepository.kt +++ b/app/src/main/java/com/woka/modules/ModuleRepository.kt @@ -1,13 +1,7 @@ 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.RetrofitHelper -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch import okhttp3.FormBody object ModuleRepository { @@ -39,24 +33,4 @@ object ModuleRepository { } } - // categories listing - private val _showCategoryLiveData = MutableLiveData>() - val showCategoryLiveData: LiveData> - 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() - ) - } - ) - } - } - } \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/blogs/BlogsAdapter.kt b/app/src/main/java/com/woka/modules/blogs/BlogsAdapter.kt index cc40090..2243370 100644 --- a/app/src/main/java/com/woka/modules/blogs/BlogsAdapter.kt +++ b/app/src/main/java/com/woka/modules/blogs/BlogsAdapter.kt @@ -1,17 +1,12 @@ package com.woka.modules.blogs -import android.text.Html import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.AsyncDifferConfig import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView.ViewHolder -import com.bumptech.glide.Glide -import com.jwplayer.pub.api.JWPlayer -import com.woka.R import com.woka.WokaApp -import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.BlogViewHolderBinding import com.woka.modules.blogs.models.Blog import java.util.concurrent.Executors diff --git a/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt b/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt index 4b54433..0e9858b 100644 --- a/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt +++ b/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt @@ -50,12 +50,12 @@ class WebViewActivity : WokaBaseActivity() { val webSettings: WebSettings = binding.webView.getSettings() webSettings.javaScriptEnabled = true - webSettings.allowFileAccess = false; - webSettings.allowContentAccess = false; + webSettings.allowFileAccess = false + webSettings.allowContentAccess = false if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { webSettings.safeBrowsingEnabled = true - }; + } binding.webView.setWebViewClient(SecureWebViewClient(binding.progressBar)) diff --git a/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt b/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt index 4862efc..e2839f5 100644 --- a/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt +++ b/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt @@ -1,5 +1,6 @@ package com.woka.modules.wokasongs +import android.annotation.SuppressLint import android.content.Context import android.os.Handler import android.os.Looper @@ -146,12 +147,14 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter { playBtn.show() playBtn.setImageResource(R.drawable.ic_play) + currentTime.text = root.context.getString(R.string._00_00) progressBar.hide() } } @@ -160,7 +163,9 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter= songList.size) return val songData = songList[position] @@ -226,6 +231,7 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter, mediaItems: MutableList) { songList.clear() for (song in list){ diff --git a/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt b/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt index d49510a..29fc231 100644 --- a/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt @@ -19,7 +19,7 @@ class AgeSelectionFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentAgeSelectBinding.inflate(inflater, container, false) activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) activity?.window?.statusBarColor = Color.parseColor("#6ed5fe") diff --git a/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt b/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt index fa3260e..3297660 100644 --- a/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt @@ -33,7 +33,7 @@ class ChildListFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentChildListBinding.inflate(inflater, container, false) activity?.let { viewModel = ViewModelProvider(it)[OnboardViewModel::class.java] diff --git a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt index a99066e..416a571 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt @@ -1,16 +1,14 @@ package com.woka.onboard.fragments import android.os.Bundle -import android.os.CountDownTimer import android.util.Log -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import android.view.ViewGroup -import android.widget.Toast import androidx.core.widget.addTextChangedListener +import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController @@ -66,7 +64,7 @@ class GetCodeFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentGetCodeBinding.inflate(inflater, container, false) activity?.let { viewModel = ViewModelProvider(it)[OnboardViewModel::class.java] diff --git a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt index 37c31fd..2173831 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt @@ -2,12 +2,11 @@ package com.woka.onboard.fragments import android.os.Bundle import android.util.Patterns -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.View.VISIBLE import android.view.ViewGroup -import android.widget.Toast +import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R @@ -54,7 +53,7 @@ class GetEmailFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentGetEmailBinding.inflate(inflater, container, false) activity?.let { diff --git a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt index 906eb54..e944862 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt @@ -37,7 +37,7 @@ class GetMoreInfoFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentGetMoreInfoBinding.inflate(inflater, container, false) activity?.let { @@ -136,7 +136,7 @@ class GetMoreInfoFragment : Fragment() { viewModel.selectedDOB.get(Calendar.YEAR), viewModel.selectedDOB.get(Calendar.MONTH), viewModel.selectedDOB.get(Calendar.DAY_OF_MONTH) - ) { v, year, monthOfYear, dayOfMonth -> + ) { _, year, monthOfYear, dayOfMonth -> val cal = Calendar.getInstance() cal.set(Calendar.YEAR, year) cal.set(Calendar.MONTH, monthOfYear) @@ -148,6 +148,7 @@ class GetMoreInfoFragment : Fragment() { } + @Suppress("DEPRECATION") private fun selectGender(gender: Gender) { binding.apply { when (gender) { diff --git a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt index 735cc22..f8ce67b 100644 --- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt @@ -28,7 +28,7 @@ class LanguageFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentLanguageBinding.inflate(inflater, container, false) progressView = ProgressView(requireContext(), "please wait...") return binding.root diff --git a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt index 5c529f1..bdfeaca 100644 --- a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt @@ -36,7 +36,7 @@ class NewPasswordFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentNewPasswordBinding.inflate(inflater, container, false) activity?.let { viewModel = ViewModelProvider(it)[OnboardViewModel::class.java] diff --git a/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt b/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt index 51a7f66..fe4f655 100644 --- a/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt @@ -39,7 +39,7 @@ class OnboardFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentOnboardBinding.inflate(inflater, container, false) activity?.let { it.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) diff --git a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt index fdc1aff..44658d8 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt @@ -58,6 +58,11 @@ class SelectAvatarFragment : Fragment() { return binding.root } + override fun onDestroyView() { + super.onDestroyView() + viewModel.clearRegisterUserData() + } + private fun clickEvents() { binding.apply { backBtn.setOnClickListener { diff --git a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt index 81206d9..07e5142 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt @@ -37,7 +37,7 @@ class SignInFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentSignInBinding.inflate(inflater, container, false) activity?.let { it.window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) @@ -174,6 +174,7 @@ class SignInFragment : Fragment() { override fun onDestroyView() { super.onDestroyView() viewModel.clearLoginLiveData() + viewModel.clearLoginProceedLiveData() viewModel.clearGuestLoginData() } diff --git a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt index 5c76ea4..23aff7e 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt @@ -56,7 +56,7 @@ class SignUpFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentSignUpBinding.inflate(inflater, container, false) activity?.let { diff --git a/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt index 7806e34..5ac34b9 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt @@ -37,7 +37,7 @@ class SplashFragment : Fragment(), Observer?> { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentSplashBinding.inflate(inflater, container, false) return binding.root } diff --git a/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt b/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt index 65627e2..03ce903 100644 --- a/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt +++ b/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt @@ -1,10 +1,8 @@ package com.woka.onboard.mvvm import com.woka.WokaApp -import com.woka.networking.ApiResponse import com.woka.networking.ApiResult import com.woka.networking.RetrofitHelper.handleApiCall -import com.woka.networking.RetrofitHelper.handleApiResponse import com.woka.onboard.models.AvatarList import com.woka.onboard.models.ChildListResponse 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.RegisterResponse import com.woka.onboard.models.VerifyEmail -import com.woka.utils.NO_INTERNET_MESSAGE -import com.woka.utils.UNKNOWN_ERROR_MESSAGE import okhttp3.FormBody -import retrofit2.Response -import java.net.UnknownHostException class OnboardRepository(private val apiService: OnboardApiService) { diff --git a/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt b/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt index 2fba21f..5daa926 100644 --- a/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt +++ b/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt @@ -19,7 +19,6 @@ import com.woka.onboard.models.RegisterResponse import com.woka.onboard.models.VerifyEmail import com.woka.utils.Gender import kotlinx.coroutines.async -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import java.util.Calendar @@ -238,7 +237,7 @@ class OnboardViewModel: ViewModel(){ } // 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 _otpResendTimeLiveData = MutableLiveData() @@ -247,7 +246,7 @@ class OnboardViewModel: ViewModel(){ fun startOTPTimeCountDown(){ countDownTimer?.cancel() - countDownTimer = object : CountDownTimer(OTP_RESEND_COUNT_DOWN_TIME, 1000){ + countDownTimer = object : CountDownTimer(otpCountDownTime, 1000){ override fun onTick(millisUntilFinished: Long) { _otpResendTimeLiveData.postValue(millisUntilFinished) } diff --git a/app/src/main/java/com/woka/onboard/views/OnboardActivity.kt b/app/src/main/java/com/woka/onboard/views/OnboardActivity.kt index f285c86..45e4fc0 100644 --- a/app/src/main/java/com/woka/onboard/views/OnboardActivity.kt +++ b/app/src/main/java/com/woka/onboard/views/OnboardActivity.kt @@ -60,10 +60,10 @@ class OnboardActivity : WokaBaseActivity() { .setPopUpTo(R.id.onboardFragment, true) .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() { diff --git a/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt b/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt index 2602ae5..16b9abb 100644 --- a/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt +++ b/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt @@ -5,9 +5,6 @@ import android.net.ConnectivityManager.NetworkCallback import android.net.Network import android.net.NetworkRequest import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.util.Log import android.view.ViewGroup import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity @@ -15,7 +12,6 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import com.jwplayer.pub.api.JWPlayer -import com.jwplayer.pub.api.PlayReason import com.jwplayer.pub.api.configuration.PlayerConfig import com.jwplayer.pub.api.events.EventType 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.players.KeepScreenOnHandler import com.woka.players.models.PlayBackState -import com.woka.utils.TAG import com.woka.utils.hide import com.woka.utils.show diff --git a/app/src/main/java/com/woka/players/views/PlayerActivity.kt b/app/src/main/java/com/woka/players/views/PlayerActivity.kt index 479d6ea..15cadfc 100644 --- a/app/src/main/java/com/woka/players/views/PlayerActivity.kt +++ b/app/src/main/java/com/woka/players/views/PlayerActivity.kt @@ -55,6 +55,7 @@ class PlayerActivity : AppCompatActivity(), FullscreenHandler { WindowCompat.getInsetsController(window, window.decorView) windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) + @Suppress("DEPRECATION") videoPlayList = intent.getParcelableExtra(EXTRA_PLAY_LIST) playingIndex = intent.getIntExtra(EXTRA_PLAY_INDEX, 0) diff --git a/app/src/main/java/com/woka/userPreference/UserPreference.kt b/app/src/main/java/com/woka/userPreference/UserPreference.kt index 2fc9bc9..2a84ecc 100644 --- a/app/src/main/java/com/woka/userPreference/UserPreference.kt +++ b/app/src/main/java/com/woka/userPreference/UserPreference.kt @@ -15,7 +15,6 @@ import com.woka.onboard.views.OnboardActivity import com.woka.userdata.UserRepository import com.woka.userdata.userDataModels.UserData import com.woka.userdata.userDataModels.UserDataResponse -import com.woka.webseries.WebSeriesRepository import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/woka/userdata/UserApiService.kt b/app/src/main/java/com/woka/userdata/UserApiService.kt index ec574b5..f0bc8eb 100644 --- a/app/src/main/java/com/woka/userdata/UserApiService.kt +++ b/app/src/main/java/com/woka/userdata/UserApiService.kt @@ -1,11 +1,9 @@ package com.woka.userdata -import com.woka.audiobooks.models.continuedata.ContinueAudioResponse import com.woka.home.mylist.models.MyListResponse import com.woka.home.notifications.models.NotificationData -import com.woka.userdata.userDataModels.UserDataResponse import com.woka.networking.ApiResponse -import com.woka.webseries.models.ContinueEpisodeResponse +import com.woka.userdata.userDataModels.UserDataResponse import okhttp3.FormBody import retrofit2.Response import retrofit2.http.Body diff --git a/app/src/main/java/com/woka/utils/AdiImageView.kt b/app/src/main/java/com/woka/utils/AdiImageView.kt index cc45540..50afa15 100644 --- a/app/src/main/java/com/woka/utils/AdiImageView.kt +++ b/app/src/main/java/com/woka/utils/AdiImageView.kt @@ -15,7 +15,6 @@ import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target import com.woka.R -import kotlin.reflect.KFunction class AdiImageView: FrameLayout { diff --git a/app/src/main/java/com/woka/utils/Extensions.kt b/app/src/main/java/com/woka/utils/Extensions.kt index 25dc943..51faaed 100644 --- a/app/src/main/java/com/woka/utils/Extensions.kt +++ b/app/src/main/java/com/woka/utils/Extensions.kt @@ -7,7 +7,6 @@ import android.content.Context import android.content.res.Configuration import android.net.ConnectivityManager import android.net.NetworkCapabilities -import android.util.Log import android.view.View import android.view.View.GONE import android.view.View.VISIBLE @@ -19,8 +18,6 @@ import androidx.fragment.app.Fragment import com.woka.WokaApp.Companion.userPrefs import java.util.Locale import kotlin.math.ceil -import kotlin.math.round -import kotlin.math.roundToLong fun Window.lightStatusBar(lightStatus: Boolean = false){ WindowCompat.getInsetsController(this, decorView).isAppearanceLightStatusBars = lightStatus @@ -52,6 +49,8 @@ fun View.setVisibility(show: Boolean){ else hide() } + +@Suppress("DEPRECATION") fun Context.changeLocale(language: String){ val locale = Locale(language) Locale.setDefault(locale) diff --git a/app/src/main/java/com/woka/utils/NoSignInDialog.kt b/app/src/main/java/com/woka/utils/NoSignInDialog.kt index 42f4b55..ab5e58d 100644 --- a/app/src/main/java/com/woka/utils/NoSignInDialog.kt +++ b/app/src/main/java/com/woka/utils/NoSignInDialog.kt @@ -24,7 +24,6 @@ class NoSignInDialog(context: Context) { dialog = Dialog(context) dialog.setContentView(binding.getRoot()) - dialog.setCancelable(false) binding.signIm.setOnClickListener { dismiss() @@ -33,6 +32,8 @@ class NoSignInDialog(context: Context) { }) } + binding.closeBtn.setOnClickListener { dismiss() } + try { val back = ColorDrawable(Color.TRANSPARENT) val inset = InsetDrawable(back, 50) @@ -61,12 +62,6 @@ class NoSignInDialog(context: Context) { return this } - fun closeListener(click: () -> Unit){ - binding.closeBtn.setOnClickListener { - click() - } - } - fun show() = dialog.show() fun dismiss() = dialog.dismiss() diff --git a/app/src/main/java/com/woka/utils/PressableCard.kt b/app/src/main/java/com/woka/utils/PressableCard.kt index 24837ea..e49051c 100644 --- a/app/src/main/java/com/woka/utils/PressableCard.kt +++ b/app/src/main/java/com/woka/utils/PressableCard.kt @@ -15,8 +15,8 @@ import com.woka.R class PressableCard : FrameLayout { - enum class PressableType(value: Int){ - SCALE(0), FADE(1); + enum class PressableType { + SCALE, FADE; } constructor(context: Context?) : super(context!!) diff --git a/app/src/main/java/com/woka/utils/Utils.kt b/app/src/main/java/com/woka/utils/Utils.kt deleted file mode 100644 index d99f77b..0000000 --- a/app/src/main/java/com/woka/utils/Utils.kt +++ /dev/null @@ -1 +0,0 @@ -package com.woka.utils \ No newline at end of file diff --git a/app/src/main/java/com/woka/utils/WokaBaseActivity.kt b/app/src/main/java/com/woka/utils/WokaBaseActivity.kt index dddd59d..9f36afb 100644 --- a/app/src/main/java/com/woka/utils/WokaBaseActivity.kt +++ b/app/src/main/java/com/woka/utils/WokaBaseActivity.kt @@ -2,9 +2,7 @@ package com.woka.utils import android.content.Context import android.content.res.Configuration -import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.WindowCompat import com.woka.WokaApp.Companion.userPrefs import kotlin.math.min diff --git a/app/src/main/java/com/woka/webseries/adapters/ContinueEpisodeAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/ContinueEpisodeAdapter.kt index 9aff2b7..68e5451 100644 --- a/app/src/main/java/com/woka/webseries/adapters/ContinueEpisodeAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/ContinueEpisodeAdapter.kt @@ -7,11 +7,9 @@ import androidx.recyclerview.widget.AsyncDifferConfig import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView.ViewHolder -import com.bumptech.glide.Glide import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ContinueShowViewHolderBinding import com.woka.webseries.models.ContinueEpisodeData -import com.woka.webseries.models.ShowData import java.util.concurrent.Executors class ContinueEpisodeAdapter(val context: Context, diff --git a/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt index 3afb3d0..578add1 100644 --- a/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/EpisodeAdapter.kt @@ -1,4 +1,4 @@ -package com.woka.webseries.adapters; +package com.woka.webseries.adapters import android.content.Context diff --git a/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt index b5ad060..78e972e 100644 --- a/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/SpinnerAdapter.kt @@ -12,7 +12,7 @@ import com.woka.modules.categorymodels.Category import com.woka.utils.hide import com.woka.utils.show -class SpinnerAdapter(context: Context, private val list: List, ): ArrayAdapter(context, 0, list){ +class SpinnerAdapter(context: Context, private val list: List): ArrayAdapter(context, 0, list){ var currentSelection: Int = 0 diff --git a/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt index bbc5834..d3deb42 100644 --- a/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/TeaserAdapter.kt @@ -1,4 +1,4 @@ -package com.woka.webseries.adapters; +package com.woka.webseries.adapters import android.content.Context import android.view.LayoutInflater diff --git a/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt b/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt index 6875488..6aed789 100644 --- a/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ShowViewHolderBinding +import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected import com.woka.utils.show import com.woka.utils.toast @@ -19,7 +20,8 @@ import kotlin.math.max class WebSeriesShowAdapter( private val context: Context, 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() { inner class ShowViewHolder(val binding: ShowViewHolderBinding): ViewHolder(binding.root) @@ -85,6 +87,11 @@ class WebSeriesShowAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + WebSeriesRepository.likeUnLikeShow("${showData.id}", !like.isSelected) showData.likes_count?.let { @@ -117,6 +124,11 @@ class WebSeriesShowAdapter( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInListener() + return@setOnClickListener + } + categoryId?.let { WebSeriesRepository.updateFavShow( showData, diff --git a/app/src/main/java/com/woka/webseries/views/fragments/ShowChangeInterface.kt b/app/src/main/java/com/woka/webseries/views/fragments/ShowChangeInterface.kt deleted file mode 100644 index 0593508..0000000 --- a/app/src/main/java/com/woka/webseries/views/fragments/ShowChangeInterface.kt +++ /dev/null @@ -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) -} \ No newline at end of file diff --git a/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt b/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt index ebd0509..ca9f9de 100644 --- a/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt +++ b/app/src/main/java/com/woka/webseries/views/fragments/WebSeriesFragment.kt @@ -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_LIST import com.woka.userPreference.UserType +import com.woka.utils.NoSignInDialog import com.woka.utils.hide import com.woka.utils.lightStatusBar import com.woka.utils.setVisibility @@ -56,6 +57,8 @@ class WebSeriesFragment private constructor(): Fragment() { private var loadingMore = false + private lateinit var noSignInDialog: NoSignInDialog + companion object { fun newInstance() = WebSeriesFragment() } @@ -77,6 +80,8 @@ class WebSeriesFragment private constructor(): Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + noSignInDialog = NoSignInDialog(requireContext()) + initViews() initEpisodeDialog() @@ -115,7 +120,9 @@ class WebSeriesFragment private constructor(): Fragment() { // adapters activity?.let { - showAdapter = WebSeriesShowAdapter(it, ::onShowClicked, ::onShowCommonDataChange) + showAdapter = WebSeriesShowAdapter(it, ::onShowClicked, ::onShowCommonDataChange){ + noSignInDialog.show() + } continueWatchAdapter = ContinueEpisodeAdapter(it) } diff --git a/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt b/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt index e442eb6..2941e3e 100644 --- a/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt +++ b/app/src/main/java/com/woka/webseries/views/fragments/WebShowFragment.kt @@ -25,6 +25,8 @@ import com.woka.databinding.FragmentWebShowBinding import com.woka.networking.ApiResult import com.woka.players.models.VideoPlayList 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.isNetworkConnected import com.woka.utils.lightStatusBar @@ -72,6 +74,8 @@ class WebShowFragment private constructor( private var loadMoreEpisodes = false private var showDataChanged: Boolean = false + private lateinit var noSignInDialog: NoSignInDialog + override fun onAttach(context: Context) { super.onAttach(context) episodeAdapter = EpisodeAdapter(context) @@ -96,6 +100,9 @@ class WebShowFragment private constructor( override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + noSignInDialog = NoSignInDialog(requireContext()) + initViews() initEpisodeDialog() @@ -173,6 +180,11 @@ class WebShowFragment private constructor( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInDialog.show() + return@setOnClickListener + } + WebSeriesRepository.likeUnLikeShow("${showData.id}", showData.is_liked == false) showData.likes_count?.let { @@ -202,6 +214,11 @@ class WebShowFragment private constructor( return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE){ + noSignInDialog.show() + return@setOnClickListener + } + WebSeriesRepository.updateFavShow( showData, !showData.isBookMarked(categoryId), diff --git a/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt b/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt index c2aec91..277baea 100644 --- a/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt +++ b/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt @@ -8,8 +8,9 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R -import com.woka.WokaApp +import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ShowViewHolderBinding +import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected import com.woka.utils.show import com.woka.utils.toast @@ -18,14 +19,19 @@ import com.woka.wokagames.models.listing.GameData import java.util.concurrent.Executors import kotlin.math.max -class GamesAdapter(var context: Context, - private var onGameClicked: (GameData) -> Unit): ListAdapter( - ASYNC_DIFF_UTIL) { - inner class GameViewHolder(var binding: ShowViewHolderBinding): ViewHolder(binding.root) +class GamesAdapter( + var context: Context, + private var onGameClicked: (GameData) -> Unit, + private val noSignInListener: () -> Unit +) : ListAdapter( + ASYNC_DIFF_UTIL +) { + inner class GameViewHolder(var binding: ShowViewHolderBinding) : ViewHolder(binding.root) - companion object{ - val DIFF_UTIL = object : DiffUtil.ItemCallback(){ - override fun areItemsTheSame(oldItem: GameData, newItem: GameData): Boolean = oldItem.id == newItem.id + companion object { + val DIFF_UTIL = object : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: GameData, newItem: GameData): Boolean = + oldItem.id == newItem.id override fun areContentsTheSame(oldItem: GameData, newItem: GameData): Boolean { return oldItem.thumbnail_path == newItem.thumbnail_path && @@ -59,14 +65,14 @@ class GamesAdapter(var context: Context, image.loadImage(it) } - gameData.content_more_details?.let {moreDetailsList -> - title.text = if (moreDetailsList.isNotEmpty()){ - if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1){ + gameData.content_more_details?.let { moreDetailsList -> + title.text = if (moreDetailsList.isNotEmpty()) { + if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) { moreDetailsList[1]?.title - }else{ + } else { moreDetailsList[0]?.title } - }else{ + } else { gameData.title } } @@ -84,21 +90,26 @@ class GamesAdapter(var context: Context, } like.setOnClickListener { - if (!context.isNetworkConnected()){ + if (!context.isNetworkConnected()) { context.toast(context.getString(R.string.no_internet)) return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) { + noSignInListener() + return@setOnClickListener + } + GamesRepository.likeUnLikeGame( "${gameData.id}", !like.isSelected ) gameData.likes_count?.let { - gameData.likes_count = if (like.isSelected){ + gameData.likes_count = if (like.isSelected) { // unlike max(0, it - 1) - }else{ + } else { // like it + 1 } @@ -113,11 +124,16 @@ class GamesAdapter(var context: Context, fav.isSelected = gameData.mark_as_favourite == true fav.setOnClickListener { - if (!context.isNetworkConnected()){ + if (!context.isNetworkConnected()) { context.toast(context.getString(R.string.no_internet)) return@setOnClickListener } + if (userPrefs?.userType == UserType.GUEST || userPrefs?.userType == UserType.NONE) { + noSignInListener() + return@setOnClickListener + } + GamesRepository.updateFavShow( gameData, !fav.isSelected diff --git a/app/src/main/java/com/woka/wokagames/playerr/GamePlayerActivity.kt b/app/src/main/java/com/woka/wokagames/playerr/GamePlayerActivity.kt index f37bb82..a7be596 100644 --- a/app/src/main/java/com/woka/wokagames/playerr/GamePlayerActivity.kt +++ b/app/src/main/java/com/woka/wokagames/playerr/GamePlayerActivity.kt @@ -2,7 +2,6 @@ package com.woka.wokagames.playerr import android.annotation.SuppressLint import android.content.pm.ActivityInfo -import android.graphics.Color import android.os.Build import android.os.Bundle import android.view.WindowManager @@ -14,7 +13,6 @@ import com.woka.R import com.woka.databinding.ActivityGamePlayerBinding import com.woka.utils.DecisionDialog import com.woka.utils.WokaBaseActivity -import com.woka.utils.lightStatusBar class GamePlayerActivity : WokaBaseActivity() { @@ -41,6 +39,7 @@ class GamePlayerActivity : WokaBaseActivity() { message = getString(R.string.back_warning_text) } + @Suppress("DEPRECATION") intent.getParcelableExtra(EXTRA_GAME_PLAYER_DATA)?.let { gamePlayerData = it requestedOrientation = if (it.landscape){ @@ -82,12 +81,12 @@ class GamePlayerActivity : WokaBaseActivity() { val webSettings: WebSettings = binding.webView.getSettings() webSettings.javaScriptEnabled = true - webSettings.allowFileAccess = false; - webSettings.allowContentAccess = false; + webSettings.allowFileAccess = false + webSettings.allowContentAccess = false if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { webSettings.safeBrowsingEnabled = true - }; + } binding.webView.setWebViewClient(WebViewClient()) @@ -97,6 +96,7 @@ class GamePlayerActivity : WokaBaseActivity() { @Deprecated("Deprecated in Java") override fun onBackPressed() { decisionDialog.setPositiveButton(getString(R.string.ok_caps)){ + @Suppress("DEPRECATION") super.onBackPressed() } decisionDialog.setNegativeButton(getString(R.string.cancel_caps)){ diff --git a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt index 9947cb5..e9bcdfe 100644 --- a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt +++ b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt @@ -16,14 +16,18 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.SimpleItemAnimator import com.google.android.material.appbar.CollapsingToolbarLayout import com.woka.R -import com.woka.WokaApp +import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.ActivityGamesBinding import com.woka.databinding.DialogModuleShowerBinding import com.woka.networking.ApiResult +import com.woka.userPreference.UserType +import com.woka.utils.NoSignInDialog import com.woka.utils.WokaBaseActivity import com.woka.utils.hide +import com.woka.utils.isNetworkConnected import com.woka.utils.setVisibility import com.woka.utils.show +import com.woka.utils.toast import com.woka.wokagames.GamesRepository import com.woka.wokagames.adapters.GamesAdapter import com.woka.wokagames.models.listing.GameData @@ -46,6 +50,8 @@ class GamesActivity : WokaBaseActivity() { private lateinit var dialogBinding: DialogModuleShowerBinding private lateinit var gameDialog: Dialog + private lateinit var noSignInDialog: NoSignInDialog + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityGamesBinding.inflate(layoutInflater) @@ -63,12 +69,16 @@ class GamesActivity : WokaBaseActivity() { viewModel = ViewModelProvider(this)[GamesViewModel::class.java] - gameAdapter = GamesAdapter(this, ::onGameClicked) - dialogBinding = DialogModuleShowerBinding.inflate(layoutInflater) gameDialog = Dialog(this) gameDialog.setContentView(dialogBinding.root) + noSignInDialog = NoSignInDialog(this) + + gameAdapter = GamesAdapter(this, ::onGameClicked){ + noSignInDialog.show() + } + initViews() initGameDialog() @@ -149,7 +159,7 @@ class GamesActivity : WokaBaseActivity() { gameData.content_more_details?.let { moreDetailsList -> trailerName.text = if (moreDetailsList.isNotEmpty()) { - if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) { + if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) { moreDetailsList[1]?.title } else { moreDetailsList[0]?.title @@ -207,7 +217,7 @@ class GamesActivity : WokaBaseActivity() { if (moreDetailsList.isNotEmpty()) { - if (WokaApp.userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) { + if (userPrefs?.appLanguage == "hi" && moreDetailsList.size > 1) { moreDetailsList[1]?.let { data -> title.text = data.title description.text = Html.fromHtml( @@ -247,6 +257,16 @@ class GamesActivity : WokaBaseActivity() { } 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( "${gameData.id}", !like.isSelected @@ -272,6 +292,16 @@ class GamesActivity : WokaBaseActivity() { } 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( gameData, !fav.isSelected diff --git a/app/src/main/res/layout/activity_more_home.xml b/app/src/main/res/layout/activity_more_home.xml index 49b1239..2b4e5b7 100644 --- a/app/src/main/res/layout/activity_more_home.xml +++ b/app/src/main/res/layout/activity_more_home.xml @@ -1,7 +1,7 @@ + android:src="@drawable/img_more_bg" /> + + android:orientation="vertical" + android:translationZ="1dp"> + app:cardBackgroundColor="@color/white" + + app:cardCornerRadius="5dp"> + android:layout_marginTop="15dp"> + android:src="@drawable/img_masila_tn_small" /> + android:background="@drawable/round_25" + android:backgroundTint="@color/color_primary"> @@ -128,14 +123,14 @@ android:layout_width="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:text="@string/masila" + android:textColor="@color/color_primary" android:textSize="@dimen/_12ssp" - android:layout_marginStart="15dp" - android:layout_marginVertical="10dp" - /> @@ -147,54 +142,106 @@ android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/blogs" - android:fontFamily="@font/exo_2_bold" - android:textColor="@color/white" - android:textSize="@dimen/_13ssp" - + android:layout_marginHorizontal="15dp" android:layout_marginTop="10dp" 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" /> + + + + + + + + + + + + + android:orientation="horizontal" + android:visibility="gone" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tools:listitem="@layout/blog_view_holder" /> + + + + + + + + + + + + + + + + + + + + + android:orientation="vertical" + android:visibility="gone" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tools:listitem="@layout/woka_song_view_holder" /> diff --git a/app/src/main/res/layout/blog_view_holder.xml b/app/src/main/res/layout/blog_view_holder.xml index 8dc6a94..9f8822e 100644 --- a/app/src/main/res/layout/blog_view_holder.xml +++ b/app/src/main/res/layout/blog_view_holder.xml @@ -36,7 +36,6 @@ android:layout_width="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:textColor="@color/color_primary" android:textSize="12sp" diff --git a/app/src/main/res/layout/woka_song_view_holder.xml b/app/src/main/res/layout/woka_song_view_holder.xml index 1cf1f73..fbf43fe 100644 --- a/app/src/main/res/layout/woka_song_view_holder.xml +++ b/app/src/main/res/layout/woka_song_view_holder.xml @@ -73,8 +73,7 @@ android:ellipsize="end" android:maxLines="1" - android:textColor="@color/white" - tools:text="AA ZARA" /> + android:textColor="@color/white"/>