From 39f2585e73ab6bd27768b7147d6ab83e68149c6b Mon Sep 17 00:00:00 2001 From: youlalala Date: Mon, 4 Dec 2023 17:57:32 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat=20:=20PlaylistDetailFragment=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/playlist/PlaylistDetailFragment.kt | 9 +++++++++ .../main/res/layout/fragment_playlist_detail.xml | 13 +++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt create mode 100644 android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt new file mode 100644 index 0000000..ce8d93a --- /dev/null +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt @@ -0,0 +1,9 @@ +package com.ohdodok.catchytape.feature.playlist + +import com.ohdodok.catchytape.core.ui.BaseFragment +import com.ohdodok.catchytape.feature.playlist.databinding.FragmentPlaylistDetailBinding + +class PlaylistDetailFragment : BaseFragment(R.layout.fragment_playlist_detail) { + + +} \ No newline at end of file diff --git a/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml b/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml new file mode 100644 index 0000000..67ed5d4 --- /dev/null +++ b/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file From d2eb3ddf6193e658c6b9fa383292e12a4640fe7e Mon Sep 17 00:00:00 2001 From: youlalala Date: Mon, 4 Dec 2023 18:56:51 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat=20:=20PlaylistsFragment=20->=20Playlis?= =?UTF-8?q?tDetailFragment=20=ED=99=94=EB=A9=B4=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/playlist/PlaylistAdapter.kt | 12 ++++----- .../playlist/PlaylistDetailFragment.kt | 6 +++-- .../feature/playlist/PlaylistsFragment.kt | 16 +++++++++++- .../feature/playlist/PlaylistsViewModel.kt | 26 ++++++++++++++++--- .../feature/playlist/model/PlaylistUiModel.kt | 9 +++++++ .../src/main/res/layout/item_playlist.xml | 3 ++- .../res/navigation/playlist_navigation.xml | 20 +++++++++++++- 7 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/model/PlaylistUiModel.kt diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistAdapter.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistAdapter.kt index 4f6fc19..3b1fbef 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistAdapter.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistAdapter.kt @@ -5,11 +5,11 @@ import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.ohdodok.catchytape.core.domain.model.Playlist import com.ohdodok.catchytape.feature.playlist.databinding.ItemPlaylistBinding +import com.ohdodok.catchytape.feature.playlist.model.PlaylistUiModel class PlaylistAdapter : - ListAdapter(PlaylistItemDiffUtil) { + ListAdapter(PlaylistItemDiffUtil) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PlaylistViewHolder { return PlaylistViewHolder.from(parent) @@ -22,7 +22,7 @@ class PlaylistAdapter : class PlaylistViewHolder private constructor(private val binding: ItemPlaylistBinding) : RecyclerView.ViewHolder(binding.root) { - fun bind(item: Playlist) { + fun bind(item: PlaylistUiModel) { binding.playlist = item } @@ -37,12 +37,12 @@ class PlaylistAdapter : } } - object PlaylistItemDiffUtil : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: Playlist, newItem: Playlist): Boolean { + object PlaylistItemDiffUtil : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: PlaylistUiModel, newItem: PlaylistUiModel): Boolean { return oldItem.id == newItem.id } - override fun areContentsTheSame(oldItem: Playlist, newItem: Playlist): Boolean { + override fun areContentsTheSame(oldItem: PlaylistUiModel, newItem: PlaylistUiModel): Boolean { return oldItem == newItem } } diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt index ce8d93a..c1b5889 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt @@ -3,7 +3,9 @@ package com.ohdodok.catchytape.feature.playlist import com.ohdodok.catchytape.core.ui.BaseFragment import com.ohdodok.catchytape.feature.playlist.databinding.FragmentPlaylistDetailBinding -class PlaylistDetailFragment : BaseFragment(R.layout.fragment_playlist_detail) { +class PlaylistDetailFragment : + BaseFragment(R.layout.fragment_playlist_detail) { -} \ No newline at end of file +} + diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsFragment.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsFragment.kt index 65c2c41..1d36456 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsFragment.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsFragment.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.view.View import androidx.fragment.app.DialogFragment import androidx.fragment.app.viewModels +import androidx.navigation.NavController +import androidx.navigation.fragment.findNavController import com.ohdodok.catchytape.core.ui.BaseFragment import com.ohdodok.catchytape.core.ui.toMessageId import com.ohdodok.catchytape.feature.playlist.databinding.FragmentPlaylistsBinding @@ -28,7 +30,6 @@ class PlaylistsFragment : BaseFragment(R.layout.fragme } - private fun observeEvents() { repeatOnStarted { viewModel.events.collect { event -> @@ -36,6 +37,10 @@ class PlaylistsFragment : BaseFragment(R.layout.fragme is PlaylistsEvent.ShowMessage -> { showMessage(event.error.toMessageId()) } + + is PlaylistsEvent.NavigateToPlaylistDetail -> { + findNavController().navigateToPlaylistDetail(event.playlistId) + } } } } @@ -44,4 +49,13 @@ class PlaylistsFragment : BaseFragment(R.layout.fragme override fun onPositiveButtonClicked(dialog: DialogFragment, title: String) { viewModel.createPlaylist(title) } + +} + +private fun NavController.navigateToPlaylistDetail(playlistId: Int) { + navigate( + PlaylistsFragmentDirections.actionPlaylistsFragmentToPlaylistDetailFragment( + playlistId = playlistId + ) + ) } \ No newline at end of file diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt index 99f3b75..c053a66 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt @@ -4,8 +4,8 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.ohdodok.catchytape.core.domain.model.CtErrorType import com.ohdodok.catchytape.core.domain.model.CtException -import com.ohdodok.catchytape.core.domain.model.Playlist import com.ohdodok.catchytape.core.domain.repository.PlaylistRepository +import com.ohdodok.catchytape.feature.playlist.model.PlaylistUiModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.flow.MutableSharedFlow @@ -21,7 +21,7 @@ import kotlinx.coroutines.plus import javax.inject.Inject data class PlaylistsUiState( - val playlists: List = emptyList() + val playlists: List = emptyList() ) @HiltViewModel @@ -48,7 +48,19 @@ class PlaylistViewModel @Inject constructor( fun fetchPlaylists() { playlistRepository.getPlaylists().onEach { playlists -> - _uiState.update { it.copy(playlists = playlists) } + _uiState.update { + it.copy( + playlists = playlists.map { playlist -> + PlaylistUiModel( + id = playlist.id, + title = playlist.title, + thumbnailUrl = playlist.thumbnailUrl, + trackSize = playlist.trackSize, + onClick = { onPlaylistClick(playlist.id) }, + ) + } + ) + } }.launchIn(viewModelScopeWithExceptionHandler) } @@ -57,9 +69,17 @@ class PlaylistViewModel @Inject constructor( playlistRepository.postPlaylist(playlistTitle) } } + + private fun onPlaylistClick(playlistId: Int) { + viewModelScope.launch { + _events.emit(PlaylistsEvent.NavigateToPlaylistDetail(playlistId)) + } + } } sealed interface PlaylistsEvent { + + data class NavigateToPlaylistDetail(val playlistId: Int) : PlaylistsEvent data class ShowMessage(val error: CtErrorType) : PlaylistsEvent } diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/model/PlaylistUiModel.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/model/PlaylistUiModel.kt new file mode 100644 index 0000000..ce1c89f --- /dev/null +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/model/PlaylistUiModel.kt @@ -0,0 +1,9 @@ +package com.ohdodok.catchytape.feature.playlist.model + +data class PlaylistUiModel( + val id: Int, + val title: String, + val thumbnailUrl: String, + val trackSize: Int, + val onClick: () -> Unit, +) \ No newline at end of file diff --git a/android/feature/playlist/src/main/res/layout/item_playlist.xml b/android/feature/playlist/src/main/res/layout/item_playlist.xml index ac9fe96..3633a0d 100644 --- a/android/feature/playlist/src/main/res/layout/item_playlist.xml +++ b/android/feature/playlist/src/main/res/layout/item_playlist.xml @@ -7,12 +7,13 @@ + type="com.ohdodok.catchytape.feature.playlist.model.PlaylistUiModel" /> + tools:layout="@layout/fragment_playlists"> + + + + + + + + + + \ No newline at end of file From f2e91bbbd4017573bc9b49f72dfb22b1a44e05bc Mon Sep 17 00:00:00 2001 From: youlalala Date: Mon, 4 Dec 2023 22:19:53 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat=20:=20=ED=94=8C=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=83=81=EC=84=B8=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/drawable/btn_circle_background.xml | 5 ++ .../core/ui/src/main/res/drawable/ic_play.xml | 6 +-- .../core/ui/src/main/res/values/dimens.xml | 2 - .../core/ui/src/main/res/values/strings.xml | 2 +- .../main/res/layout/fragment_my_musics.xml | 3 +- .../src/main/res/layout/fragment_my_page.xml | 3 +- .../player/src/main/res/values/strings.xml | 1 - .../playlist/PlaylistDetailFragment.kt | 6 +++ .../res/layout/fragment_playlist_detail.xml | 52 ++++++++++++++++++- 9 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 android/core/ui/src/main/res/drawable/btn_circle_background.xml diff --git a/android/core/ui/src/main/res/drawable/btn_circle_background.xml b/android/core/ui/src/main/res/drawable/btn_circle_background.xml new file mode 100644 index 0000000..3c03914 --- /dev/null +++ b/android/core/ui/src/main/res/drawable/btn_circle_background.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/android/core/ui/src/main/res/drawable/ic_play.xml b/android/core/ui/src/main/res/drawable/ic_play.xml index f711f9c..02fb731 100644 --- a/android/core/ui/src/main/res/drawable/ic_play.xml +++ b/android/core/ui/src/main/res/drawable/ic_play.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/android/core/ui/src/main/res/values/dimens.xml b/android/core/ui/src/main/res/values/dimens.xml index 6c531ba..65a0fd7 100644 --- a/android/core/ui/src/main/res/values/dimens.xml +++ b/android/core/ui/src/main/res/values/dimens.xml @@ -17,6 +17,4 @@ 4dp 50dp - - 48dp \ No newline at end of file diff --git a/android/core/ui/src/main/res/values/strings.xml b/android/core/ui/src/main/res/values/strings.xml index 588430c..08c39f6 100644 --- a/android/core/ui/src/main/res/values/strings.xml +++ b/android/core/ui/src/main/res/values/strings.xml @@ -14,7 +14,7 @@ 확인 완료 저장 - 썸네일 이미지 + 재생하기 최근 재생한 노래 최근 추가된 노래 diff --git a/android/feature/mypage/src/main/res/layout/fragment_my_musics.xml b/android/feature/mypage/src/main/res/layout/fragment_my_musics.xml index d041418..6a75642 100644 --- a/android/feature/mypage/src/main/res/layout/fragment_my_musics.xml +++ b/android/feature/mypage/src/main/res/layout/fragment_my_musics.xml @@ -16,8 +16,9 @@ %d:%02d - 재생하기 \ No newline at end of file diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt index c1b5889..a6859ab 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt @@ -1,11 +1,17 @@ package com.ohdodok.catchytape.feature.playlist +import android.os.Bundle +import android.view.View import com.ohdodok.catchytape.core.ui.BaseFragment import com.ohdodok.catchytape.feature.playlist.databinding.FragmentPlaylistDetailBinding class PlaylistDetailFragment : BaseFragment(R.layout.fragment_playlist_detail) { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setupBackStack(binding.tbPlaylistDetail) + } } diff --git a/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml b/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml index 67ed5d4..a9857f8 100644 --- a/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml +++ b/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml @@ -1,13 +1,63 @@ - + + + + + + + + + + + + + \ No newline at end of file From 78b869e38d5cdc707774067012ff990ab27736b6 Mon Sep 17 00:00:00 2001 From: youlalala Date: Tue, 5 Dec 2023 04:13:15 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat=20:=20=ED=94=8C=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EB=B0=B0=EA=B2=BD=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EA=B7=B8=EB=9D=BC=EB=8D=B0=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 --- .../main/res/drawable/gradient_background.xml | 8 +++++ .../playlist/PlaylistDetailFragment.kt | 9 +++++- .../playlist/PlaylistDetailViewModel.kt | 29 +++++++++++++++++++ .../res/layout/fragment_playlist_detail.xml | 28 ++++++++++++++++-- 4 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 android/core/ui/src/main/res/drawable/gradient_background.xml create mode 100644 android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailViewModel.kt diff --git a/android/core/ui/src/main/res/drawable/gradient_background.xml b/android/core/ui/src/main/res/drawable/gradient_background.xml new file mode 100644 index 0000000..1ffb949 --- /dev/null +++ b/android/core/ui/src/main/res/drawable/gradient_background.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt index a6859ab..7b1a72d 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailFragment.kt @@ -2,16 +2,23 @@ package com.ohdodok.catchytape.feature.playlist import android.os.Bundle import android.view.View +import androidx.fragment.app.viewModels import com.ohdodok.catchytape.core.ui.BaseFragment +import com.ohdodok.catchytape.core.ui.MusicAdapter +import com.ohdodok.catchytape.core.ui.Orientation import com.ohdodok.catchytape.feature.playlist.databinding.FragmentPlaylistDetailBinding class PlaylistDetailFragment : BaseFragment(R.layout.fragment_playlist_detail) { + private val viewModel: PlaylistDetailViewModel by viewModels() + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + binding.viewModel = viewModel setupBackStack(binding.tbPlaylistDetail) + binding.rvPlaylist.adapter = MusicAdapter(Orientation.VERTICAL) } - } diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailViewModel.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailViewModel.kt new file mode 100644 index 0000000..bf771a4 --- /dev/null +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistDetailViewModel.kt @@ -0,0 +1,29 @@ +package com.ohdodok.catchytape.feature.playlist + +import androidx.lifecycle.ViewModel +import com.ohdodok.catchytape.core.domain.model.Music +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import javax.inject.Inject + +data class PlaylistDetailUiState( + val musics: List = listOf( + Music( + id = "1", + title = "title", + artist = "artist", + imageUrl = "https://i.pinimg.com/736x/6a/be/29/6abe2929274d6459c815ac752fb0c057.jpg" + ) + ) +) + +@HiltViewModel +class PlaylistDetailViewModel @Inject constructor( + +) : ViewModel() { + + private val _uiState = MutableStateFlow(PlaylistDetailUiState()) + val uiState: StateFlow = _uiState.asStateFlow() +} \ No newline at end of file diff --git a/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml b/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml index a9857f8..275b568 100644 --- a/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml +++ b/android/feature/playlist/src/main/res/layout/fragment_playlist_detail.xml @@ -6,8 +6,8 @@ + name="viewModel" + type="com.ohdodok.catchytape.feature.playlist.PlaylistDetailViewModel" /> @@ -15,6 +15,28 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + + @@ -57,6 +80,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/ctl_playlist_detail" + app:list="@{viewModel.uiState.musics}" tools:listitem="@layout/item_music_vertical" /> From ae0f655044fa2741cf3f604b45fdea74017fcb19 Mon Sep 17 00:00:00 2001 From: youlalala Date: Tue, 5 Dec 2023 04:59:09 +0900 Subject: [PATCH 5/7] =?UTF-8?q?feat=20:=20status=20bar=20=ED=88=AC?= =?UTF-8?q?=EB=AA=85=ED=95=98=EA=B2=8C=20=ED=95=98=EA=B3=A0,=20=EC=98=81?= =?UTF-8?q?=EC=97=AD=20=EB=84=93=ED=9E=88=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/src/main/java/com/ohdodok/catchytape/MainActivity.kt | 4 ++++ android/core/ui/src/main/res/values-night/themes.xml | 2 +- android/core/ui/src/main/res/values/dimens.xml | 1 + android/core/ui/src/main/res/values/themes.xml | 5 ++--- 4 files changed, 8 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 6464eb3..e6b26f9 100644 --- a/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt +++ b/android/app/src/main/java/com/ohdodok/catchytape/MainActivity.kt @@ -8,6 +8,7 @@ import android.view.View import android.widget.Toast import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.WindowCompat import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle @@ -43,9 +44,12 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) + binding.viewModel = playViewModel binding.lifecycleOwner = this + WindowCompat.setDecorFitsSystemWindows(window, false) + setupBottomNav() setUpPlayerController() connectivityManager = getSystemService(ConnectivityManager::class.java) diff --git a/android/core/ui/src/main/res/values-night/themes.xml b/android/core/ui/src/main/res/values-night/themes.xml index 1d3cb6b..c796b91 100644 --- a/android/core/ui/src/main/res/values-night/themes.xml +++ b/android/core/ui/src/main/res/values-night/themes.xml @@ -2,7 +2,7 @@ @@ -59,7 +60,6 @@ @color/key_variant - - \ No newline at end of file From d093bb26849d4722e9c227f4b85d5ce114132a46 Mon Sep 17 00:00:00 2001 From: youlalala Date: Tue, 5 Dec 2023 16:24:20 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat=20:=20fitsSystemWindows=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/ui/src/main/res/values/themes.xml | 6 +++- .../src/main/res/layout/fragment_home.xml | 1 + .../main/res/layout/fragment_my_musics.xml | 3 +- .../src/main/res/layout/fragment_my_page.xml | 3 +- .../src/main/res/layout/fragment_player.xml | 3 +- .../res/layout/fragment_playlist_detail.xml | 33 +++++++++++++------ .../main/res/layout/fragment_playlists.xml | 3 +- .../src/main/res/layout/fragment_upload.xml | 3 +- 8 files changed, 39 insertions(+), 16 deletions(-) diff --git a/android/core/ui/src/main/res/values/themes.xml b/android/core/ui/src/main/res/values/themes.xml index b8c5b99..d345163 100644 --- a/android/core/ui/src/main/res/values/themes.xml +++ b/android/core/ui/src/main/res/values/themes.xml @@ -35,8 +35,12 @@ 12sp + + diff --git a/android/feature/home/src/main/res/layout/fragment_home.xml b/android/feature/home/src/main/res/layout/fragment_home.xml index de02019..990d2aa 100644 --- a/android/feature/home/src/main/res/layout/fragment_home.xml +++ b/android/feature/home/src/main/res/layout/fragment_home.xml @@ -17,6 +17,7 @@ + android:layout_height="match_parent" + android:fitsSystemWindows="true"> + android:layout_height="match_parent" + android:fitsSystemWindows="true"> + android:layout_height="match_parent" + android:fitsSystemWindows="true"> - @@ -50,11 +52,22 @@ style="@style/ToolBar" android:layout_width="match_parent" android:layout_height="wrap_content" - app:navigationIcon="@drawable/ic_arrow_back" - app:title="최근 재생 목록 (임시)" - tools:title="최근 재생 목록" /> + app:navigationIcon="@drawable/ic_arrow_back" /> - + + + + app:layout_constraintTop_toBottomOf="@id/tv_playlist_title" /> diff --git a/android/feature/playlist/src/main/res/layout/fragment_playlists.xml b/android/feature/playlist/src/main/res/layout/fragment_playlists.xml index 1df2ffd..1d53404 100644 --- a/android/feature/playlist/src/main/res/layout/fragment_playlists.xml +++ b/android/feature/playlist/src/main/res/layout/fragment_playlists.xml @@ -13,7 +13,8 @@ + android:layout_height="match_parent" + android:fitsSystemWindows="true"> + android:layout_height="match_parent" + android:fitsSystemWindows="true"> Date: Tue, 5 Dec 2023 16:33:14 +0900 Subject: [PATCH 7/7] =?UTF-8?q?feat=20:=20=ED=95=84=EC=9A=94=EC=97=86?= =?UTF-8?q?=EB=8A=94=20dimens=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/core/ui/src/main/res/values/dimens.xml | 1 - .../ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/android/core/ui/src/main/res/values/dimens.xml b/android/core/ui/src/main/res/values/dimens.xml index ebf7d2b..65a0fd7 100644 --- a/android/core/ui/src/main/res/values/dimens.xml +++ b/android/core/ui/src/main/res/values/dimens.xml @@ -17,5 +17,4 @@ 4dp 50dp - 24dp \ No newline at end of file diff --git a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt index c053a66..953b1c3 100644 --- a/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt +++ b/android/feature/playlist/src/main/java/com/ohdodok/catchytape/feature/playlist/PlaylistsViewModel.kt @@ -77,7 +77,6 @@ class PlaylistViewModel @Inject constructor( } } - sealed interface PlaylistsEvent { data class NavigateToPlaylistDetail(val playlistId: Int) : PlaylistsEvent