diff options
author | Torsten Grote <t@grobox.de> | 2020-03-18 17:24:02 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-03-18 17:24:02 -0300 |
commit | 82b8b57dc16112b859150696199774fcf06655e1 (patch) | |
tree | e4bc3e9b799b7b3529821fa29041abe71f85e986 /merchant-terminal/src/main/java/net/taler/merchantpos/config | |
parent | b24169502d8052c7359632059f147734d8da1dd9 (diff) | |
download | taler-android-82b8b57dc16112b859150696199774fcf06655e1.tar.gz taler-android-82b8b57dc16112b859150696199774fcf06655e1.tar.bz2 taler-android-82b8b57dc16112b859150696199774fcf06655e1.zip |
Factor out code from merchant-terminal into common library
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/config')
3 files changed, 50 insertions, 7 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt index c370e33..c0c87dc 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt @@ -23,14 +23,13 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer -import androidx.navigation.fragment.findNavController import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar.LENGTH_SHORT +import net.taler.common.navigate import net.taler.merchantpos.MainViewModel import net.taler.merchantpos.R import net.taler.merchantpos.config.ConfigFetcherFragmentDirections.Companion.actionConfigFetcherToMerchantSettings import net.taler.merchantpos.config.ConfigFetcherFragmentDirections.Companion.actionConfigFetcherToOrder -import net.taler.merchantpos.navigate class ConfigFetcherFragment : Fragment() { @@ -52,7 +51,7 @@ class ConfigFetcherFragment : Fragment() { null -> return@Observer is ConfigUpdateResult.Error -> onNetworkError(result.msg) is ConfigUpdateResult.Success -> { - actionConfigFetcherToOrder().navigate(findNavController()) + navigate(actionConfigFetcherToOrder()) } } }) @@ -60,7 +59,7 @@ class ConfigFetcherFragment : Fragment() { private fun onNetworkError(msg: String) { Snackbar.make(view!!, msg, LENGTH_SHORT).show() - actionConfigFetcherToMerchantSettings().navigate(findNavController()) + navigate(actionConfigFetcherToMerchantSettings()) } } diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt index 2050e28..8141f0f 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt @@ -17,7 +17,13 @@ package net.taler.merchantpos.config import android.net.Uri +import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonProperty +import net.taler.common.Amount +import net.taler.common.ContractProduct +import net.taler.common.Product +import net.taler.common.TalerUtils +import java.util.* data class Config( val configUrl: String, @@ -45,3 +51,42 @@ data class MerchantConfig( return uriBuilder.toString() } } + +data class Category( + val id: Int, + val name: String, + @JsonProperty("name_i18n") + val nameI18n: Map<String, String>? +) { + var selected: Boolean = false + val localizedName: String get() = TalerUtils.getLocalizedString(nameI18n, name) +} + +data class ConfigProduct( + @JsonIgnore + val id: String = UUID.randomUUID().toString(), + override val productId: String?, + override val description: String, + override val descriptionI18n: Map<String, String>?, + override val price: String, + override val location: String?, + override val image: String?, + val categories: List<Int>, + @JsonIgnore + val quantity: Int = 0 +) : Product() { + val priceAsDouble by lazy { Amount.fromString(price).amount.toDouble() } + + fun toContractProduct() = ContractProduct( + productId = productId, + description = description, + descriptionI18n = descriptionI18n, + price = price, + location = location, + image = image, + quantity = quantity + ) + + override fun equals(other: Any?) = other is ConfigProduct && id == other.id + override fun hashCode() = id.hashCode() +} diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt index aad1c93..a584af8 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt @@ -28,14 +28,13 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer -import androidx.navigation.fragment.findNavController import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG import com.google.android.material.snackbar.Snackbar import kotlinx.android.synthetic.main.fragment_merchant_config.* +import net.taler.common.navigate import net.taler.merchantpos.MainViewModel import net.taler.merchantpos.R import net.taler.merchantpos.config.MerchantConfigFragmentDirections.Companion.actionSettingsToOrder -import net.taler.merchantpos.navigate import net.taler.merchantpos.topSnackbar /** @@ -149,7 +148,7 @@ class MerchantConfigFragment : Fragment() { onResultReceived() updateView() topSnackbar(view!!, getString(R.string.config_changed, currency), LENGTH_LONG) - actionSettingsToOrder().navigate(findNavController()) + navigate(actionSettingsToOrder()) } private fun onError(msg: String) { |