Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 6615992

Browse files
committed
refactor: simplify PasswordDialog emissions
1 parent 6dcffc0 commit 6615992

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

app/src/main/java/app/passwordstore/ui/crypto/PasswordDialog.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import app.passwordstore.util.extensions.unsafeLazy
1919
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2020
import kotlinx.coroutines.flow.MutableStateFlow
2121
import kotlinx.coroutines.flow.asStateFlow
22+
import kotlinx.coroutines.flow.update
2223

2324
/** [DialogFragment] to request a password from the user and forward it along. */
2425
class PasswordDialog : DialogFragment() {
@@ -32,7 +33,7 @@ class PasswordDialog : DialogFragment() {
3233
val builder = MaterialAlertDialogBuilder(requireContext())
3334
builder.setView(binding.root)
3435
builder.setTitle(R.string.password)
35-
builder.setPositiveButton(android.R.string.ok) { _, _ -> tryEmitPassword() }
36+
builder.setPositiveButton(android.R.string.ok) { _, _ -> setPasswordAndDismiss() }
3637
val dialog = builder.create()
3738
dialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
3839
dialog.setOnShowListener {
@@ -42,7 +43,7 @@ class PasswordDialog : DialogFragment() {
4243
binding.passwordEditText.doOnTextChanged { _, _, _, _ -> binding.passwordField.error = null }
4344
binding.passwordEditText.setOnKeyListener { _, keyCode, _ ->
4445
if (keyCode == KeyEvent.KEYCODE_ENTER) {
45-
tryEmitPassword()
46+
setPasswordAndDismiss()
4647
return@setOnKeyListener true
4748
}
4849
false
@@ -64,9 +65,8 @@ class PasswordDialog : DialogFragment() {
6465
finish()
6566
}
6667

67-
@Suppress("ControlFlowWithEmptyBody")
68-
private fun tryEmitPassword() {
69-
do {} while (!_password.tryEmit(binding.passwordEditText.text.toString()))
68+
private fun setPasswordAndDismiss() {
69+
_password.update { binding.passwordEditText.text.toString() }
7070
dismissAllowingStateLoss()
7171
}
7272
}

0 commit comments

Comments
 (0)