모든 기기에서 로그아웃 추가
This commit is contained in:
@@ -35,6 +35,19 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
|
||||
)
|
||||
}
|
||||
|
||||
private val logoutAllDialog: SodaDialog by lazy {
|
||||
SodaDialog(
|
||||
activity = this,
|
||||
layoutInflater = layoutInflater,
|
||||
title = "알림",
|
||||
desc = "모든 기기에서 로그아웃 하시겠어요?",
|
||||
confirmButtonTitle = "확인",
|
||||
confirmButtonClick = { logoutAllDevice() },
|
||||
cancelButtonTitle = "취소",
|
||||
cancelButtonClick = {}
|
||||
)
|
||||
}
|
||||
|
||||
private val viewModel: SettingsViewModel by inject()
|
||||
|
||||
private lateinit var loadingDialog: LoadingDialog
|
||||
@@ -101,6 +114,10 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
|
||||
logoutDialog.show(screenWidth)
|
||||
}
|
||||
|
||||
binding.tvLogOutAll.setOnClickListener {
|
||||
logoutAllDialog.show(screenWidth)
|
||||
}
|
||||
|
||||
binding.tvSignOut.paintFlags = binding.tvSignOut.paintFlags.or(Paint.UNDERLINE_TEXT_FLAG)
|
||||
binding.tvSignOut.setOnClickListener {
|
||||
startActivity(Intent(applicationContext, SignOutActivity::class.java))
|
||||
@@ -134,4 +151,18 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
|
||||
startActivity(Intent(applicationContext, SplashActivity::class.java))
|
||||
}
|
||||
}
|
||||
|
||||
private fun logoutAllDevice() {
|
||||
startService(
|
||||
Intent(applicationContext, AudioContentPlayService::class.java).apply {
|
||||
action = AudioContentPlayService.MusicAction.STOP.name
|
||||
}
|
||||
)
|
||||
|
||||
viewModel.logoutAllDevice() {
|
||||
SharedPreferenceManager.clear()
|
||||
finishAffinity()
|
||||
startActivity(Intent(applicationContext, SplashActivity::class.java))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -44,4 +44,31 @@ class SettingsViewModel(private val userRepository: UserRepository) : BaseViewMo
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun logoutAllDevice(onSuccess: () -> Unit) {
|
||||
compositeDisposable.add(
|
||||
userRepository.logoutAllDevice(token = "Bearer ${SharedPreferenceManager.token}")
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
{
|
||||
if (it.success) {
|
||||
onSuccess()
|
||||
} else {
|
||||
if (it.message != null) {
|
||||
_toastLiveData.postValue(it.message)
|
||||
} else {
|
||||
_toastLiveData.postValue(
|
||||
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user