모든 기기에서 로그아웃 추가

This commit is contained in:
2023-08-09 08:56:04 +09:00
parent a75217ee09
commit 68f2896031
6 changed files with 85 additions and 1 deletions

View File

@@ -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))
}
}
}

View File

@@ -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("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
}
)
)
}
}