mitigate endless loop in case of exception

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-04-28 13:55:35 +02:00
parent 1c6cd78fdb
commit 0991636c6d
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

View File

@ -1358,10 +1358,11 @@ class SettingsActivity :
@Suppress("Detekt.TooGenericExceptionCaught")
private fun observeReadPrivacy() {
var exceptionCaught = false
lifecycleScope.launch {
var state = appPreferences.readPrivacy
readPrivacyFlow.collect { newBoolean ->
if (state != newBoolean) {
if (!exceptionCaught && state != newBoolean) {
state = newBoolean
val booleanValue = if (newBoolean) "0" else "1"
val json = "{\"key\": \"read_status_privacy\", \"value\" : $booleanValue}"
@ -1377,6 +1378,7 @@ class SettingsActivity :
}
} catch (e: Exception) {
withContext(Dispatchers.Main) {
exceptionCaught = true
appPreferences.setReadPrivacy(!newBoolean)
binding.settingsReadPrivacySwitch.isChecked = !newBoolean
}
@ -1394,10 +1396,11 @@ class SettingsActivity :
@Suppress("Detekt.TooGenericExceptionCaught")
private fun observeTypingStatus() {
var exceptionCaught = false
lifecycleScope.launch {
var state = appPreferences.typingStatus
typingStatusFlow.collect { newBoolean ->
if (state != newBoolean) {
if (!exceptionCaught && state != newBoolean) {
state = newBoolean
val booleanValue = if (newBoolean) "0" else "1"
val json = "{\"key\": \"typing_privacy\", \"value\" : $booleanValue}"
@ -1416,6 +1419,7 @@ class SettingsActivity :
}
} catch (e: Exception) {
withContext(Dispatchers.Main) {
exceptionCaught = true
appPreferences.typingStatus = !newBoolean
binding.settingsTypingStatusSwitch.isChecked = !newBoolean
}