parent
2ed77a3332
commit
084c306159
|
@ -20,6 +20,7 @@ import kr.co.vividnext.sodalive.common.Constants
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||||
import kr.co.vividnext.sodalive.databinding.ActivitySeriesDetailBinding
|
import kr.co.vividnext.sodalive.databinding.ActivitySeriesDetailBinding
|
||||||
|
import kr.co.vividnext.sodalive.explorer.profile.CreatorFollowNotifyFragment
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
|
|
||||||
|
@ -170,29 +171,68 @@ class SeriesDetailActivity : BaseActivity<ActivitySeriesDetailBinding>(
|
||||||
|
|
||||||
if (SharedPreferenceManager.userId != creator.creatorId) {
|
if (SharedPreferenceManager.userId != creator.creatorId) {
|
||||||
binding.ivFollow.visibility = View.VISIBLE
|
binding.ivFollow.visibility = View.VISIBLE
|
||||||
binding.ivFollow.setImageResource(
|
|
||||||
if (creator.isFollow) {
|
if (creator.isFollow) {
|
||||||
|
binding.ivFollow.setImageResource(
|
||||||
|
if (creator.isNotify) {
|
||||||
R.drawable.btn_following_big
|
R.drawable.btn_following_big
|
||||||
} else {
|
} else {
|
||||||
R.drawable.btn_follow_big
|
R.drawable.btn_following_no_alarm_big
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
binding.ivFollow.setImageResource(R.drawable.btn_follow_big)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.ivFollow.visibility = View.GONE
|
binding.ivFollow.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.ivFollow.setOnClickListener {
|
binding.ivFollow.setOnClickListener {
|
||||||
if (creator.isFollow) {
|
if (creator.isFollow) {
|
||||||
viewModel.unFollow(creator.creatorId) {
|
val notifyFragment = CreatorFollowNotifyFragment(
|
||||||
creator.isFollow = false
|
onClickNotifyAll = {
|
||||||
binding.ivFollow.setImageResource(R.drawable.btn_follow_big)
|
viewModel.follow(
|
||||||
}
|
creatorId = creator.creatorId,
|
||||||
} else {
|
follow = true,
|
||||||
viewModel.follow(creator.creatorId) {
|
notify = true
|
||||||
|
) {
|
||||||
creator.isFollow = true
|
creator.isFollow = true
|
||||||
|
creator.isNotify = true
|
||||||
binding.ivFollow.setImageResource(R.drawable.btn_following_big)
|
binding.ivFollow.setImageResource(R.drawable.btn_following_big)
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
onClickNotifyNone = {
|
||||||
|
viewModel.follow(
|
||||||
|
creatorId = creator.creatorId,
|
||||||
|
follow = true,
|
||||||
|
notify = false
|
||||||
|
) {
|
||||||
|
creator.isFollow = true
|
||||||
|
creator.isNotify = false
|
||||||
|
binding.ivFollow.setImageResource(R.drawable.btn_following_no_alarm_big)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onClickUnFollow = {
|
||||||
|
viewModel.follow(
|
||||||
|
creatorId = creator.creatorId,
|
||||||
|
follow = false,
|
||||||
|
notify = false
|
||||||
|
) {
|
||||||
|
creator.isFollow = false
|
||||||
|
creator.isNotify = false
|
||||||
|
binding.ivFollow.setImageResource(R.drawable.btn_follow_big)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (notifyFragment.isAdded) return@setOnClickListener
|
||||||
|
notifyFragment.show(supportFragmentManager, notifyFragment.tag)
|
||||||
|
} else {
|
||||||
|
viewModel.follow(creatorId = creator.creatorId) {
|
||||||
|
creator.isFollow = true
|
||||||
|
creator.isNotify = true
|
||||||
|
binding.ivFollow.setImageResource(R.drawable.btn_following_big)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,11 +63,18 @@ class SeriesDetailViewModel(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun follow(creatorId: Long, onSuccess: () -> Unit) {
|
fun follow(
|
||||||
|
creatorId: Long,
|
||||||
|
follow: Boolean = true,
|
||||||
|
notify: Boolean = true,
|
||||||
|
onSuccess: () -> Unit
|
||||||
|
) {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
userRepository.creatorFollow(
|
userRepository.creatorFollow(
|
||||||
creatorId = creatorId,
|
creatorId = creatorId,
|
||||||
|
follow,
|
||||||
|
notify,
|
||||||
token = "Bearer ${SharedPreferenceManager.token}"
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
|
@ -95,37 +102,4 @@ class SeriesDetailViewModel(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun unFollow(creatorId: Long, onSuccess: () -> Unit) {
|
|
||||||
_isLoading.value = true
|
|
||||||
compositeDisposable.add(
|
|
||||||
userRepository.creatorUnFollow(
|
|
||||||
creatorId,
|
|
||||||
"Bearer ${SharedPreferenceManager.token}"
|
|
||||||
)
|
|
||||||
.subscribeOn(Schedulers.io())
|
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
|
||||||
.subscribe(
|
|
||||||
{
|
|
||||||
if (it.success && it.data != null) {
|
|
||||||
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("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue