From 6fbe7da71e26aa25b8afd7a1607acca34ccca0c1 Mon Sep 17 00:00:00 2001 From: klaus Date: Wed, 4 Dec 2024 18:10:50 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=AC=EC=83=9D=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20-=20=EC=82=AD=EC=A0=9C=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AudioContentPlaylistListFragment.kt | 6 +- .../AudioContentPlaylistRepository.kt | 8 +++ .../audio_content/playlist/PlaylistApi.kt | 7 +++ .../AudioContentPlaylistDetailActivity.kt | 26 ++++++++- ...udioContentPlaylistDetailNotifyFragment.kt | 30 ++++++++++ .../AudioContentPlaylistDetailViewModel.kt | 34 +++++++++++ .../res/drawable-xxhdpi/ic_edit_white.png | Bin 0 -> 496 bytes .../ic_seemore_vertical_white.png | Bin 0 -> 360 bytes ...activity_audio_content_playlist_detail.xml | 53 ++++++++++++++++-- ...t_audio_content_playlist_detail_notify.xml | 20 +++++++ 10 files changed, 176 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/audio_content/playlist/detail/AudioContentPlaylistDetailNotifyFragment.kt create mode 100644 app/src/main/res/drawable-xxhdpi/ic_edit_white.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_seemore_vertical_white.png create mode 100644 app/src/main/res/layout/fragment_audio_content_playlist_detail_notify.xml 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 0000000000000000000000000000000000000000..9e0d7e711ade17f752d207b02ae9371f1ab31295 GIT binary patch literal 496 zcmVeuaw@`q-7DdtE!hhOw|FKJ;9jzE(P19t3d(OGcdw(M4 zRs&zdw#7iN0v>{G<3=wI9)oS;L@x@Sf^Dm+>M>2zGtDfag_?s!yWQ@d7+M587aQ(9 zg-7~>7>fQ#b6^jLLq<$R1xv%CXkdw06a_35i`c=Ev4|Bc9gEn&8nB23tObi^gEe8% zEU-2#nhe&6MU%i2)Vw#vFEQ&hukcLIkz!I@2 z3Ro%@v4bUJ5i3|a7O{afV9`+U_qEM{ebIomEX%Si%d#xSE{=F`*t4$dBPlFNk}vQ5 zXWw2gc<#_nLVq7LZ{77?a2VQ^;pdKY_p{&ceRpxOb6QgB1><9$lot%|ed`xrT6vy7 mIp-coVc}(a<~XKkY3vv7A7snig*HV10000``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{$EcQ$B+ufw>J*<9x@PUedu|K!Ey<|*NL!A zw>@uoHFy8J*VkZ>b-w7ah@bY&4fcO%QCa3r@s8N>-*-< zle-pKTrI6N6O2sYzg>Cb@U7YHb`>w`g(tAcwLM&~bNcb>nU(YEXD#y-TVuk=|ND2| zvQ?|jv8Xi0?oLe0XIgb&JFl^|Z~*JRycwQq3Y>4`FWr{6Sg#J$es2Hz^-Gp7{5-oz z{PdHrCVh{Oo_~~n>ifR;(aa1C2gDa#?s8iGwZTuDV{Vv$)mqV$EHAbwUC6wc$;iM^ zqiD5Oqa=#|#g?WEnXC&hM@{qrDrA}~Hdl-xrS6x literal 0 HcmV?d00001 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"> - + + + + + + + + + + + + + + + +