From edde93269cb199564ef53720a77cab285cd590c3 Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Thu, 17 Oct 2024 19:42:09 +0530 Subject: [PATCH] infinite loading in shop module. Improvements in infinite loading in all modules. Error handling for live tv when use comes back to home in case of error. Text changes. and removal of continue as guest text. --- .../audiobooks/views/AudioBooksActivity.kt | 10 ++++-- .../com/woka/home/fragments/Home1Fragment.kt | 6 +++- .../com/woka/home/fragments/Home2Fragment.kt | 4 +++ .../com/woka/home/fragments/MyListFragment.kt | 32 +++++++++++++------ .../com/woka/karaoke/views/KaraokeActivity.kt | 9 +++++- .../onboard/fragments/LanguageFragment.kt | 1 - .../woka/onboard/fragments/SignInFragment.kt | 1 - .../views/fragments/shop/ShopFragment3.kt | 28 ++++++++-------- .../views/fragments/WebShowFragment.kt | 11 +++++-- .../com/woka/wokagames/views/GamesActivity.kt | 9 +++++- app/src/main/res/layout/fragment_shop3.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 12 files changed, 80 insertions(+), 35 deletions(-) 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 3f0a839..6b44a44 100644 --- a/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt +++ b/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt @@ -8,7 +8,7 @@ import android.graphics.drawable.InsetDrawable import android.net.Uri import android.os.Bundle import android.text.Html -import android.util.Log +import android.view.View import android.view.WindowManager import androidx.activity.enableEdgeToEdge import androidx.activity.result.ActivityResultLauncher @@ -173,9 +173,12 @@ class AudioBooksActivity : WokaBaseActivity() { val percentageScrolled = (scrolledHeight.toFloat()/totalHeight.toFloat()) * 100 - if (percentageScrolled >= 60) { + if (percentageScrolled == 100f) { if (!isLoading && !viewModel.lastPage && isNetworkConnected()){ isLoading = true + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } viewModel.loadAudioSongs() } } @@ -301,6 +304,9 @@ class AudioBooksActivity : WokaBaseActivity() { } else { // loading more data binding.loadMoreProgress.show() + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } } } 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 acf6406..edfe88b 100644 --- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -192,7 +192,11 @@ class Home1Fragment : Fragment() { viewModel.player?.play() } - binding.playerView.show() + if (viewModel.errorRetryCount == 0){ + viewModel.reloadPlayer() + } + + binding.playerView.show() } override fun onPause() { 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 ee8db2c..95499bb 100644 --- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -119,6 +119,10 @@ class Home2Fragment : Fragment() { viewModel.player?.play() } + if (viewModel.errorRetryCount == 0){ + viewModel.reloadPlayer() + } + binding.playerView.show() } diff --git a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt index 89bec80..d325634 100644 --- a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt +++ b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt @@ -27,6 +27,7 @@ import com.google.android.gms.ads.AdSize import com.google.android.gms.ads.AdView import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.R +import com.woka.WokaApp import com.woka.WokaApp.Companion.userPrefs import com.woka.advertisements.AdsRepository import com.woka.advertisements.models.ForPage @@ -940,16 +941,27 @@ class MyListFragment : Fragment() { watchCard.setOnClickListener { activity?.let { activity -> gameData.game_url?.let { - startActivity(Intent(activity, GamePlayerActivity::class.java).apply { - putExtra( - GamePlayerActivity.EXTRA_GAME_PLAYER_DATA, - GamePlayerData( - gameData.id, - it, - gameData.screen_orientation == "Landscape" - ) - ) - }) + lifecycleScope.launch { + AdsRepository.getADs()?.let { ads -> + val fmAds = ads.filter { it.slug == ForPage.GAME_INTERSTITIAL.value } + + if (fmAds.isNotEmpty()){ + fmAds.first().google_ad?.let {_ -> + WokaApp.interstitialAds?.showNewAd(activity){ + startActivity(Intent(activity, GamePlayerActivity::class.java).apply { + putExtra(GamePlayerActivity.EXTRA_GAME_PLAYER_DATA, GamePlayerData(gameData.id, it, gameData.screen_orientation == "Landscape")) + }) + } + + return@launch + } + } + } + + startActivity(Intent(activity, GamePlayerActivity::class.java).apply { + putExtra(GamePlayerActivity.EXTRA_GAME_PLAYER_DATA, GamePlayerData(gameData.id, it, gameData.screen_orientation == "Landscape")) + }) + } clickHelper.upsertClickEvent(ContentType.GAME, gameData.id) } 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 26cce63..309f9e6 100644 --- a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt +++ b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt @@ -10,6 +10,7 @@ import android.net.Uri import android.os.Bundle import android.text.Html import android.util.Log +import android.view.View import android.view.WindowManager import androidx.activity.enableEdgeToEdge import androidx.activity.result.ActivityResultLauncher @@ -174,10 +175,13 @@ class KaraokeActivity : WokaBaseActivity() { val percentageScrolled = (scrolledHeight.toFloat()/totalHeight.toFloat()) * 100 - if (percentageScrolled >= 60) { + if (percentageScrolled == 100f) { if (!isLoading && !viewModel.lastPage && isNetworkConnected()){ Log.d("infinite_scroll", "LOAD MORE") isLoading = true + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } viewModel.loadKaraokeSongs() } } @@ -528,6 +532,9 @@ class KaraokeActivity : WokaBaseActivity() { } else { // loading more data binding.loadMoreProgress.show() + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } } } 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 8e00191..9d29858 100644 --- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt @@ -113,7 +113,6 @@ class LanguageFragment : Fragment() { is ApiResult.Loading -> {} is ApiResult.Success -> { progressView.hide() - toast(response.message) requireActivity().changeLocale(locale) response.data?.let { 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 435715c..1005f32 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt @@ -160,7 +160,6 @@ class SignInFragment : Fragment() { is ApiResult.Success -> { progressView.hide() it.data?.let {data -> - toast(it.message) userPrefs?.userType = UserType.GUEST userPrefs?.guestUserName = data.fullname diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt index 0c6b3c9..34e139e 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment3.kt @@ -21,7 +21,6 @@ import com.woka.shop.adapters.ShopProductAdapter import com.woka.shop.viewmodels.ShopViewModel import com.woka.utils.hide import com.woka.utils.isNetworkConnected -import com.woka.utils.setVisibility import com.woka.utils.show class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { @@ -36,7 +35,7 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { private val categoryId: String by lazy { args.categoryId } private val categoryName: String by lazy { args.categoryName } - private var loadMoreProducts = false + private var isLoadMoreProducts = false override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -45,7 +44,7 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { binding = FragmentShop3Binding.inflate(inflater, container, false) viewModel = ViewModelProvider(requireActivity())[ShopViewModel::class.java] productAdapter = ShopProductAdapter() - loadMoreProducts = false + isLoadMoreProducts = false return binding.root } @@ -88,21 +87,21 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { val totalItemCount = layoutManager.itemCount val firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition() - val subCategoryId = categoryTabs.getTabAt(categoryTabs.selectedTabPosition)?.tag + val subCategoryId = categoryTabs.getTabAt(categoryTabs.selectedTabPosition)?.tag?.toString() if ((viewModel.productPagingData["${superCategoryId}_${categoryId}_$subCategoryId"]?.nextPageToLoad?:0) > 0 - && !loadMoreProducts + && !isLoadMoreProducts && viewModel.productPagingData["${superCategoryId}_${categoryId}_$subCategoryId"]?.lastPage == false && context?.isNetworkConnected() == true) { if (visibleItemCount + firstVisibleItemPosition >= totalItemCount && firstVisibleItemPosition >= 0 ) { - Log.d("infinite_scroll", "LOAD MORE ${!loadMoreProducts}") - loadMoreProducts = true + Log.d("infinite_scroll", "LOAD MORE ${!isLoadMoreProducts}") + isLoadMoreProducts = true viewModel.loadMoreProducts( superCategoryId, categoryId, - "$subCategoryId" + subCategoryId ) } } @@ -133,7 +132,6 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { if (selectedTabPos >= 0) { viewModel.subcategoryDataMap["${superCategoryId}_$categoryId"]?.let { subCategories -> if (selectedTabPos < subCategories.size) { - loadMoreProducts = false viewModel.loadProducts(superCategoryId, categoryId, subCategories[selectedTabPos].id?.toString()) ClicksHelper.upsertClickEvent(ContentType.SHOP_PRODUCT, subCategories[selectedTabPos].id) @@ -180,21 +178,23 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { viewModel.productListingLiveData.observe(viewLifecycleOwner){ when (it) { is ApiResult.Error -> { - if (!loadMoreProducts){ + if (!isLoadMoreProducts){ rvProducts.hide() } - loadMoreProducts = false + isLoadMoreProducts = false } is ApiResult.Loading -> { - binding.rvProducts.setVisibility(loadMoreProducts) + if (isLoadMoreProducts){ + rvProducts.show() + } } is ApiResult.Success -> { it.data?.let { productList -> binding.rvProducts.show() - if (loadMoreProducts) { + if (isLoadMoreProducts) { // loaded more data productAdapter.notifyItemRangeInserted( productAdapter.currentList.size, @@ -214,7 +214,7 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { } } - loadMoreProducts = false + isLoadMoreProducts = false } } } 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 08f4110..7a365bc 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 @@ -176,13 +176,16 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener { val percentageScrolled = (scrolledHeight.toFloat()/totalHeight.toFloat()) * 100 - if (percentageScrolled >= 80) { + if (percentageScrolled == 100f) { if (viewModel.episodesNextPageToLoad > 0 && !isLoadingMoreEpisodes && !viewModel.episodesLastPage && context?.isNetworkConnected() == true){ Log.d("infinite_scroll", "LOAD MORE") isLoadingMoreEpisodes = true + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } viewModel.loadEpisodes("${showData.id}", selectedSeasonId) } } @@ -426,6 +429,9 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener { }else { // loading more data binding.loadMoreProgress.show() + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } binding.rvEpisodes.show() binding.seasonMediaType.show() } @@ -437,7 +443,6 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener { binding.rvEpisodes.show() binding.seasonMediaType.show() binding.epShimmer.hide() - binding.loadMoreProgress.hide() if (!isLoadingMoreEpisodes){ // loading new data @@ -449,6 +454,8 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener { episodeAdapter.currentList.size, episodeList.size ) + + binding.loadMoreProgress.hide() } catch (e: Exception) { // do nothing } 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 30969ff..89e4e7c 100644 --- a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt +++ b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt @@ -10,6 +10,7 @@ import android.net.Uri import android.os.Bundle import android.text.Html import android.util.Log +import android.view.View import android.view.WindowManager import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat @@ -149,10 +150,13 @@ class GamesActivity : WokaBaseActivity() { val percentageScrolled = (scrolledHeight.toFloat()/totalHeight.toFloat()) * 100 - if (percentageScrolled >= 80) { + if (percentageScrolled == 100f) { if (!isLoading && !viewModel.lastPage && isNetworkConnected()){ Log.d("infinite_scroll", "LOAD MORE") isLoading = true + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } viewModel.loadGames() } } @@ -464,6 +468,9 @@ class GamesActivity : WokaBaseActivity() { } else { // loading more data binding.loadMoreProgress.show() + binding.loadMoreProgress.post { + binding.nestedScrollView.fullScroll(View.FOCUS_DOWN) + } } } is ApiResult.Success -> { diff --git a/app/src/main/res/layout/fragment_shop3.xml b/app/src/main/res/layout/fragment_shop3.xml index 9dfb027..464f589 100644 --- a/app/src/main/res/layout/fragment_shop3.xml +++ b/app/src/main/res/layout/fragment_shop3.xml @@ -49,7 +49,7 @@ android:layout_width="match_parent" android:layout_height="45dp" android:layout_marginStart="5dp" - android:layout_marginTop="10dp" + android:layout_marginVertical="10dp" app:tabBackground="@drawable/sub_category_tab_bg" app:tabGravity="start" app:tabIndicatorHeight="0dp" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f8bbe78..d6d3fb1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -199,7 +199,7 @@ Dummy Button DUMMY\nCONTENT Warning - Clicking \"OK\" will exit you from the game.\nAre you sure you want to proceed? + Are you sure you want to exit the game? CANCEL OK SING ALONG and DANCE