From 720331bc22bd1cbd31289e29a41b450f0f4e6939 Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Fri, 19 Jul 2024 16:55:36 +0530 Subject: [PATCH] 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 --- app/src/main/java/com/woka/WokaApp.kt | 2 + .../audiobooks/adapters/AudioBooksAdapter.kt | 14 +- .../audiobooks/views/AudioBooksActivity.kt | 31 +++- .../com/woka/home/fragments/Home1Fragment.kt | 14 +- .../com/woka/home/fragments/Home2Fragment.kt | 9 +- .../home/mylist/adapters/WebSeriesAdapter.kt | 73 ++++----- .../home/notifications/NotificationAdapter.kt | 5 +- .../notifications/NotificationsActivity.kt | 3 - .../sidebar/profile/UserProfileActivity.kt | 8 +- .../com/woka/home/viewmodels/HomeViewModel.kt | 5 - .../java/com/woka/home/views/FMActivity.kt | 6 +- .../java/com/woka/home/views/HomeActivity.kt | 3 +- .../com/woka/home/views/MoreHomeActivity.kt | 36 +++-- .../adapters/ContinueKaraokeAdapter.kt | 14 +- .../woka/karaoke/adapters/KaraokeAdapter.kt | 14 +- .../karaoke/player/KaraokePlayerActivity.kt | 6 +- .../com/woka/karaoke/views/KaraokeActivity.kt | 57 +++++-- .../java/com/woka/modules/ModuleRepository.kt | 26 --- .../com/woka/modules/blogs/BlogsAdapter.kt | 5 - .../woka/modules/webview/WebViewActivity.kt | 6 +- .../modules/wokasongs/WokaSongsAdapter.kt | 8 +- .../onboard/fragments/AgeSelectionFragment.kt | 2 +- .../onboard/fragments/ChildListFragment.kt | 2 +- .../woka/onboard/fragments/GetCodeFragment.kt | 6 +- .../onboard/fragments/GetEmailFragment.kt | 5 +- .../onboard/fragments/GetMoreInfoFragment.kt | 5 +- .../onboard/fragments/LanguageFragment.kt | 2 +- .../onboard/fragments/NewPasswordFragment.kt | 2 +- .../woka/onboard/fragments/OnboardFragment.kt | 2 +- .../onboard/fragments/SelectAvatarFragment.kt | 5 + .../woka/onboard/fragments/SignInFragment.kt | 3 +- .../woka/onboard/fragments/SignUpFragment.kt | 2 +- .../woka/onboard/fragments/SplashFragment.kt | 2 +- .../woka/onboard/mvvm/OnboardRepository.kt | 6 - .../com/woka/onboard/mvvm/OnboardViewModel.kt | 5 +- .../com/woka/onboard/views/OnboardActivity.kt | 6 +- .../players/views/LiveStreamPlayerActivity.kt | 5 - .../com/woka/players/views/PlayerActivity.kt | 1 + .../com/woka/userPreference/UserPreference.kt | 1 - .../java/com/woka/userdata/UserApiService.kt | 4 +- .../main/java/com/woka/utils/AdiImageView.kt | 1 - .../main/java/com/woka/utils/Extensions.kt | 5 +- .../java/com/woka/utils/NoSignInDialog.kt | 9 +- .../main/java/com/woka/utils/PressableCard.kt | 4 +- app/src/main/java/com/woka/utils/Utils.kt | 1 - .../java/com/woka/utils/WokaBaseActivity.kt | 2 - .../adapters/ContinueEpisodeAdapter.kt | 2 - .../woka/webseries/adapters/EpisodeAdapter.kt | 2 +- .../woka/webseries/adapters/SpinnerAdapter.kt | 2 +- .../woka/webseries/adapters/TeaserAdapter.kt | 2 +- .../adapters/WebSeriesShowAdapter.kt | 14 +- .../views/fragments/ShowChangeInterface.kt | 8 - .../views/fragments/WebSeriesFragment.kt | 9 +- .../views/fragments/WebShowFragment.kt | 17 ++ .../woka/wokagames/adapters/GamesAdapter.kt | 50 ++++-- .../wokagames/playerr/GamePlayerActivity.kt | 10 +- .../com/woka/wokagames/views/GamesActivity.kt | 40 ++++- .../main/res/layout/activity_more_home.xml | 153 ++++++++++++------ app/src/main/res/layout/blog_view_holder.xml | 1 - .../main/res/layout/woka_song_view_holder.xml | 3 +- 60 files changed, 453 insertions(+), 293 deletions(-) delete mode 100644 app/src/main/java/com/woka/utils/Utils.kt delete mode 100644 app/src/main/java/com/woka/webseries/views/fragments/ShowChangeInterface.kt 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"/>