summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/merchantpos/MainViewModel.kt
blob: c68688c3b64c3355261e7c117fd6974f17214676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package net.taler.merchantpos

import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.viewModelScope
import com.android.volley.toolbox.Volley
import com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.KotlinModule
import net.taler.merchantpos.config.ConfigManager
import net.taler.merchantpos.order.OrderManager
import net.taler.merchantpos.payment.PaymentManager

class MainViewModel(app: Application) : AndroidViewModel(app) {

    private val mapper = ObjectMapper()
        .registerModule(KotlinModule())
        .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
    private val queue = Volley.newRequestQueue(app)

    val orderManager = OrderManager(app, mapper)
    val configManager = ConfigManager(app, viewModelScope, mapper, queue).apply {
        addConfigurationReceiver(orderManager)
    }
    val paymentManager = PaymentManager(configManager, queue, mapper)

    override fun onCleared() {
        queue.cancelAll { !it.isCanceled }
    }

}