diff --git a/app/src/main/java/com/woka/audiobooks/AudioBookRepository.kt b/app/src/main/java/com/woka/audiobooks/AudioBookRepository.kt index 8ce62ab..ecd0930 100644 --- a/app/src/main/java/com/woka/audiobooks/AudioBookRepository.kt +++ b/app/src/main/java/com/woka/audiobooks/AudioBookRepository.kt @@ -68,7 +68,7 @@ object AudioBookRepository { private fun changeLikeLocally(id: String, isLiked: Boolean){ // now, not handling data locally but setting flag to load the favorite list - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadAudio = true } fun updateFavShow(audioBookData: AudioBookData, addToBookmark: Boolean){ @@ -92,6 +92,6 @@ object AudioBookRepository { } } - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadAudio = true } } \ No newline at end of file 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 64e5205..0d474ba 100644 --- a/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt +++ b/app/src/main/java/com/woka/audiobooks/adapters/AudioBooksAdapter.kt @@ -12,7 +12,7 @@ import com.woka.WokaApp.Companion.userPrefs import com.woka.audiobooks.AudioBookRepository import com.woka.audiobooks.models.audiodata.AudioBookData import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ShowViewHolderBinding import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected diff --git a/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt b/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt index 929f06d..973ef39 100644 --- a/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt +++ b/app/src/main/java/com/woka/audiobooks/adapters/ContinueAudioAdapter.kt @@ -12,7 +12,7 @@ import com.woka.audiobooks.AudioBookRepository import com.woka.audiobooks.models.audiodata.AudioBookData import com.woka.audiobooks.models.continuedata.ContinueAudioData import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FavViewHolderBinding import com.woka.home.mylist.adapters.FavoriteViewHolder import com.woka.utils.isNetworkConnected 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 f902ed1..81641a2 100644 --- a/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt +++ b/app/src/main/java/com/woka/audiobooks/views/AudioBooksActivity.kt @@ -24,7 +24,7 @@ import com.woka.audiobooks.models.audiodata.AudioBookData import com.woka.audiobooks.models.continuedata.ContinueAudioData import com.woka.audiobooks.viewmodels.AudioBookViewModel import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityAudioBooksBinding import com.woka.databinding.DialogModuleShowerBinding import com.woka.networking.ApiResult diff --git a/app/src/main/java/com/woka/database/AppDatabase.kt b/app/src/main/java/com/woka/database/AppDatabase.kt index 4d2a830..1c53ff8 100644 --- a/app/src/main/java/com/woka/database/AppDatabase.kt +++ b/app/src/main/java/com/woka/database/AppDatabase.kt @@ -5,11 +5,13 @@ import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import com.woka.database.dao.ClicksDao +import com.woka.database.dao.VideoViewDao import com.woka.database.models.clicks.ClickEvent +import com.woka.database.models.videoview.VideoViewEvent private const val DATABASE_NAME = "woka_local_db" -@Database(entities = [ClickEvent::class], version = 1) +@Database(entities = [ClickEvent::class, VideoViewEvent::class], version = 1) abstract class AppDatabase : RoomDatabase(){ companion object{ @@ -31,4 +33,6 @@ abstract class AppDatabase : RoomDatabase(){ } abstract fun clicksDao(): ClicksDao + + abstract fun videoViewDao(): VideoViewDao } \ No newline at end of file diff --git a/app/src/main/java/com/woka/database/dao/ClicksDao.kt b/app/src/main/java/com/woka/database/dao/ClicksDao.kt index 344c945..7ef11ef 100644 --- a/app/src/main/java/com/woka/database/dao/ClicksDao.kt +++ b/app/src/main/java/com/woka/database/dao/ClicksDao.kt @@ -1,14 +1,13 @@ package com.woka.database.dao -import android.util.Log import androidx.room.Dao +import androidx.room.Delete import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import androidx.room.Transaction import com.woka.database.models.clicks.ClickEvent -import com.woka.database.models.clicks.ContentType -import com.woka.utils.TAG +import com.woka.database.models.ContentType /* clickId will always in the following format @@ -41,4 +40,10 @@ interface ClicksDao { ) } } + + @Query("select * from click_events limit :batchSize") + suspend fun getClickEventBatch(batchSize: Int): List + + @Delete + suspend fun deleteClickEvents(clickEvent: List): Int } \ No newline at end of file diff --git a/app/src/main/java/com/woka/database/dao/VideoViewDao.kt b/app/src/main/java/com/woka/database/dao/VideoViewDao.kt new file mode 100644 index 0000000..0fadc2a --- /dev/null +++ b/app/src/main/java/com/woka/database/dao/VideoViewDao.kt @@ -0,0 +1,48 @@ +package com.woka.database.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Transaction +import com.woka.database.models.ContentType +import com.woka.database.models.videoview.VideoViewEvent + +/* + viewId will always in the following format + ${post_type}_${post_id}_${category_id} + */ +@Dao +interface VideoViewDao { + + @Query("UPDATE video_view SET total_watch_duration = total_watch_duration + :watchDuration WHERE id = :viewId") + suspend fun updateAndGetRowCount(viewId: String, watchDuration: Long): Int + + @Insert(onConflict = OnConflictStrategy.IGNORE) + suspend fun insert(vararg videoViewEvent: VideoViewEvent) + + @Transaction + suspend fun upsertVideoView(contentType: ContentType, watchDuration: Long, postId: Int, categoryId: Int = 0){ + val viewId = "${contentType.id}_${postId}_${categoryId}" + + val count = updateAndGetRowCount(viewId, watchDuration) + if (count == 0){ + insert( + VideoViewEvent( + viewId, + postId, + contentType.id, + categoryId, + watchDuration + ) + ) + } + } + + @Query("select * from video_view limit :batchSize") + suspend fun getVideoViewEventBatch(batchSize: Int = 10): List + + @Delete + suspend fun deleteVideoViewEvents(videoViews: List): Int +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/database/helpers/ClicksHelper.kt b/app/src/main/java/com/woka/database/helpers/ClicksHelper.kt index 394cb0e..c6e1aef 100644 --- a/app/src/main/java/com/woka/database/helpers/ClicksHelper.kt +++ b/app/src/main/java/com/woka/database/helpers/ClicksHelper.kt @@ -2,7 +2,7 @@ package com.woka.database.helpers import com.woka.WokaApp.Companion.appDatabase import com.woka.database.dao.ClicksDao -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/woka/database/helpers/RemoteSync.kt b/app/src/main/java/com/woka/database/helpers/RemoteSync.kt new file mode 100644 index 0000000..1d20627 --- /dev/null +++ b/app/src/main/java/com/woka/database/helpers/RemoteSync.kt @@ -0,0 +1,66 @@ +package com.woka.database.helpers + +import android.util.Log +import com.woka.WokaApp.Companion.appDatabase +import com.woka.database.remote.RemoteApiService +import com.woka.database.remote.models.RemoteClickEvent +import com.woka.networking.ApiResult +import com.woka.networking.RetrofitHelper +import com.woka.networking.RetrofitHelper.handleApiCall +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch + +private const val SYNC_BATCH_COUNT = 10 + +object RemoteSync { + + private const val TAG = "aditya_RemoteSync" + + private val clicksDao = appDatabase?.clicksDao() + private val apiService = RetrofitHelper.getRetrofit().create(RemoteApiService::class.java) + + fun syncClickEvents(){ + CoroutineScope(Dispatchers.IO).launch { + Log.d(TAG, "syncClickEvents: CLICK EVENTS SYNC CALLED") + + var roundCount = 0 + + while (true){ + val clicksBatch = clicksDao?.getClickEventBatch(SYNC_BATCH_COUNT) + + if (clicksDao == null || clicksBatch.isNullOrEmpty()){ + Log.d(TAG, "syncClickEvents: RECEIVED BATCH IS EMPTY") + break + } + + Log.d(TAG, "syncClickEvents: BATCH COUNT FROM DATABASE ${clicksBatch.size}") + when (val response = handleApiCall{ apiService.sendClickEvents(clicksBatch.map { RemoteClickEvent(it) })}){ + is ApiResult.Error -> { + Log.e(TAG, "syncClickEvents: BATCH SYNC FAILED due to ${response.errorMessage}", response.error) + break + } + is ApiResult.Loading -> {} + is ApiResult.Success -> { + Log.d(TAG, "syncClickEvents: BATCH SYNC IS SUCCESSFUL") + + Log.d(TAG, "syncClickEvents: DELETING SYNCED DATA FROM LOCAL DATABASE") + val deleteCount = clicksDao.deleteClickEvents(clicksBatch) + Log.d(TAG, "syncClickEvents: $deleteCount ENTRIES ARE DELETED FROM LOCAL DATABASE") + + if (deleteCount <= 0){ + Log.e(TAG, "syncClickEvents: NO ENTRIES WERE DELETED FROM LOCAL DATABASE") + } + + roundCount++ + } + } + + Log.d(TAG, "syncClickEvents: \n") + } + + Log.d(TAG, "syncClickEvents: NUMBER OF ROUND : $roundCount") + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/database/helpers/VideoViewHelper.kt b/app/src/main/java/com/woka/database/helpers/VideoViewHelper.kt new file mode 100644 index 0000000..08476ef --- /dev/null +++ b/app/src/main/java/com/woka/database/helpers/VideoViewHelper.kt @@ -0,0 +1,22 @@ +package com.woka.database.helpers + +import com.woka.WokaApp.Companion.appDatabase +import com.woka.database.dao.VideoViewDao +import com.woka.database.models.ContentType +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch + +object VideoViewHelper { + private val videoViewDao: VideoViewDao? = appDatabase?.videoViewDao() + fun upsertVideoView(contentType: ContentType, watchDuration: Long, postId: Int, categoryId: String? = null){ + CoroutineScope(Dispatchers.IO).launch { + val categoryInt = try { + categoryId?.toIntOrNull()?:0 + }catch (e: Exception){ + 0 + } + videoViewDao?.upsertVideoView(contentType, watchDuration, postId, categoryInt) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/database/models/clicks/ContentType.kt b/app/src/main/java/com/woka/database/models/ContentType.kt similarity index 95% rename from app/src/main/java/com/woka/database/models/clicks/ContentType.kt rename to app/src/main/java/com/woka/database/models/ContentType.kt index 37774d7..3525e54 100644 --- a/app/src/main/java/com/woka/database/models/clicks/ContentType.kt +++ b/app/src/main/java/com/woka/database/models/ContentType.kt @@ -1,4 +1,4 @@ -package com.woka.database.models.clicks +package com.woka.database.models enum class ContentType(val id: Int) { SERIES(1), diff --git a/app/src/main/java/com/woka/database/models/videoview/VideoViewEvent.kt b/app/src/main/java/com/woka/database/models/videoview/VideoViewEvent.kt new file mode 100644 index 0000000..1d21565 --- /dev/null +++ b/app/src/main/java/com/woka/database/models/videoview/VideoViewEvent.kt @@ -0,0 +1,17 @@ +package com.woka.database.models.videoview + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +private const val DB_TABLE_NAME = "video_view" + +@Entity(tableName = DB_TABLE_NAME) +data class VideoViewEvent( + @PrimaryKey + @ColumnInfo(name = "id") val viewId: String, + @ColumnInfo(name = "post_id") val postId: Int, + @ColumnInfo(name = "post_type") val postType: Int, + @ColumnInfo(name = "categoryId") val categoryId: Int, + @ColumnInfo(name = "total_watch_duration") val watchDuration: Long +) diff --git a/app/src/main/java/com/woka/database/remote/RemoteApiService.kt b/app/src/main/java/com/woka/database/remote/RemoteApiService.kt new file mode 100644 index 0000000..9ba0a71 --- /dev/null +++ b/app/src/main/java/com/woka/database/remote/RemoteApiService.kt @@ -0,0 +1,13 @@ +package com.woka.database.remote + +import com.woka.database.remote.models.RemoteClickEvent +import com.woka.networking.ApiResponse +import retrofit2.Response +import retrofit2.http.Body +import retrofit2.http.POST + +interface RemoteApiService { + + @POST("v2/user_clicks") + suspend fun sendClickEvents(@Body clickEventList: List): Response> +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/database/remote/models/RemoteClickEvent.kt b/app/src/main/java/com/woka/database/remote/models/RemoteClickEvent.kt new file mode 100644 index 0000000..910c549 --- /dev/null +++ b/app/src/main/java/com/woka/database/remote/models/RemoteClickEvent.kt @@ -0,0 +1,18 @@ +package com.woka.database.remote.models + +import com.woka.database.models.clicks.ClickEvent + +data class RemoteClickEvent( + val number_of_clicks: Int?, + val post_id: Int?, + val post_type: Int?, + val category_id: Int? = null, + val device_type: Int = 1 +){ + constructor(clickEvent: ClickEvent): this( + clickEvent.clickCount, + clickEvent.postId, + clickEvent.postType, + clickEvent.categoryId + ) +} \ No newline at end of file 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 5c2dba8..403cb5a 100644 --- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -21,7 +21,7 @@ import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.audiobooks.views.AudioBooksActivity import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentHome1Binding import com.woka.home.models.TimePeriod import com.woka.home.viewmodels.HomeViewModel 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 397a6af..f250f78 100644 --- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -13,7 +13,7 @@ import com.woka.R import com.woka.WokaApp import com.woka.audiobooks.views.AudioBooksActivity import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentHome2Binding import com.woka.home.viewmodels.HomeViewModel import com.woka.home.views.FMActivity 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 98fcc46..ef5b348 100644 --- a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt +++ b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt @@ -26,7 +26,7 @@ import com.woka.WokaApp.Companion.userPrefs import com.woka.audiobooks.AudioBookRepository import com.woka.audiobooks.models.audiodata.AudioBookData import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.DialogModuleShowerBinding import com.woka.databinding.FragmentMyListBinding import com.woka.home.mylist.MyListRepository @@ -134,6 +134,8 @@ class MyListFragment : Fragment() { binding.noSignInView.show() } + updateListData() + return binding.root } @@ -411,6 +413,30 @@ class MyListFragment : Fragment() { } } + private fun updateListData(){ + with(MyListRepository){ + if (shallLoadSeriesEng){ + onWebShowItemChanged("1") + } + + if (shallLoadSeriesHin){ + onWebShowItemChanged("18") + } + + if (shallLoadKaraoke){ + onKaraokeChanged() + } + + if (shallLoadGames){ + onGameChanged() + } + + if (shallLoadAudio){ + onAudioItemChanged() + } + } + } + private fun setObservers() { binding.apply { viewModel.localeChangeLiveData.observe(viewLifecycleOwner) { @@ -535,6 +561,8 @@ class MyListFragment : Fragment() { "1" -> { it.english?.let {engList -> if (engList.isNotEmpty()) { + binding.webSeriesEnglishView.show() + binding.noData.hide() webSeriesEAdapter.submitList(engList) } else { onListGotEmpty(PostType.WEB_SERIES, true) @@ -549,6 +577,8 @@ class MyListFragment : Fragment() { "18" -> { it.hindi?.let {hinList -> if (hinList.isNotEmpty()) { + binding.webSeriesHindiView.show() + binding.noData.hide() webSeriesHAdapter.submitList(hinList) } else { onListGotEmpty(PostType.WEB_SERIES, false) @@ -683,7 +713,7 @@ class MyListFragment : Fragment() { onAudioItemChanged() } else { // item was not at last removed - MyListRepository.setLoadNewDataFlag(false) + MyListRepository.shallLoadAudio = false } clickHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id) @@ -713,6 +743,8 @@ class MyListFragment : Fragment() { is ApiResult.Success -> { response.data?.result?.audio_data?.let { if (it.isNotEmpty()) { + binding.audioBooksView.show() + binding.noData.hide() audioBooksAdapter.submitList(it) } else { onListGotEmpty(PostType.AUDIO_BOOKS) @@ -908,7 +940,7 @@ class MyListFragment : Fragment() { onGameChanged() } else { // item was not at last removed - MyListRepository.setLoadNewDataFlag(false) + MyListRepository.shallLoadGames = false } clickHelper.upsertClickEvent(ContentType.GAME, gameData.id) @@ -938,6 +970,8 @@ class MyListFragment : Fragment() { is ApiResult.Success -> { response.data?.result?.game_data?.let { if (it.isNotEmpty()) { + binding.gamesView.show() + binding.noData.hide() gamesAdapter.submitList(it) } else { onListGotEmpty(PostType.GAMES) @@ -1115,7 +1149,7 @@ class MyListFragment : Fragment() { onKaraokeChanged() } else { // item was not at last removed - MyListRepository.setLoadNewDataFlag(false) + MyListRepository.shallLoadKaraoke = false } clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id) @@ -1145,6 +1179,8 @@ class MyListFragment : Fragment() { is ApiResult.Success -> { response.data?.result?.sing_karaoke_data?.let { if (it.isNotEmpty()) { + binding.karaokeView.show() + binding.noData.hide() karaokeAdapter.submitList(it) } else { onListGotEmpty(PostType.KARAOKE) diff --git a/app/src/main/java/com/woka/home/mylist/MyListRepository.kt b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt index d0e059a..1f0f127 100644 --- a/app/src/main/java/com/woka/home/mylist/MyListRepository.kt +++ b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt @@ -66,39 +66,46 @@ object MyListRepository { } } + var shallLoadSeriesHin = false + var shallLoadSeriesEng = false fun updateSeriesList(bookmarkedShowData: MutableList, categoryId: String) { when (categoryId){ "1" -> { myFavData.result?.show_data?.english?.clear() myFavData.result?.show_data?.english?.addAll(bookmarkedShowData) + + shallLoadSeriesEng = false } "18" -> { myFavData.result?.show_data?.hindi?.clear() myFavData.result?.show_data?.hindi?.addAll(bookmarkedShowData) + + shallLoadSeriesHin = false } } - - shallLoadNewData = false } + var shallLoadAudio = false fun updateAudioList(bookmarkedShowData: MutableList) { myFavData.result?.audio_data?.clear() myFavData.result?.audio_data?.addAll(bookmarkedShowData) - shallLoadNewData = false + shallLoadAudio = false } + var shallLoadGames = false fun updateGameList(it: MutableList) { myFavData.result?.game_data?.clear() myFavData.result?.game_data?.addAll(it) - shallLoadNewData = false + shallLoadGames = false } + var shallLoadKaraoke = false fun updateKaraokeList(it: MutableList) { myFavData.result?.sing_karaoke_data?.clear() myFavData.result?.sing_karaoke_data?.addAll(it) - shallLoadNewData = false + shallLoadKaraoke = false } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/mylist/view/FavoritesActivity.kt b/app/src/main/java/com/woka/home/mylist/view/FavoritesActivity.kt index 4e511ee..493434f 100644 --- a/app/src/main/java/com/woka/home/mylist/view/FavoritesActivity.kt +++ b/app/src/main/java/com/woka/home/mylist/view/FavoritesActivity.kt @@ -10,7 +10,7 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityFavoritesBinding import com.woka.home.mylist.view.fragments.FavAudioFragment import com.woka.home.mylist.view.fragments.FavGameFragment diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt index c5ff4cc..e3d8eea 100644 --- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt +++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavAudioFragment.kt @@ -21,7 +21,7 @@ import com.woka.audiobooks.AudioBookRepository import com.woka.audiobooks.adapters.AudioBooksAdapter import com.woka.audiobooks.models.audiodata.AudioBookData import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.DialogModuleShowerBinding import com.woka.databinding.FragmentFavoritesBinding import com.woka.home.mylist.MyListRepository @@ -292,10 +292,10 @@ class FavAudioFragment : Fragment() { moduleShowerDialog.setOnDismissListener { if (itemRemovedFromDialog) { // item was removed at last -// onAudioItemChanged() + onAudioItemChanged(audioBookData) } else { // item was not at last removed - MyListRepository.setLoadNewDataFlag(false) + MyListRepository.shallLoadAudio = false } clickHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id) @@ -361,4 +361,24 @@ class FavAudioFragment : Fragment() { } } + private fun onAudioItemChanged(audioBookData: AudioBookData) { + if (viewModel.lastPage){ + val position = adapter.currentList.indexOfFirst { it.id == audioBookData.id } + if (position >= 0 && position < adapter.currentList.size){ + val list = adapter.currentList.toMutableList() + list.removeAt(position) + + if (list.isNotEmpty()){ + adapter.submitList(list) + }else{ + binding.noData.show() + binding.rvFavorites.hide() + } + } + }else{ + viewModel.resetPagination() + viewModel.loadFavorites(ContentType.AUDIO) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt index 99ee7ba..5f91ef4 100644 --- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt +++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavGameFragment.kt @@ -17,11 +17,10 @@ import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.DialogModuleShowerBinding import com.woka.databinding.FragmentFavoritesBinding import com.woka.home.mylist.MyListRepository -import com.woka.home.mylist.models.FavGameData import com.woka.home.mylist.viewmodel.FavoriteViewModel import com.woka.networking.ApiResult import com.woka.utils.hide @@ -297,10 +296,10 @@ class FavGameFragment : Fragment() { moduleShowerDialog.setOnDismissListener { if (itemRemovedFromDialog) { // item was removed at last -// onGameChanged() + onGameChanged(gameData) } else { // item was not at last removed - MyListRepository.setLoadNewDataFlag(false) + MyListRepository.shallLoadGames = false } clickHelper.upsertClickEvent(ContentType.GAME, gameData.id) @@ -315,4 +314,24 @@ class FavGameFragment : Fragment() { clickHelper.upsertClickEvent(ContentType.GAME, gameData.id) } + private fun onGameChanged(gameData: GameData) { + if (viewModel.lastPage){ + val position = adapter.currentList.indexOfFirst { it.id == gameData.id } + if (position >= 0 && position < adapter.currentList.size){ + val list = adapter.currentList.toMutableList() + list.removeAt(position) + + if (list.isNotEmpty()){ + adapter.submitList(list) + }else{ + binding.noData.show() + binding.rvFavorites.hide() + } + } + }else{ + viewModel.resetPagination() + viewModel.loadFavorites(ContentType.GAME) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt index 5e3a652..3077c76 100644 --- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt +++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavKaraokeFragment.kt @@ -17,7 +17,7 @@ import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.DialogModuleShowerBinding import com.woka.databinding.FragmentFavoritesBinding import com.woka.home.mylist.MyListRepository @@ -321,10 +321,10 @@ class FavKaraokeFragment : Fragment() { moduleShowerDialog.setOnDismissListener { if (itemRemovedFromDialog) { // item was removed at last -// onKaraokeChanged() + onKaraokeChanged(karaokeData) } else { // item was not at last removed - MyListRepository.setLoadNewDataFlag(false) + MyListRepository.shallLoadKaraoke = false } clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id) @@ -339,5 +339,24 @@ class FavKaraokeFragment : Fragment() { clickHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id) } + private fun onKaraokeChanged(karaokeData: KaraokeData) { + if (viewModel.lastPage){ + val position = adapter.currentList.indexOfFirst { it.id == karaokeData.id } + if (position >= 0 && position < adapter.currentList.size){ + val list = adapter.currentList.toMutableList() + list.removeAt(position) + + if (list.isNotEmpty()){ + adapter.submitList(list) + }else{ + binding.noData.show() + binding.rvFavorites.hide() + } + } + }else{ + viewModel.resetPagination() + viewModel.loadFavorites(ContentType.KARAOKE_VIDEO) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/mylist/view/fragments/FavSeriesFragment.kt b/app/src/main/java/com/woka/home/mylist/view/fragments/FavSeriesFragment.kt index 5b40430..11aa685 100644 --- a/app/src/main/java/com/woka/home/mylist/view/fragments/FavSeriesFragment.kt +++ b/app/src/main/java/com/woka/home/mylist/view/fragments/FavSeriesFragment.kt @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentFavoritesBinding import com.woka.home.mylist.viewmodel.FavoriteViewModel import com.woka.networking.ApiResult diff --git a/app/src/main/java/com/woka/home/mylist/viewmodel/FavoriteViewModel.kt b/app/src/main/java/com/woka/home/mylist/viewmodel/FavoriteViewModel.kt index e33604b..3ec23dc 100644 --- a/app/src/main/java/com/woka/home/mylist/viewmodel/FavoriteViewModel.kt +++ b/app/src/main/java/com/woka/home/mylist/viewmodel/FavoriteViewModel.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.home.mylist.models.MyListResponse import com.woka.home.mylist.models.Result import com.woka.home.mylist.models.ShowDataResponse @@ -147,5 +147,12 @@ class FavoriteViewModel : ViewModel() { fun resetPagination() { nextPageToLoad = 0 lastPage = false + + myListResponse.result?.show_data?.english?.clear() + myListResponse.result?.show_data?.hindi?.clear() + + myListResponse.result?.audio_data?.clear() + myListResponse.result?.game_data?.clear() + myListResponse.result?.sing_karaoke_data?.clear() } } \ No newline at end of file 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 89c720d..39da62f 100644 --- a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt +++ b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt @@ -8,7 +8,7 @@ import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.audiobooks.views.AudioBooksActivity import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityNotificationsBinding import com.woka.karaoke.views.KaraokeActivity import com.woka.networking.ApiResult diff --git a/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt b/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt index 84ae70d..991032c 100644 --- a/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt +++ b/app/src/main/java/com/woka/home/sidebar/aboutwoka/AboutActivity.kt @@ -8,7 +8,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityAboutBinding import com.woka.utils.WokaBaseActivity import com.woka.utils.lightStatusBar diff --git a/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt b/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt index 7cbf63f..ba8abcd 100644 --- a/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt +++ b/app/src/main/java/com/woka/home/sidebar/faqs/FaqActivity.kt @@ -9,7 +9,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityFaqBinding import com.woka.modules.faqs.FAQsRepository import com.woka.networking.ApiResult diff --git a/app/src/main/java/com/woka/home/sidebar/faqs/FaqsAdapter.kt b/app/src/main/java/com/woka/home/sidebar/faqs/FaqsAdapter.kt index c4de68c..869e75a 100644 --- a/app/src/main/java/com/woka/home/sidebar/faqs/FaqsAdapter.kt +++ b/app/src/main/java/com/woka/home/sidebar/faqs/FaqsAdapter.kt @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FaqViewHolderBinding import com.woka.modules.faqs.models.Faq import com.woka.utils.hide 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 3dfceb3..6817e9e 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 @@ -11,7 +11,7 @@ import com.bumptech.glide.Glide import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityUserProfileBinding import com.woka.networking.ApiResult import com.woka.userPreference.UserType diff --git a/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt b/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt index cadd073..c9a972b 100644 --- a/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt +++ b/app/src/main/java/com/woka/home/sidebar/support/SupportActivity.kt @@ -16,7 +16,7 @@ import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivitySupportBinding import com.woka.networking.ApiResult import com.woka.utils.ProgressView diff --git a/app/src/main/java/com/woka/home/views/ExploreWokaActivity.kt b/app/src/main/java/com/woka/home/views/ExploreWokaActivity.kt index 19f68c2..bdd8d34 100644 --- a/app/src/main/java/com/woka/home/views/ExploreWokaActivity.kt +++ b/app/src/main/java/com/woka/home/views/ExploreWokaActivity.kt @@ -12,7 +12,7 @@ import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.audiobooks.views.AudioBooksActivity import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityExploreWokaBinding import com.woka.karaoke.views.KaraokeActivity import com.woka.modules.blogs.view.BlogsActivity 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 31b755b..cb512dc 100644 --- a/app/src/main/java/com/woka/home/views/FMActivity.kt +++ b/app/src/main/java/com/woka/home/views/FMActivity.kt @@ -13,7 +13,7 @@ import androidx.media3.common.Player import androidx.media3.exoplayer.ExoPlayer import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityFmactivityBinding import com.woka.utils.TAG import com.woka.utils.WokaBaseActivity 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 e0d9600..7e81f58 100644 --- a/app/src/main/java/com/woka/home/views/HomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/HomeActivity.kt @@ -27,7 +27,7 @@ import com.woka.BuildConfig import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityHomeBinding import com.woka.home.fragments.Home1Fragment import com.woka.home.fragments.Home2Fragment 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 5077984..8cf82d6 100644 --- a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt @@ -18,7 +18,7 @@ import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityMoreHomeBinding import com.woka.databinding.DialogBlogsBinding import com.woka.modules.blogs.BlogsAdapter diff --git a/app/src/main/java/com/woka/karaoke/KaraokeRepository.kt b/app/src/main/java/com/woka/karaoke/KaraokeRepository.kt index f406164..eed3d71 100644 --- a/app/src/main/java/com/woka/karaoke/KaraokeRepository.kt +++ b/app/src/main/java/com/woka/karaoke/KaraokeRepository.kt @@ -70,7 +70,7 @@ object KaraokeRepository { private fun changeLikeLocally(id: String, isLiked: Boolean){ // now, not handling data locally but setting flag to load the favorite list - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadKaraoke = true } fun updateFavShow(karaoke: KaraokeData, addToBookmark: Boolean){ @@ -94,7 +94,7 @@ object KaraokeRepository { } } - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadKaraoke = true } } \ No newline at end of file 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 f74a55c..8813366 100644 --- a/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt +++ b/app/src/main/java/com/woka/karaoke/adapters/KaraokeAdapter.kt @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ShowViewHolderBinding import com.woka.karaoke.KaraokeRepository import com.woka.karaoke.models.listing.KaraokeData 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 67f7871..63911e4 100644 --- a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt +++ b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt @@ -32,7 +32,7 @@ import androidx.media3.common.util.UnstableApi import androidx.media3.exoplayer.ExoPlayer import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityKaraokePlayerrBinding import com.woka.players.models.PlayBackState import com.woka.utils.TAG 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 07538d3..9e3fa77 100644 --- a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt +++ b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt @@ -18,7 +18,7 @@ import com.google.android.material.appbar.CollapsingToolbarLayout import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityKaraokeBinding import com.woka.databinding.DialogModuleShowerBinding import com.woka.karaoke.KaraokeRepository diff --git a/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt b/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt index 9e9b227..2e5aec5 100644 --- a/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt +++ b/app/src/main/java/com/woka/modules/blogs/view/BlogsActivity.kt @@ -14,7 +14,7 @@ import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.WokaApp import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityBlogsBinding import com.woka.databinding.DialogBlogsBinding import com.woka.modules.blogs.BlogsGridAdapter diff --git a/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt b/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt index 8b6b5f5..dadfb47 100644 --- a/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt +++ b/app/src/main/java/com/woka/modules/disclaimer/DisclaimerActivity.kt @@ -6,7 +6,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityDisclaimerBinding import com.woka.utils.WokaBaseActivity 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 a287c20..b085d1d 100644 --- a/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt +++ b/app/src/main/java/com/woka/modules/webview/WebViewActivity.kt @@ -14,7 +14,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityWebViewBinding import com.woka.utils.WEBSITE_BASE_URL import com.woka.utils.WokaBaseActivity 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 57db915..8c44ad9 100644 --- a/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt +++ b/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt @@ -14,7 +14,7 @@ import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.WokaSongViewHolderBinding import com.woka.modules.wokasongs.models.SongData import com.woka.utils.formatTime 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 f73c9dc..5e1f61a 100644 --- a/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/AgeSelectionFragment.kt @@ -10,7 +10,7 @@ import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentAgeSelectBinding import com.woka.onboard.fragments.GetEmailFragment.Companion.IS_UNDER_16 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 9dda642..95a7e95 100644 --- a/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/ChildListFragment.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentChildListBinding import com.woka.onboard.adapters.ChildAdapter import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG 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 de06de0..7b1e3d2 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt @@ -14,7 +14,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentGetCodeBinding import com.woka.networking.ApiResult import com.woka.networking.NoSuccessError 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 a89d466..3d826ee 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentGetEmailBinding import com.woka.networking.ApiResult import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG 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 36efb14..a70dc1b 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentGetMoreInfoBinding import com.woka.networking.ApiResult import com.woka.onboard.views.InterestTopicView 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 a21c97d..a9f1033 100644 --- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt @@ -10,7 +10,7 @@ import androidx.core.app.ActivityOptionsCompat import androidx.fragment.app.Fragment import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentLanguageBinding import com.woka.onboard.views.OnboardActivity import com.woka.utils.LOCALE_ENGLISH 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 e490097..c8d0d65 100644 --- a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt @@ -5,12 +5,11 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Toast import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentNewPasswordBinding import com.woka.networking.ApiResult import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG 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 5fe8e31..341aaba 100644 --- a/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/OnboardFragment.kt @@ -17,7 +17,7 @@ import com.google.firebase.ktx.Firebase import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentOnboardBinding import com.woka.home.views.HomeActivity import com.woka.networking.ApiResult 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 93de522..ca26965 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt @@ -14,7 +14,7 @@ import com.onesignal.OneSignal import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentSelectAvatarBinding import com.woka.home.views.HomeActivity import com.woka.networking.ApiResult 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 aa6fc06..939e224 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt @@ -15,7 +15,7 @@ import com.google.firebase.ktx.Firebase import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentSignInBinding import com.woka.home.views.HomeActivity import com.woka.networking.ApiResult 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 a97d6bc..edd938d 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt @@ -7,12 +7,11 @@ import android.view.LayoutInflater import android.view.View import android.view.View.VISIBLE import android.view.ViewGroup -import android.widget.Toast import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentSignUpBinding import com.woka.networking.ApiResult import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG 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 e7491cb..4e4db38 100644 --- a/app/src/main/java/com/woka/onboard/views/OnboardActivity.kt +++ b/app/src/main/java/com/woka/onboard/views/OnboardActivity.kt @@ -10,7 +10,7 @@ import androidx.navigation.fragment.NavHostFragment import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG import com.woka.onboard.fragments.GetEmailFragment.Companion.IS_UNDER_16 import com.woka.onboard.fragments.SignUpFragment.Companion.ADD_CHILD_EVENT diff --git a/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt b/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt index e98a561..2163139 100644 --- a/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt +++ b/app/src/main/java/com/woka/players/models/VideoViewRequestData.kt @@ -1,7 +1,7 @@ package com.woka.players.models import android.os.Parcelable -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import kotlinx.parcelize.Parcelize @Parcelize 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 ea9a161..76c6599 100644 --- a/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt +++ b/app/src/main/java/com/woka/players/views/LiveStreamPlayerActivity.kt @@ -18,7 +18,7 @@ import com.jwplayer.pub.api.events.listeners.VideoPlayerEvents import com.jwplayer.pub.api.fullscreen.FullscreenHandler import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityLiveStreamPlayerBinding import com.woka.players.KeepScreenOnHandler import com.woka.players.models.PlayBackState @@ -51,6 +51,9 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler { private var errorRetryCount = ERROR_RETRY_COUNT + private var playbackStartTime: Long = 0 + private var totalPlaybackDuration: Long = 0 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -95,6 +98,16 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler { } + override fun onPause() { + super.onPause() + player.pause() + } + + override fun onResume() { + super.onResume() + player.pause() + } + override fun onDestroy() { super.onDestroy() player.stop() @@ -128,13 +141,20 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler { binding.playerView.show() binding.errorView.hide() - upsertClickEvent() - errorRetryCount = ERROR_RETRY_COUNT + playbackStartTime = System.currentTimeMillis() + + upsertClickEvent() }) player.addListener(EventType.PAUSE, VideoPlayerEvents.OnPauseListener { playbackState = PlayBackState.PAUSED + if (playbackStartTime > 0) { + val elapsed = System.currentTimeMillis() - playbackStartTime + totalPlaybackDuration += elapsed + playbackStartTime = 0 + } + upsertClickEvent() }) player.addListener(EventType.ERROR, VideoPlayerEvents.OnErrorListener { @@ -146,6 +166,12 @@ class LiveStreamPlayerActivity : AppCompatActivity(), FullscreenHandler { binding.playerView.hide() binding.errorView.show() } + + if (playbackStartTime > 0) { + val elapsed = System.currentTimeMillis() - playbackStartTime + totalPlaybackDuration += elapsed + playbackStartTime = 0 + } }) (getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager).registerNetworkCallback( 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 85ae60c..0b0dc17 100644 --- a/app/src/main/java/com/woka/players/views/PlayerActivity.kt +++ b/app/src/main/java/com/woka/players/views/PlayerActivity.kt @@ -19,7 +19,7 @@ import com.jwplayer.pub.api.events.EventType import com.jwplayer.pub.api.events.listeners.VideoPlayerEvents import com.jwplayer.pub.api.fullscreen.FullscreenHandler import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityPlayerBinding import com.woka.players.KeepScreenOnHandler import com.woka.players.models.PlayBackState diff --git a/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt b/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt index 4467e1f..1621959 100644 --- a/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt +++ b/app/src/main/java/com/woka/shop/adapters/ParentAddressAdapter.kt @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.CartAddressViewHolderBinding import com.woka.shop.models.addresslisting.ParentAddressData import com.woka.shop.viewmodels.CartViewModel diff --git a/app/src/main/java/com/woka/shop/viewmodels/ShopViewModel.kt b/app/src/main/java/com/woka/shop/viewmodels/ShopViewModel.kt index ee724f4..01ec402 100644 --- a/app/src/main/java/com/woka/shop/viewmodels/ShopViewModel.kt +++ b/app/src/main/java/com/woka/shop/viewmodels/ShopViewModel.kt @@ -107,14 +107,14 @@ class ShopViewModel: ViewModel() { } // product listing - private val _productListingLiveData = MutableLiveData>>() - val productListingLiveData: LiveData>> + private val _productListingLiveData = MutableLiveData>>() + val productListingLiveData: LiveData>> get() = _productListingLiveData var productPagingData = HashMap() // product data for every super-category, category and sub-category - private var productDataMap = HashMap>() + private var productDataMap = HashMap>() fun loadProducts(superCategoryId: String, categoryId: String, subCategoryId: String?) { val key = "${superCategoryId}_${categoryId}_$subCategoryId" @@ -161,7 +161,7 @@ class ShopViewModel: ViewModel() { is ApiResult.Success -> { response.data?.let { data -> data.result?.filterNotNull()?.let { newList -> - val currentList = productDataMap.getOrDefault(key, HashSet()) + val currentList = productDataMap.getOrDefault(key, ArrayList()) currentList.addAll(newList) productDataMap[key] = currentList diff --git a/app/src/main/java/com/woka/shop/views/AddressActivity.kt b/app/src/main/java/com/woka/shop/views/AddressActivity.kt index 0701557..f4d5ffe 100644 --- a/app/src/main/java/com/woka/shop/views/AddressActivity.kt +++ b/app/src/main/java/com/woka/shop/views/AddressActivity.kt @@ -6,7 +6,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityAddressBinding import com.woka.utils.WokaBaseActivity diff --git a/app/src/main/java/com/woka/shop/views/CartActivity.kt b/app/src/main/java/com/woka/shop/views/CartActivity.kt index fdd0547..5cf9296 100644 --- a/app/src/main/java/com/woka/shop/views/CartActivity.kt +++ b/app/src/main/java/com/woka/shop/views/CartActivity.kt @@ -1,13 +1,12 @@ package com.woka.shop.views import android.os.Bundle -import android.window.OnBackInvokedDispatcher import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.lifecycle.ViewModelProvider import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityCartBinding import com.woka.shop.viewmodels.CartViewModel import com.woka.utils.WokaBaseActivity diff --git a/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt b/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt index 2acc397..fdef6f1 100644 --- a/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt +++ b/app/src/main/java/com/woka/shop/views/MyOrdersActivity.kt @@ -2,7 +2,6 @@ package com.woka.shop.views import android.content.Intent import android.os.Bundle -import android.window.OnBackInvokedDispatcher import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat @@ -12,7 +11,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialog import com.woka.R import com.woka.WokaApp import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityMyOrdersBinding import com.woka.databinding.BsOrderTrackingBinding import com.woka.networking.ApiResult diff --git a/app/src/main/java/com/woka/shop/views/ShopActivity.kt b/app/src/main/java/com/woka/shop/views/ShopActivity.kt index 77ab57a..f678b55 100644 --- a/app/src/main/java/com/woka/shop/views/ShopActivity.kt +++ b/app/src/main/java/com/woka/shop/views/ShopActivity.kt @@ -2,7 +2,6 @@ package com.woka.shop.views import android.content.Intent import android.os.Bundle -import android.window.OnBackInvokedDispatcher import androidx.activity.enableEdgeToEdge import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts @@ -12,7 +11,7 @@ import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityShopBinding import com.woka.shop.viewmodels.ShopViewModel import com.woka.shop.views.CartActivity.Companion.EXTRA_CURRENT_PRODUCT diff --git a/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt index 374839d..0278da4 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/address/AddAddressFragment.kt @@ -12,7 +12,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.navArgs import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentAddAddressBinding import com.woka.networking.ApiResult import com.woka.shop.models.addaddress.AddAddressRequestData diff --git a/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt index db3d306..2764d1a 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/address/PinCodeFragment.kt @@ -11,7 +11,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentPinCodeBinding import com.woka.networking.ApiResult import com.woka.shop.viewmodels.AddressViewModel diff --git a/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt index 96c3232..c6c3ad8 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/cart/CartFragment.kt @@ -2,7 +2,6 @@ package com.woka.shop.views.fragments.cart import android.content.Intent import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -14,7 +13,7 @@ import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentCartBinding import com.woka.networking.ApiResult import com.woka.shop.adapters.CartAdapter @@ -23,7 +22,6 @@ import com.woka.shop.views.CartActivity.Companion.EXTRA_CURRENT_PRODUCT import com.woka.userPreference.UserType import com.woka.utils.DecisionDialog import com.woka.utils.ProgressView -import com.woka.utils.TAG import com.woka.utils.hide import com.woka.utils.show import com.woka.utils.toast diff --git a/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt index 8ef7983..75822a7 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/cart/OrderSummaryFragment.kt @@ -11,7 +11,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentOrderSummaryBinding import com.woka.networking.ApiResult import com.woka.shop.adapters.CouponAdapter diff --git a/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt index aca7e3e..508e39c 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/cart/ParentAddressFragment.kt @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentParentAddressBinding import com.woka.networking.ApiResult import com.woka.shop.adapters.ParentAddressAdapter @@ -121,6 +121,9 @@ class ParentAddressFragment : Fragment() { binding.rvAddresses.smoothScrollToPosition(adapter.currentList.size) } finally { viewModel.addNewAddress(parentAddressData) + + binding.noDataView.hide() + binding.rvAddresses.show() } } } diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt index e781e2c..63545b5 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ProductFragment.kt @@ -13,7 +13,7 @@ import com.google.android.material.tabs.TabLayoutMediator import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentProductBinding import com.woka.networking.ApiResult import com.woka.shop.adapters.ProductImagesAdapter diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt index 4f57582..52ad2e2 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment1.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentShop1Binding import com.woka.networking.ApiResult import com.woka.shop.adapters.CategoryAdapter diff --git a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt index 6d13b61..d4206f8 100644 --- a/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt +++ b/app/src/main/java/com/woka/shop/views/fragments/shop/ShopFragment2.kt @@ -10,7 +10,7 @@ import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentShop2Binding import com.woka.networking.ApiResult import com.woka.shop.adapters.CategoryAdapter 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 80e0e29..5088eaa 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 @@ -11,7 +11,7 @@ import androidx.navigation.fragment.navArgs import com.google.android.material.tabs.TabLayout import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.FragmentShop3Binding import com.woka.networking.ApiResult import com.woka.shop.adapters.ShopProductAdapter @@ -167,7 +167,7 @@ class ShopFragment3 : Fragment(), TabLayout.OnTabSelectedListener { } is ApiResult.Success -> { - it.data?.toMutableList()?.let { productList -> + it.data?.let { productList -> binding.rvProducts.show() binding.productShimmer.hide() diff --git a/app/src/main/java/com/woka/utils/DecisionDialog.kt b/app/src/main/java/com/woka/utils/DecisionDialog.kt index e9e1394..a73d3cc 100644 --- a/app/src/main/java/com/woka/utils/DecisionDialog.kt +++ b/app/src/main/java/com/woka/utils/DecisionDialog.kt @@ -9,7 +9,7 @@ import android.view.LayoutInflater import android.view.View.VISIBLE import android.view.WindowManager import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.LayoutDecisionDialogBinding class DecisionDialog(context: Context) { diff --git a/app/src/main/java/com/woka/utils/NoSignInDialog.kt b/app/src/main/java/com/woka/utils/NoSignInDialog.kt index 58ec1f9..a278cd2 100644 --- a/app/src/main/java/com/woka/utils/NoSignInDialog.kt +++ b/app/src/main/java/com/woka/utils/NoSignInDialog.kt @@ -9,7 +9,7 @@ import android.graphics.drawable.InsetDrawable import android.view.LayoutInflater import android.view.WindowManager import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.LayoutNoSignInDialogBinding import com.woka.onboard.views.OnboardActivity diff --git a/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt b/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt index 42e6338..8b612c6 100644 --- a/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt +++ b/app/src/main/java/com/woka/webseries/WebSeriesRepository.kt @@ -125,7 +125,8 @@ object WebSeriesRepository { private fun changeLikeLocally(id: String, isLiked: Boolean){ // now, not handling data locally but setting flag to load the favorite list - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadSeriesEng = true + MyListRepository.shallLoadSeriesHin = true } fun updateFavShow(showData: ShowData, addToBookmark: Boolean, categoryId: String){ @@ -152,6 +153,7 @@ object WebSeriesRepository { } // now, not handling data locally but setting flag to load the favorite list - MyListRepository.setLoadNewDataFlag(true) + if (categoryId == "1") MyListRepository.shallLoadSeriesEng = true + else MyListRepository.shallLoadSeriesHin = true } } \ No newline at end of file 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 1b3f124..9806ab4 100644 --- a/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt +++ b/app/src/main/java/com/woka/webseries/adapters/WebSeriesShowAdapter.kt @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ShowViewHolderBinding import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected diff --git a/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt b/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt index f6ee583..eda9416 100644 --- a/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt +++ b/app/src/main/java/com/woka/webseries/viewmodel/WebSeriesViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.jwplayer.pub.api.media.playlists.PlaylistItem -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.modules.categorymodels.CategoriesResponse import com.woka.networking.ApiResult import com.woka.players.models.VideoPlayList diff --git a/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt b/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt index 648d6a6..648ce7a 100644 --- a/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt +++ b/app/src/main/java/com/woka/webseries/views/WebSeriesActivity.kt @@ -8,7 +8,7 @@ import androidx.navigation.NavOptions import androidx.navigation.fragment.NavHostFragment import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityWebSeriesBinding import com.woka.utils.WokaBaseActivity import com.woka.webseries.models.ShowData 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 7ee9a6f..c8a6248 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 @@ -22,7 +22,7 @@ import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.DialogContinueEpisodeBinding import com.woka.databinding.FragmentWebSeriesBinding import com.woka.networking.ApiResult 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 07c3e18..9b4a520 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 @@ -22,7 +22,7 @@ import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.DialogEpisodeBinding import com.woka.databinding.FragmentWebShowBinding import com.woka.networking.ApiResult diff --git a/app/src/main/java/com/woka/wokagames/GamesRepository.kt b/app/src/main/java/com/woka/wokagames/GamesRepository.kt index 6031ef5..8785fb9 100644 --- a/app/src/main/java/com/woka/wokagames/GamesRepository.kt +++ b/app/src/main/java/com/woka/wokagames/GamesRepository.kt @@ -58,7 +58,7 @@ object GamesRepository { private fun changeLikeLocally(id: String, isLiked: Boolean){ // now, not handling data locally but setting flag to load the favorite list - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadGames = true } fun updateFavShow(gameData: GameData, addToBookmark: Boolean){ @@ -83,6 +83,6 @@ object GamesRepository { } // now, not handling data locally but setting flag to load the favorite list - MyListRepository.setLoadNewDataFlag(true) + MyListRepository.shallLoadGames = true } } \ No newline at end of file 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 c2262d6..9d6311b 100644 --- a/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt +++ b/app/src/main/java/com/woka/wokagames/adapters/GamesAdapter.kt @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ShowViewHolderBinding import com.woka.userPreference.UserType import com.woka.utils.isNetworkConnected 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 7140692..7fdbc40 100644 --- a/app/src/main/java/com/woka/wokagames/playerr/GamePlayerActivity.kt +++ b/app/src/main/java/com/woka/wokagames/playerr/GamePlayerActivity.kt @@ -12,7 +12,7 @@ import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import com.woka.R import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityGamePlayerBinding import com.woka.utils.DecisionDialog import com.woka.utils.WokaBaseActivity 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 90fa153..1b31bd1 100644 --- a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt +++ b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt @@ -18,7 +18,7 @@ import com.google.android.material.appbar.CollapsingToolbarLayout import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper -import com.woka.database.models.clicks.ContentType +import com.woka.database.models.ContentType import com.woka.databinding.ActivityGamesBinding import com.woka.databinding.DialogModuleShowerBinding import com.woka.networking.ApiResult diff --git a/app/src/main/res/layout/activity_audio_books.xml b/app/src/main/res/layout/activity_audio_books.xml index 6822f38..9d9e10c 100644 --- a/app/src/main/res/layout/activity_audio_books.xml +++ b/app/src/main/res/layout/activity_audio_books.xml @@ -181,6 +181,7 @@ android:fontFamily="@font/exo_2_bold" android:textColor="@color/white" android:textSize="@dimen/_16ssp" + android:textAlignment="center" /> diff --git a/app/src/main/res/layout/activity_games.xml b/app/src/main/res/layout/activity_games.xml index b0c0213..0f37dfa 100644 --- a/app/src/main/res/layout/activity_games.xml +++ b/app/src/main/res/layout/activity_games.xml @@ -181,6 +181,7 @@ android:fontFamily="@font/exo_2_bold" android:textColor="@color/white" android:textSize="@dimen/_16ssp" + android:textAlignment="center" /> diff --git a/app/src/main/res/layout/activity_karaoke.xml b/app/src/main/res/layout/activity_karaoke.xml index 17f0380..adfeb30 100644 --- a/app/src/main/res/layout/activity_karaoke.xml +++ b/app/src/main/res/layout/activity_karaoke.xml @@ -181,6 +181,7 @@ android:fontFamily="@font/exo_2_bold" android:textColor="@color/white" android:textSize="@dimen/_16ssp" + android:textAlignment="center" /> diff --git a/app/src/main/res/layout/product_view_holder.xml b/app/src/main/res/layout/product_view_holder.xml index 2cc8347..0f686ce 100644 --- a/app/src/main/res/layout/product_view_holder.xml +++ b/app/src/main/res/layout/product_view_holder.xml @@ -25,48 +25,53 @@ android:layout_height="@dimen/_60sdp" /> - + android:weightSum="10"> - +