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" />