From dc6bdbf6db1993bb67ce77993c85d7ab2200ec96 Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Fri, 23 Aug 2024 20:50:57 +0530 Subject: [PATCH] Cart listing removing caching. loading continue data properly after user video view api is hit. --- .../karaoke/player/KaraokePlayerActivity.kt | 29 +++++++++++++++++++ .../com/woka/karaoke/views/KaraokeActivity.kt | 4 ++- .../com/woka/players/views/PlayerActivity.kt | 12 +++++++- .../main/java/com/woka/shop/ShopRepository.kt | 17 +++++++---- app/src/main/res/layout/activity_about.xml | 8 ++--- app/src/main/res/layout/avatar_viewholder.xml | 8 ++--- app/src/main/res/layout/fragment_home2.xml | 19 ++++-------- 7 files changed, 66 insertions(+), 31 deletions(-) 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 6ff300f..fd6fe43 100644 --- a/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt +++ b/app/src/main/java/com/woka/karaoke/player/KaraokePlayerActivity.kt @@ -17,6 +17,7 @@ import android.os.Environment import android.provider.MediaStore import android.util.Log import android.view.WindowManager +import androidx.activity.addCallback import androidx.activity.enableEdgeToEdge import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts @@ -157,6 +158,32 @@ class KaraokePlayerActivity : WokaBaseActivity() { loadAudioFromUrl() + onBackPressedDispatcher.addCallback { + if (playbackStartTime > 0) { + val elapsed = System.currentTimeMillis() - playbackStartTime + totalPlaybackDuration += elapsed + playbackStartTime = 0 + } + + val playingDurationInSecs = Math.round(totalPlaybackDuration/1000.0) + + karaokePlayerData?.id?.let { + if (it > 0 && playingDurationInSecs > 0) { + UserRepository.userVideoView( + VideoViewRequestData( + it, + ContentType.KARAOKE_VIDEO.id, + playingDurationInSecs + ) + ) + + totalPlaybackDuration = 0 + } + } + + finish() + } + } override fun onStop() { @@ -164,6 +191,8 @@ class KaraokePlayerActivity : WokaBaseActivity() { if (recordingState == RecordingState.RECORDING){ startStopRecording() + }else if (player?.isPlaying == true) { + player?.pause() } if (playbackStartTime > 0) { 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 696a314..cc6d41a 100644 --- a/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt +++ b/app/src/main/java/com/woka/karaoke/views/KaraokeActivity.kt @@ -530,7 +530,9 @@ class KaraokeActivity : WokaBaseActivity() { binding.continueSingTxt.show() binding.rvContinueSing.show() - continueKaraokeAdapter.submitList(continueList) + continueKaraokeAdapter.submitList(continueList){ + binding.rvContinueSing.scrollToPosition(0) + } } else { binding.continueSingTxt.hide() binding.rvContinueSing.hide() 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 b8b0c28..0e3b3ca 100644 --- a/app/src/main/java/com/woka/players/views/PlayerActivity.kt +++ b/app/src/main/java/com/woka/players/views/PlayerActivity.kt @@ -6,6 +6,7 @@ import android.net.NetworkRequest import android.os.Bundle import android.util.Log import android.view.ViewGroup +import androidx.activity.addCallback import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat @@ -92,6 +93,12 @@ class PlayerActivity : AppCompatActivity(), FullscreenHandler { clickEvents() + onBackPressedDispatcher.addCallback { + uploadVideoView() + + finish() + } + } override fun onDestroy() { @@ -104,6 +111,10 @@ class PlayerActivity : AppCompatActivity(), FullscreenHandler { override fun onStop() { super.onStop() + uploadVideoView() + } + + private fun uploadVideoView(){ videoPlayList?.videoViewRequestDataList?.let {playlistData -> if (playingIndex >= 0 && playingIndex < playlistData.size){ with(playlistData[playingIndex]){ @@ -129,7 +140,6 @@ class PlayerActivity : AppCompatActivity(), FullscreenHandler { ) totalPlaybackDuration = 0 - Log.d(TAG, "onStop: API DONE $playingDurationInSecs") } } } diff --git a/app/src/main/java/com/woka/shop/ShopRepository.kt b/app/src/main/java/com/woka/shop/ShopRepository.kt index 933338b..2c1749e 100644 --- a/app/src/main/java/com/woka/shop/ShopRepository.kt +++ b/app/src/main/java/com/woka/shop/ShopRepository.kt @@ -95,9 +95,10 @@ object ShopRepository { get() = _cartCountLiveData suspend fun cartListing(): ApiResult { - if (cartResponse != null) { - return ApiResult.Success(cartResponse) - } + // caching cart list +// if (cartResponse != null) { +// return ApiResult.Success(cartResponse) +// } val response = handleApiCall { apiService.cartListing() @@ -137,9 +138,11 @@ object ShopRepository { cartResponse?.let { cartData -> cartData.result?.let { cartItems -> cartItems.add(CartItem(shopProduct)) - shopProduct.product_final_price?.let { - cartData.total_amount = (cartData.total_amount?:0.0) + it - } + + // caching data +// shopProduct.product_final_price?.let { +// cartData.total_amount = (cartData.total_amount?:0.0) + it +// } cartItems.let { _cartCountLiveData.postValue(it.size) @@ -172,6 +175,8 @@ object ShopRepository { // removing from cache cartResponse?.let { cartData -> cartData.result?.let { cartItems -> + + // caching data cartItems.find { it?.id == id }?.let {item -> val remainingAmount = (cartData.total_amount?:0.0) - (item.product_final_price?:0.0) cartData.total_amount = maxOf(0.0, remainingAmount) diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index b56ec29..dd3b66e 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -49,12 +49,10 @@ android:layout_height="@dimen/_200sdp" android:contentDescription="@string/about_woka" android:src="@drawable/img_about" - - android:translationZ="1dp" - - app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/g1" - + app:layout_constraintTop_toBottomOf="@id/back_btn" + app:layout_constraintVertical_bias="0" + android:layout_marginTop="15dp" /> diff --git a/app/src/main/res/layout/fragment_home2.xml b/app/src/main/res/layout/fragment_home2.xml index 53f1364..4de2442 100644 --- a/app/src/main/res/layout/fragment_home2.xml +++ b/app/src/main/res/layout/fragment_home2.xml @@ -115,14 +115,12 @@ + app:layout_constraintTop_toBottomOf="@id/profile_image" + app:cardBackgroundColor="@color/black"> - -