From 5e153228aa2682994dfee09a9c291f0117da55e2 Mon Sep 17 00:00:00 2001 From: algosketch Date: Tue, 5 Dec 2023 23:18:04 +0900 Subject: [PATCH 1/6] =?UTF-8?q?fix=20:=20=EC=82=AC=EC=A7=84=20centerCrop?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/core/ui/src/main/res/layout/item_music_horizontal.xml | 1 + android/core/ui/src/main/res/layout/item_music_vertical.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/android/core/ui/src/main/res/layout/item_music_horizontal.xml b/android/core/ui/src/main/res/layout/item_music_horizontal.xml index 6a5d5f9..8bb9a12 100644 --- a/android/core/ui/src/main/res/layout/item_music_horizontal.xml +++ b/android/core/ui/src/main/res/layout/item_music_horizontal.xml @@ -24,6 +24,7 @@ android:id="@+id/iv_thumbnail" android:layout_width="@dimen/music_horizontal_img" android:layout_height="@dimen/music_horizontal_img" + android:scaleType="centerCrop" app:imgUrl="@{music.imageUrl}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/android/core/ui/src/main/res/layout/item_music_vertical.xml b/android/core/ui/src/main/res/layout/item_music_vertical.xml index f2c5d77..1c14801 100644 --- a/android/core/ui/src/main/res/layout/item_music_vertical.xml +++ b/android/core/ui/src/main/res/layout/item_music_vertical.xml @@ -24,6 +24,7 @@ android:id="@+id/iv_thumbnail" android:layout_width="@dimen/music_vertical_img" android:layout_height="@dimen/music_vertical_img" + android:scaleType="centerCrop" app:imgUrl="@{music.imageUrl}" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" From 733421bf6fd65bf79390807423185a1b2b112644 Mon Sep 17 00:00:00 2001 From: algosketch Date: Wed, 6 Dec 2023 00:07:09 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat=20:=20=EB=85=B8=EB=9E=98=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=97=90=20index=20?= =?UTF-8?q?=ED=8F=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../catchytape/feature/player/PlayerEventListener.kt | 2 +- .../ohdodok/catchytape/feature/player/PlayerListener.kt | 2 +- .../ohdodok/catchytape/feature/player/PlayerViewModel.kt | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerEventListener.kt b/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerEventListener.kt index 9ad914c..8a4451c 100644 --- a/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerEventListener.kt +++ b/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerEventListener.kt @@ -4,5 +4,5 @@ interface PlayerEventListener { fun onPlayingChanged(isPlaying: Boolean) - fun onMediaItemChanged(duration: Int) + fun onMediaItemChanged(index: Int, duration: Int) } \ No newline at end of file diff --git a/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerListener.kt b/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerListener.kt index a3eb33f..ccee55d 100644 --- a/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerListener.kt +++ b/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerListener.kt @@ -15,7 +15,7 @@ class PlayerListener( events.containsAny(Player.EVENT_TIMELINE_CHANGED, Player.EVENT_MEDIA_ITEM_TRANSITION) -> { val durationMs = player.duration.toInt() - listener.onMediaItemChanged(durationMs / millisecondsPerSecond) + listener.onMediaItemChanged(player.currentMediaItemIndex, durationMs / millisecondsPerSecond) } } } diff --git a/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerViewModel.kt b/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerViewModel.kt index 87c3cfa..f1dfd7f 100644 --- a/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerViewModel.kt +++ b/android/feature/player/src/main/java/com/ohdodok/catchytape/feature/player/PlayerViewModel.kt @@ -81,7 +81,10 @@ class PlayerViewModel @Inject constructor( } } - override fun onMediaItemChanged(duration: Int) { - _uiState.update { it.copy(duration = duration) } + override fun onMediaItemChanged(index: Int, duration: Int) { + + _uiState.update { + it.copy(duration = duration) + } } } \ No newline at end of file From 9143cf1e8fb9f87e66e867cf5d945d2ef545888d Mon Sep 17 00:00:00 2001 From: algosketch Date: Wed, 6 Dec 2023 00:35:07 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat=20:=20=EB=B0=94=ED=85=80=20=EB=84=A4?= =?UTF-8?q?=EB=B9=84=EA=B2=8C=EC=9D=B4=EC=85=98=20=EB=93=B1=EC=9E=A5/?= =?UTF-8?q?=EC=88=A8=EA=B9=80=20=EC=95=A0=EB=8B=88=EB=A9=94=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ohdodok/catchytape/MainActivity.kt | 26 ++++++++++++++++++- .../ohdodok/catchytape/core/ui/SizeUtil.kt | 8 ++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt diff --git a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt index 047a3df..6d69a45 100644 --- a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt +++ b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt @@ -1,5 +1,6 @@ package com.ohdodok.catchytape +import android.animation.ObjectAnimator import android.content.ComponentName import android.net.ConnectivityManager import android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED @@ -109,13 +110,36 @@ class MainActivity : AppCompatActivity() { } private fun hideBottomNav() { - binding.bottomNav.visibility = View.GONE + val period = 700L + takeDownBottomNav(period) + + lifecycleScope.launch { + delay(period) + binding.bottomNav.visibility = View.GONE + } } private fun showBottomNav() { + raiseBottomNav() + binding.bottomNav.visibility = View.VISIBLE } + private fun takeDownBottomNav(period: Long) { + val height = binding.bottomNav.height.toFloat() + ObjectAnimator.ofFloat(binding.bottomNav, "translationY", height).apply { + duration = period + start() + } + } + + private fun raiseBottomNav() { + ObjectAnimator.ofFloat(binding.bottomNav, "translationY", 0f).apply { + duration = 700 + start() + } + } + private fun hidePlayerController() { binding.pcvController.visibility = View.GONE } diff --git a/android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt b/android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt new file mode 100644 index 0000000..eecef5c --- /dev/null +++ b/android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt @@ -0,0 +1,8 @@ +package com.ohdodok.catchytape.core.ui + +import android.content.Context + +fun Context.fromDpToPx(dp: Float): Float { + val density = resources.displayMetrics.density + return dp * density +} \ No newline at end of file From 2543e0b16b60a57d1e25e0c63d3e1aa0a0cbfce9 Mon Sep 17 00:00:00 2001 From: algosketch Date: Wed, 6 Dec 2023 14:15:19 +0900 Subject: [PATCH 4/6] =?UTF-8?q?refactor=20:=20=ED=95=84=EC=9A=94=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt diff --git a/android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt b/android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt deleted file mode 100644 index eecef5c..0000000 --- a/android/core/ui/src/main/java/com/ohdodok/catchytape/core/ui/SizeUtil.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.ohdodok.catchytape.core.ui - -import android.content.Context - -fun Context.fromDpToPx(dp: Float): Float { - val density = resources.displayMetrics.density - return dp * density -} \ No newline at end of file From 45c0d83b8d22044619d5fc21556d03dfb05dda1a Mon Sep 17 00:00:00 2001 From: algosketch Date: Wed, 6 Dec 2023 14:19:27 +0900 Subject: [PATCH 5/6] =?UTF-8?q?refactor=20:=20show,=20hide=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ohdodok/catchytape/MainActivity.kt | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt index 6d69a45..3d15612 100644 --- a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt +++ b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt @@ -9,6 +9,7 @@ import android.view.View import android.widget.Toast import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity +import androidx.core.animation.doOnEnd import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle @@ -111,29 +112,17 @@ class MainActivity : AppCompatActivity() { private fun hideBottomNav() { val period = 700L - takeDownBottomNav(period) - lifecycleScope.launch { - delay(period) - binding.bottomNav.visibility = View.GONE - } - } - - private fun showBottomNav() { - raiseBottomNav() - - binding.bottomNav.visibility = View.VISIBLE - } - - private fun takeDownBottomNav(period: Long) { val height = binding.bottomNav.height.toFloat() ObjectAnimator.ofFloat(binding.bottomNav, "translationY", height).apply { duration = period + doOnEnd { binding.bottomNav.visibility = View.GONE } start() } } - private fun raiseBottomNav() { + private fun showBottomNav() { + binding.bottomNav.visibility = View.VISIBLE ObjectAnimator.ofFloat(binding.bottomNav, "translationY", 0f).apply { duration = 700 start() From 111cb347504f04733d23170553706bbc40578a6e Mon Sep 17 00:00:00 2001 From: algosketch Date: Wed, 6 Dec 2023 14:27:09 +0900 Subject: [PATCH 6/6] =?UTF-8?q?refactor=20:=20duration=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ohdodok/catchytape/MainActivity.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt index 3d15612..591baa1 100644 --- a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt +++ b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt @@ -34,6 +34,8 @@ import kotlinx.coroutines.launch import javax.inject.Inject import com.ohdodok.catchytape.core.ui.R.string as uiString +private const val BOTTOM_NAV_ANIMATION_DURATION = 700L + @AndroidEntryPoint class MainActivity : AppCompatActivity() { @@ -111,11 +113,9 @@ class MainActivity : AppCompatActivity() { } private fun hideBottomNav() { - val period = 700L - val height = binding.bottomNav.height.toFloat() ObjectAnimator.ofFloat(binding.bottomNav, "translationY", height).apply { - duration = period + duration = BOTTOM_NAV_ANIMATION_DURATION doOnEnd { binding.bottomNav.visibility = View.GONE } start() } @@ -124,7 +124,7 @@ class MainActivity : AppCompatActivity() { private fun showBottomNav() { binding.bottomNav.visibility = View.VISIBLE ObjectAnimator.ofFloat(binding.bottomNav, "translationY", 0f).apply { - duration = 700 + duration = BOTTOM_NAV_ANIMATION_DURATION start() } }