오디션
- 오디션 알림 받기 설정 추가
This commit is contained in:
@@ -5,16 +5,21 @@ import android.graphics.Rect
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.audition.detail.AuditionDetailActivity
|
||||
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||
import kr.co.vividnext.sodalive.common.Constants
|
||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentAuditionBinding
|
||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||
import kr.co.vividnext.sodalive.main.MainActivity
|
||||
import org.koin.android.ext.android.inject
|
||||
|
||||
@UnstableApi
|
||||
class AuditionFragment : BaseFragment<FragmentAuditionBinding>(
|
||||
FragmentAuditionBinding::inflate
|
||||
) {
|
||||
@@ -32,6 +37,12 @@ class AuditionFragment : BaseFragment<FragmentAuditionBinding>(
|
||||
viewModel.getAuditionList()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
setAuditionNotification(SharedPreferenceManager.isAuditionNotification)
|
||||
}
|
||||
|
||||
private fun setupView() {
|
||||
loadingDialog = LoadingDialog(requireActivity(), layoutInflater)
|
||||
|
||||
@@ -79,6 +90,12 @@ class AuditionFragment : BaseFragment<FragmentAuditionBinding>(
|
||||
})
|
||||
|
||||
recyclerView.adapter = adapter
|
||||
|
||||
binding.ivNotification.setOnClickListener {
|
||||
viewModel.updateNotificationSettings {
|
||||
setAuditionNotification(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun bindData() {
|
||||
@@ -98,4 +115,14 @@ class AuditionFragment : BaseFragment<FragmentAuditionBinding>(
|
||||
adapter.addGroupedList(it)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setAuditionNotification(isAuditionNotification: Boolean) {
|
||||
binding.ivNotification.setImageResource(
|
||||
if (isAuditionNotification) {
|
||||
R.drawable.btn_audition_notification_selected
|
||||
} else {
|
||||
R.drawable.btn_audition_notification_normal
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,13 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kr.co.vividnext.sodalive.base.BaseViewModel
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.settings.notification.UpdateNotificationSettingRequest
|
||||
import kr.co.vividnext.sodalive.user.UserRepository
|
||||
|
||||
class AuditionViewModel(private val repository: AuditionRepository) : BaseViewModel() {
|
||||
class AuditionViewModel(
|
||||
private val repository: AuditionRepository,
|
||||
private val userRepository: UserRepository
|
||||
) : BaseViewModel() {
|
||||
private val _toastLiveData = MutableLiveData<String?>()
|
||||
val toastLiveData: LiveData<String?>
|
||||
get() = _toastLiveData
|
||||
@@ -65,4 +70,30 @@ class AuditionViewModel(private val repository: AuditionRepository) : BaseViewMo
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun updateNotificationSettings(onSuccess: (Boolean) -> Unit) {
|
||||
val isActiveNotification = !SharedPreferenceManager.isAuditionNotification
|
||||
|
||||
compositeDisposable.add(
|
||||
userRepository.updateNotificationSettings(
|
||||
request = UpdateNotificationSettingRequest(
|
||||
audition = isActiveNotification
|
||||
),
|
||||
token = "Bearer ${SharedPreferenceManager.token}"
|
||||
)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
{
|
||||
if (it.success) {
|
||||
SharedPreferenceManager.isAuditionNotification = isActiveNotification
|
||||
onSuccess(isActiveNotification)
|
||||
} else {
|
||||
onSuccess(!isActiveNotification)
|
||||
}
|
||||
},
|
||||
{}
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user