commit 7ab741273511e3d723d2f6304101665d1d624189 parent 364da137e615fe91a08c85b550180691ea8f3f9c Author: Bohdan Potuzhnyi <bohdan.potuzhnyi@gmail.com> Date: Thu, 23 Apr 2026 10:20:18 +0200 [merchant-pos] 🐛 s Diffstat:
5 files changed, 38 insertions(+), 12 deletions(-)
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt @@ -101,6 +101,10 @@ class ConfigFragment : Fragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + configManager.configUpdateResult.observe(viewLifecycleOwner) { result -> + onConfigUpdate(result) + } + // 1) Views val neverOption = ui.root.findViewById<RadioButton>(R.id.neverExpiresOption) val dateOption = ui.root.findViewById<RadioButton>(R.id.dateExpiresOption) @@ -181,11 +185,6 @@ class ConfigFragment : Fragment() { savePassword = ui.saveTokenCheckBox.isChecked ) configManager.fetchConfig(config, true) - configManager.configUpdateResult.observe(viewLifecycleOwner) { result -> - if (onConfigUpdate(result)) { - configManager.configUpdateResult.removeObservers(viewLifecycleOwner) - } - } } } @@ -279,14 +278,12 @@ class ConfigFragment : Fragment() { } private fun onConfigUpdate(result: ConfigUpdateResult?) = when (result) { - null -> false + null -> Unit is ConfigUpdateResult.Error -> { onError(result.msg) - true } is ConfigUpdateResult.Success -> { onConfigReceived(result.currency) - true } } diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt @@ -221,7 +221,9 @@ class ProcessPaymentFragment : Fragment() { margin = 0, errorCorrection = ErrorCorrectionLevel.H, centerLogo = null, + centerLogoSize = null, drawBackground = true, + darkColor = android.graphics.Color.BLACK, lightColor = ContextCompat.getColor(requireContext(), R.color.colorSurfaceVariant), trimQuietZone = true, ) diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt @@ -24,6 +24,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel import kotlinx.coroutines.launch import net.taler.common.QrCodeManager.makeQrCode import net.taler.lib.android.TalerNfcService.Companion.hasNfc @@ -52,7 +53,20 @@ class RefundUriFragment : Fragment() { if (result !is RefundResult.Success) throw IllegalStateException() lifecycleScope.launch { - ui.refundQrcodeView.setImageBitmap(makeQrCode(result.refundUri)) + ui.refundQrcodeView.setImageBitmap( + makeQrCode( + text = result.refundUri, + size = 256, + margin = 2, + errorCorrection = ErrorCorrectionLevel.M, + centerLogo = null, + centerLogoSize = null, + drawBackground = false, + darkColor = android.graphics.Color.BLACK, + lightColor = android.graphics.Color.WHITE, + trimQuietZone = false, + ) + ) } val introRes = diff --git a/taler-kotlin-android/src/main/java/net/taler/common/AndroidUtils.kt b/taler-kotlin-android/src/main/java/net/taler/common/AndroidUtils.kt @@ -235,7 +235,18 @@ const val SHARE_QR_QUALITY = 90 * https://developer.android.com/training/secure-file-sharing/setup-sharing */ suspend fun String.shareAsQrCode(context: Context, authority: String, qrBitmap: Bitmap? = null) { - val qrBitmap = qrBitmap ?: QrCodeManager.makeQrCode(this, SHARE_QR_SIZE) + val qrBitmap = qrBitmap ?: QrCodeManager.makeQrCode( + text = this, + size = SHARE_QR_SIZE, + margin = 2, + errorCorrection = com.google.zxing.qrcode.decoder.ErrorCorrectionLevel.M, + centerLogo = null, + centerLogoSize = null, + drawBackground = false, + darkColor = android.graphics.Color.BLACK, + lightColor = android.graphics.Color.WHITE, + trimQuietZone = false, + ) val outputDir = context.cacheDir try { val uri = withContext(Dispatchers.IO) { @@ -271,4 +282,4 @@ val String.base64Bitmap: Bitmap? val decodedString = Base64.decode(group, Base64.DEFAULT) decodeByteArray(decodedString, 0, decodedString.size) } - } -\ No newline at end of file + } diff --git a/taler-kotlin-android/src/main/java/net/taler/lib/android/AnimatedQrCodeComposable.kt b/taler-kotlin-android/src/main/java/net/taler/lib/android/AnimatedQrCodeComposable.kt @@ -175,7 +175,10 @@ fun AnimatedQrCodeComposable( margin = 0, errorCorrection = ErrorCorrectionLevel.H, centerLogo = null, + centerLogoSize = null, drawBackground = true, + darkColor = android.graphics.Color.BLACK, + lightColor = android.graphics.Color.WHITE, trimQuietZone = true, ).asImageBitmap() }