From 67e70e5936797eaeb7a58b6d4fef53affa03736e Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 7 Nov 2021 20:50:25 +0530 Subject: Cleanup extra content handling (#1536) * BasicBottomSheet: remove unnecessary custom background Fixes: 88c9a0d487ca ("app: refactor M3 themes and styles") * FieldItemAdapter: fix typo ClipBoard -> Clipboard * FieldItemAdapter: fix RV binding idempotency * app: refactor FieldItemAdapter population logic * DecryptActivityV2: wire in missing 'show password' toggle --- .../dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt | 22 ++++++++++++---------- .../msfjarvis/aps/ui/crypto/DecryptActivityV2.kt | 20 ++++++++++++-------- 2 files changed, 24 insertions(+), 18 deletions(-) (limited to 'app/src/main/java/dev/msfjarvis/aps/ui/crypto') diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt index e1ee2195..1e46dfda 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivity.kt @@ -179,9 +179,6 @@ class DecryptActivity : BasePgpActivity(), OpenPgpServiceConnection.OnBound { runCatching { val showPassword = settings.getBoolean(PreferenceKeys.SHOW_PASSWORD, true) val entry = passwordEntryFactory.create(lifecycleScope, outputStream.toByteArray()) - val items = arrayListOf() - val adapter = - FieldItemAdapter(emptyList(), showPassword) { text -> copyTextToClipboard(text) } if (settings.getBoolean(PreferenceKeys.COPY_ON_DECRYPT, false)) { copyPasswordToClipboard(entry.password) @@ -190,17 +187,13 @@ class DecryptActivity : BasePgpActivity(), OpenPgpServiceConnection.OnBound { passwordEntry = entry invalidateOptionsMenu() + val items = arrayListOf() if (!entry.password.isNullOrBlank()) { items.add(FieldItem.createPasswordField(entry.password!!)) } if (entry.hasTotp()) { - launch { - items.add(FieldItem.createOtpField(entry.totp.value)) - entry.totp.collect { code -> - withContext(Dispatchers.Main) { adapter.updateOTPCode(code) } - } - } + items.add(FieldItem.createOtpField(entry.totp.value)) } if (!entry.username.isNullOrBlank()) { @@ -211,8 +204,17 @@ class DecryptActivity : BasePgpActivity(), OpenPgpServiceConnection.OnBound { items.add(FieldItem(key, value, FieldItem.ActionType.COPY)) } + val adapter = + FieldItemAdapter(items, showPassword) { text -> copyTextToClipboard(text) } binding.recyclerView.adapter = adapter - adapter.updateItems(items) + + if (entry.hasTotp()) { + lifecycleScope.launch { + entry.totp.collect { code -> + withContext(Dispatchers.Main) { adapter.updateOTPCode(code) } + } + } + } } .onFailure { e -> logcat(ERROR) { e.asLog() } } } diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivityV2.kt b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivityV2.kt index 403b8191..4b49632d 100644 --- a/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivityV2.kt +++ b/app/src/main/java/dev/msfjarvis/aps/ui/crypto/DecryptActivityV2.kt @@ -20,6 +20,7 @@ import dev.msfjarvis.aps.injection.password.PasswordEntryFactory import dev.msfjarvis.aps.ui.adapters.FieldItemAdapter import dev.msfjarvis.aps.util.extensions.unsafeLazy import dev.msfjarvis.aps.util.extensions.viewBinding +import dev.msfjarvis.aps.util.settings.PreferenceKeys import java.io.ByteArrayOutputStream import java.io.File import javax.inject.Inject @@ -142,23 +143,18 @@ class DecryptActivityV2 : BasePgpActivity() { } startAutoDismissTimer() + val showPassword = settings.getBoolean(PreferenceKeys.SHOW_PASSWORD, true) val entry = passwordEntryFactory.create(lifecycleScope, result.toByteArray()) passwordEntry = entry invalidateOptionsMenu() val items = arrayListOf() - val adapter = FieldItemAdapter(emptyList(), true) { text -> copyTextToClipboard(text) } if (!entry.password.isNullOrBlank()) { items.add(FieldItem.createPasswordField(entry.password!!)) } if (entry.hasTotp()) { - lifecycleScope.launch { - items.add(FieldItem.createOtpField(entry.totp.value)) - entry.totp.collect { code -> - withContext(Dispatchers.Main) { adapter.updateOTPCode(code) } - } - } + items.add(FieldItem.createOtpField(entry.totp.value)) } if (!entry.username.isNullOrBlank()) { @@ -169,8 +165,16 @@ class DecryptActivityV2 : BasePgpActivity() { items.add(FieldItem(key, value, FieldItem.ActionType.COPY)) } + val adapter = FieldItemAdapter(items, showPassword) { text -> copyTextToClipboard(text) } binding.recyclerView.adapter = adapter - adapter.updateItems(items) + + if (entry.hasTotp()) { + lifecycleScope.launch { + entry.totp.collect { code -> + withContext(Dispatchers.Main) { adapter.updateOTPCode(code) } + } + } + } } } -- cgit v1.2.3