설정
- 19금 콘텐츠 보기 설정 UI depth 추가 - 콘텐츠 보기 설정으로 제목 변경
This commit is contained in:
@@ -104,6 +104,7 @@ import kr.co.vividnext.sodalive.mypage.service_center.ServiceCenterViewModel
|
||||
import kr.co.vividnext.sodalive.network.TokenAuthenticator
|
||||
import kr.co.vividnext.sodalive.report.ReportApi
|
||||
import kr.co.vividnext.sodalive.report.ReportRepository
|
||||
import kr.co.vividnext.sodalive.settings.ContentSettingsViewModel
|
||||
import kr.co.vividnext.sodalive.settings.SettingsViewModel
|
||||
import kr.co.vividnext.sodalive.settings.event.EventApi
|
||||
import kr.co.vividnext.sodalive.settings.event.EventRepository
|
||||
@@ -221,6 +222,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
|
||||
viewModel { NoticeViewModel(get()) }
|
||||
viewModel { EventViewModel(get()) }
|
||||
viewModel { NotificationSettingsViewModel(get()) }
|
||||
viewModel { ContentSettingsViewModel() }
|
||||
viewModel { SettingsViewModel(get()) }
|
||||
viewModel { SeriesDetailViewModel(get(), get()) }
|
||||
viewModel { SeriesListAllViewModel(get()) }
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
package kr.co.vividnext.sodalive.settings
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.databinding.ActivityContentSettingsBinding
|
||||
import kr.co.vividnext.sodalive.splash.SplashActivity
|
||||
import org.koin.android.ext.android.inject
|
||||
|
||||
class ContentSettingsActivity : BaseActivity<ActivityContentSettingsBinding>(
|
||||
ActivityContentSettingsBinding::inflate
|
||||
) {
|
||||
|
||||
private val viewModel: ContentSettingsViewModel by inject()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
bindData()
|
||||
|
||||
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
handleFinish()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun setupView() {
|
||||
binding.toolbar.tvBack.text = "콘텐츠 보기 설정"
|
||||
binding.toolbar.tvBack.setOnClickListener { handleFinish() }
|
||||
|
||||
// 본인 인증 체크
|
||||
if (SharedPreferenceManager.isAuth) {
|
||||
binding.llAdultContentVisible.visibility = View.VISIBLE
|
||||
|
||||
// 19금 콘텐츠 보기 체크
|
||||
if (SharedPreferenceManager.isAdultContentVisible) {
|
||||
binding.llAdultContentPreference.visibility = View.VISIBLE
|
||||
|
||||
} else {
|
||||
binding.llAdultContentPreference.visibility = View.GONE
|
||||
}
|
||||
|
||||
// 19금 콘텐츠 보기 스위치 액션
|
||||
binding.ivAdultContentVisible.setOnClickListener {
|
||||
viewModel.toggleAdultContentVisible()
|
||||
}
|
||||
|
||||
binding.tvContentAll.setOnClickListener {
|
||||
viewModel.setAdultContentPreference(ContentType.ALL)
|
||||
}
|
||||
|
||||
binding.tvContentMale.setOnClickListener {
|
||||
viewModel.setAdultContentPreference(ContentType.MALE)
|
||||
}
|
||||
|
||||
binding.tvContentFemale.setOnClickListener {
|
||||
viewModel.setAdultContentPreference(ContentType.FEMALE)
|
||||
}
|
||||
} else {
|
||||
binding.llAdultContentVisible.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun bindData() {
|
||||
viewModel.isAdultContentVisible.observe(this) {
|
||||
if (it) {
|
||||
binding.ivAdultContentVisible.setImageResource(R.drawable.btn_toggle_on_big)
|
||||
binding.llAdultContentPreference.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.ivAdultContentVisible.setImageResource(R.drawable.btn_toggle_off_big)
|
||||
binding.llAdultContentPreference.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.adultContentPreference.observe(this) {
|
||||
binding.tvContentAll.isSelected = false
|
||||
binding.tvContentMale.isSelected = false
|
||||
binding.tvContentFemale.isSelected = false
|
||||
|
||||
when (it) {
|
||||
ContentType.ALL -> binding.tvContentAll.isSelected = true
|
||||
ContentType.MALE -> binding.tvContentMale.isSelected = true
|
||||
ContentType.FEMALE -> binding.tvContentFemale.isSelected = true
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleFinish() {
|
||||
if (viewModel.isChangedAdultContentVisible) {
|
||||
startActivity(
|
||||
Intent(
|
||||
this@ContentSettingsActivity,
|
||||
SplashActivity::class.java
|
||||
).apply {
|
||||
addFlags(
|
||||
Intent.FLAG_ACTIVITY_CLEAR_TASK or
|
||||
Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
)
|
||||
}
|
||||
)
|
||||
finish()
|
||||
} else {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package kr.co.vividnext.sodalive.settings
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import kr.co.vividnext.sodalive.base.BaseViewModel
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
|
||||
class ContentSettingsViewModel : BaseViewModel() {
|
||||
private var _isAdultContentVisible = MutableLiveData(
|
||||
SharedPreferenceManager.isAdultContentVisible
|
||||
)
|
||||
val isAdultContentVisible: LiveData<Boolean>
|
||||
get() = _isAdultContentVisible
|
||||
|
||||
private var _adultContentPreference = MutableLiveData(
|
||||
ContentType.values()[SharedPreferenceManager.contentPreference]
|
||||
)
|
||||
val adultContentPreference: LiveData<ContentType>
|
||||
get() = _adultContentPreference
|
||||
|
||||
var isChangedAdultContentVisible = false
|
||||
|
||||
fun toggleAdultContentVisible() {
|
||||
val adultContentVisible = SharedPreferenceManager.isAdultContentVisible
|
||||
_isAdultContentVisible.value = !adultContentVisible
|
||||
SharedPreferenceManager.isAdultContentVisible = !adultContentVisible
|
||||
isChangedAdultContentVisible = true
|
||||
|
||||
if (adultContentVisible) {
|
||||
SharedPreferenceManager.contentPreference = ContentType.ALL.ordinal
|
||||
}
|
||||
}
|
||||
|
||||
fun setAdultContentPreference(adultContentPreference: ContentType) {
|
||||
_adultContentPreference.value = adultContentPreference
|
||||
SharedPreferenceManager.contentPreference = adultContentPreference.ordinal
|
||||
isChangedAdultContentVisible = true
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ import android.widget.Toast
|
||||
import androidx.activity.viewModels
|
||||
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
|
||||
import kr.co.vividnext.sodalive.BuildConfig
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
|
||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
import kr.co.vividnext.sodalive.base.SodaDialog
|
||||
@@ -97,6 +96,20 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
|
||||
)
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.isAuth) {
|
||||
binding.rlContentSettings.visibility = View.VISIBLE
|
||||
binding.rlContentSettings.setOnClickListener {
|
||||
startActivity(
|
||||
Intent(
|
||||
applicationContext,
|
||||
ContentSettingsActivity::class.java
|
||||
)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
binding.rlContentSettings.visibility = View.GONE
|
||||
}
|
||||
|
||||
binding.rlTerms.setOnClickListener {
|
||||
val intent = Intent(applicationContext, TermsActivity::class.java)
|
||||
intent.putExtra(Constants.EXTRA_TERMS, Constants.EXTRA_TERMS)
|
||||
@@ -128,42 +141,6 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
|
||||
binding.tvSignOut.setOnClickListener {
|
||||
startActivity(Intent(applicationContext, SignOutActivity::class.java))
|
||||
}
|
||||
|
||||
setupAdultContentVisibleView()
|
||||
}
|
||||
|
||||
private fun setupAdultContentVisibleView() {
|
||||
// 본인 인증 체크
|
||||
if (SharedPreferenceManager.isAuth) {
|
||||
binding.llAdultContentVisible.visibility = View.VISIBLE
|
||||
|
||||
// 19금 콘텐츠 보기 체크
|
||||
if (SharedPreferenceManager.isAdultContentVisible) {
|
||||
binding.llAdultContentPreference.visibility = View.VISIBLE
|
||||
|
||||
} else {
|
||||
binding.llAdultContentPreference.visibility = View.GONE
|
||||
}
|
||||
|
||||
// 19금 콘텐츠 보기 스위치 액션
|
||||
binding.ivAdultContentVisible.setOnClickListener {
|
||||
viewModel.toggleAdultContentVisible()
|
||||
}
|
||||
|
||||
binding.tvContentAll.setOnClickListener {
|
||||
viewModel.setAdultContentPreference(ContentType.ALL)
|
||||
}
|
||||
|
||||
binding.tvContentMale.setOnClickListener {
|
||||
viewModel.setAdultContentPreference(ContentType.MALE)
|
||||
}
|
||||
|
||||
binding.tvContentFemale.setOnClickListener {
|
||||
viewModel.setAdultContentPreference(ContentType.FEMALE)
|
||||
}
|
||||
} else {
|
||||
binding.llAdultContentVisible.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun bindData() {
|
||||
@@ -178,29 +155,6 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
|
||||
viewModel.toastLiveData.observe(this) {
|
||||
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
|
||||
}
|
||||
|
||||
viewModel.isAdultContentVisible.observe(this) {
|
||||
if (it) {
|
||||
binding.ivAdultContentVisible.setImageResource(R.drawable.btn_toggle_on_big)
|
||||
binding.llAdultContentPreference.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.ivAdultContentVisible.setImageResource(R.drawable.btn_toggle_off_big)
|
||||
binding.llAdultContentPreference.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.adultContentPreference.observe(this) {
|
||||
binding.tvContentAll.isSelected = false
|
||||
binding.tvContentMale.isSelected = false
|
||||
binding.tvContentFemale.isSelected = false
|
||||
|
||||
when (it) {
|
||||
ContentType.ALL -> binding.tvContentAll.isSelected = true
|
||||
ContentType.MALE -> binding.tvContentMale.isSelected = true
|
||||
ContentType.FEMALE -> binding.tvContentFemale.isSelected = true
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun logout() {
|
||||
|
||||
@@ -18,20 +18,6 @@ class SettingsViewModel(private val userRepository: UserRepository) : BaseViewMo
|
||||
val isLoading: LiveData<Boolean>
|
||||
get() = _isLoading
|
||||
|
||||
private var _isAdultContentVisible = MutableLiveData(
|
||||
SharedPreferenceManager.isAdultContentVisible
|
||||
)
|
||||
val isAdultContentVisible: LiveData<Boolean>
|
||||
get() = _isAdultContentVisible
|
||||
|
||||
private var _adultContentPreference = MutableLiveData(
|
||||
ContentType.values()[SharedPreferenceManager.contentPreference]
|
||||
)
|
||||
val adultContentPreference: LiveData<ContentType>
|
||||
get() = _adultContentPreference
|
||||
|
||||
var isChangedAdultContentVisible = false
|
||||
|
||||
fun logout(onSuccess: () -> Unit) {
|
||||
compositeDisposable.add(
|
||||
userRepository.logout(token = "Bearer ${SharedPreferenceManager.token}")
|
||||
@@ -85,17 +71,4 @@ class SettingsViewModel(private val userRepository: UserRepository) : BaseViewMo
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun toggleAdultContentVisible() {
|
||||
val adultContentVisible = SharedPreferenceManager.isAdultContentVisible
|
||||
_isAdultContentVisible.value = !adultContentVisible
|
||||
SharedPreferenceManager.isAdultContentVisible = !adultContentVisible
|
||||
isChangedAdultContentVisible = true
|
||||
}
|
||||
|
||||
fun setAdultContentPreference(adultContentPreference: ContentType) {
|
||||
_adultContentPreference.value = adultContentPreference
|
||||
SharedPreferenceManager.contentPreference = adultContentPreference.ordinal
|
||||
isChangedAdultContentVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user