summaryrefslogtreecommitdiff
path: root/merchant-terminal/src/main/java/net/taler/merchantpos/config
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-03-18 17:24:02 -0300
committerTorsten Grote <t@grobox.de>2020-03-18 17:24:02 -0300
commit82b8b57dc16112b859150696199774fcf06655e1 (patch)
treee4bc3e9b799b7b3529821fa29041abe71f85e986 /merchant-terminal/src/main/java/net/taler/merchantpos/config
parentb24169502d8052c7359632059f147734d8da1dd9 (diff)
downloadtaler-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')
-rw-r--r--merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt7
-rw-r--r--merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt45
-rw-r--r--merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt5
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) {