From 71cd52d30a36fa996c4b997b9f8619307afbec45 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 5 Oct 2023 22:31:15 +0900 Subject: [PATCH] =?UTF-8?q?=ED=9B=84=EC=9B=90=EB=9E=AD=ED=82=B9=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4=EB=B3=B4=EA=B8=B0=20=ED=9B=84=EC=9B=90?= =?UTF-8?q?=EB=9E=AD=ED=82=B9=20=ED=99=9C=EC=84=B1=ED=99=94=20=EC=8A=A4?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20-=20=ED=81=B4=EB=A6=AD=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=EB=84=88=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/vividnext/sodalive/di/AppDI.kt | 2 +- .../donation/GetDonationAllResponse.kt | 2 + .../UserProfileDonationAllViewActivity.kt | 14 ++++++ .../UserProfileDonationAllViewModel.kt | 49 ++++++++++++++++++- .../layout/activity_user_profile_live_all.xml | 2 +- 5 files changed, 66 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt index a9229b5..8c53f3b 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt @@ -192,7 +192,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) { viewModel { ProfileUpdateViewModel(get()) } viewModel { NicknameUpdateViewModel(get()) } viewModel { MemberTagViewModel(get()) } - viewModel { UserProfileDonationAllViewModel(get()) } + viewModel { UserProfileDonationAllViewModel(get(), get()) } viewModel { AudioContentCurationViewModel(get()) } viewModel { AudioContentNewAllViewModel(get()) } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/GetDonationAllResponse.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/GetDonationAllResponse.kt index 5cac362..e67ae97 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/GetDonationAllResponse.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/GetDonationAllResponse.kt @@ -10,6 +10,8 @@ data class GetDonationAllResponse( val accumulatedCansLastWeek: Int, @SerializedName("accumulatedCansThisMonth") val accumulatedCansThisMonth: Int, + @SerializedName("isVisibleDonationRank") + val isVisibleDonationRank: Boolean, @SerializedName("totalCount") val totalCount: Int, @SerializedName("userDonationRanking") diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/UserProfileDonationAllViewActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/UserProfileDonationAllViewActivity.kt index 8e0afc2..ff775fb 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/UserProfileDonationAllViewActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/UserProfileDonationAllViewActivity.kt @@ -7,6 +7,7 @@ import android.view.View import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.LoadingDialog @@ -118,6 +119,9 @@ class UserProfileDonationAllViewActivity : BaseActivity() @@ -25,6 +28,10 @@ class UserProfileDonationAllViewModel( val donationLiveData: LiveData get() = _donationLiveData + private var _isVisibleDonationRank = MutableLiveData() + val isVisibleDonationRank: LiveData + get() = _isVisibleDonationRank + private var isLast = false private var page = 1 private val size = 10 @@ -51,6 +58,7 @@ class UserProfileDonationAllViewModel( } else { isLast = true } + _isVisibleDonationRank.postValue(it.data.isVisibleDonationRank) } else { if (it.message != null) { _toastLiveData.postValue(it.message) @@ -78,4 +86,43 @@ class UserProfileDonationAllViewModel( isLast = false getCreatorProfileDonationRanking(userId) } + + fun onClickToggleVisibleDonationRank() { + val nowStateVisibleDonationRank = _isVisibleDonationRank.value!! + + _isLoading.value = true + compositeDisposable.add( + memberRepository.updateProfile( + request = ProfileUpdateRequest( + email = SharedPreferenceManager.email, + isVisibleDonationRank = !nowStateVisibleDonationRank + ), + token = "Bearer ${SharedPreferenceManager.token}" + ) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + { + if (it.success) { + _isVisibleDonationRank.postValue(!nowStateVisibleDonationRank) + } 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/layout/activity_user_profile_live_all.xml b/app/src/main/res/layout/activity_user_profile_live_all.xml index ec9447d..29ae4a5 100644 --- a/app/src/main/res/layout/activity_user_profile_live_all.xml +++ b/app/src/main/res/layout/activity_user_profile_live_all.xml @@ -40,7 +40,7 @@ android:layout_height="wrap_content" android:layout_marginStart="10dp" android:contentDescription="@null" - android:src="@drawable/btn_toggle_on_big" /> + tools:src="@drawable/btn_toggle_on_big" />