diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt index b31445c..e367b8c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/AudioContentPlaylistListFragment.kt @@ -27,7 +27,7 @@ class AudioContentPlaylistListFragment : BaseFragment if (result.resultCode == RESULT_OK) { @@ -46,7 +46,7 @@ class AudioContentPlaylistListFragment : BaseFragment - startActivity( + createOrUpdatePlaylistResult.launch( Intent(requireContext(), AudioContentPlaylistDetailActivity::class.java).apply { putExtra( Constants.EXTRA_AUDIO_CONTENT_PLAYLIST_ID, @@ -98,7 +98,7 @@ class AudioContentPlaylistListFragment : BaseFragment> + + @DELETE("/audio-content/playlist/{id}") + fun deletePlaylist( + @Path("id") id: Long, + @Header("Authorization") authHeader: String + ): Single> } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailActivity.kt index 57835da..eaec1bc 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailActivity.kt @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import coil.load import kr.co.vividnext.sodalive.base.BaseActivity +import kr.co.vividnext.sodalive.base.SodaDialog import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.databinding.ActivityAudioContentPlaylistDetailBinding @@ -85,7 +86,30 @@ class AudioContentPlaylistDetailActivity : BaseActivity Unit +) : BottomSheetDialogFragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View = inflater.inflate( + R.layout.fragment_audio_content_playlist_detail_notify, + container, + false + ) + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + view.findViewById(R.id.tv_delete).setOnClickListener { + onClickDelete() + dialog?.dismiss() + } + } +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailViewModel.kt index 0134826..1f4c612 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailViewModel.kt @@ -56,4 +56,38 @@ class AudioContentPlaylistDetailViewModel( ) ) } + + fun deletePlaylist(playlistId: Long, onSuccess: () -> Unit) { + _isLoading.value = true + compositeDisposable.add( + repository.deletePlaylist( + playlistId = playlistId, + token = "Bearer ${SharedPreferenceManager.token}" + ) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + { + if (it.success) { + _toastLiveData.value = "삭제되었습니다." + onSuccess() + } else { + if (it.message != null) { + _toastLiveData.postValue(it.message) + } else { + _toastLiveData.postValue( + "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." + ) + } + } + _isLoading.value = false + }, + { + _isLoading.value = false + it.message?.let { message -> Logger.e(message) } + _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + } + ) + ) + } } diff --git a/app/src/main/res/drawable-xxhdpi/ic_edit_white.png b/app/src/main/res/drawable-xxhdpi/ic_edit_white.png new file mode 100644 index 0000000..9e0d7e7 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_edit_white.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_seemore_vertical_white.png b/app/src/main/res/drawable-xxhdpi/ic_seemore_vertical_white.png new file mode 100644 index 0000000..69c0cd6 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_seemore_vertical_white.png differ diff --git a/app/src/main/res/layout/activity_audio_content_playlist_detail.xml b/app/src/main/res/layout/activity_audio_content_playlist_detail.xml index 8962995..befecbe 100644 --- a/app/src/main/res/layout/activity_audio_content_playlist_detail.xml +++ b/app/src/main/res/layout/activity_audio_content_playlist_detail.xml @@ -7,9 +7,54 @@ android:background="@color/black" android:orientation="vertical"> - + + + + + + + + + + + + + + + +