summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt57
1 files changed, 37 insertions, 20 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt
index 06e0627..7b93a21 100644
--- a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt
+++ b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt
@@ -25,8 +25,7 @@ import android.os.Message
import android.os.Messenger
import android.os.RemoteException
import android.util.Log
-import net.taler.akono.AkonoJni
-import net.taler.wallet.BuildConfig.WALLET_CORE_VERSION
+import com.sun.jna.Pointer
import net.taler.wallet.HostCardEmulatorService
import org.json.JSONObject
import java.lang.ref.WeakReference
@@ -46,7 +45,8 @@ class WalletBackendService : Service() {
*/
private val messenger: Messenger = Messenger(IncomingHandler(this))
- private lateinit var akono: AkonoJni
+ private lateinit var walletCore: TalerWalletCore
+ private lateinit var instance: Pointer
private var initialized = false
@@ -57,25 +57,23 @@ class WalletBackendService : Service() {
private val subscribers = LinkedList<Messenger>()
override fun onCreate() {
- val talerWalletAndroidCode =
- assets.open("taler-wallet-embedded-$WALLET_CORE_VERSION.js").use {
- it.readBytes().toString(Charsets.UTF_8)
- }
-
-
Log.i(TAG, "onCreate in wallet backend service")
- akono = AkonoJni()
- akono.putModuleCode("@gnu-taler/taler-wallet-embedded", talerWalletAndroidCode)
- akono.setMessageHandler(object : AkonoJni.MessageHandler {
- override fun handleMessage(message: String) {
+
+ walletCore = TalerWalletCore.INSTANCE
+ instance = walletCore.TALER_WALLET_create()
+ walletCore.TALER_WALLET_set_message_handler(instance, object: TalerWalletCore.TALER_WALLET_MessageHandlerFn {
+ override fun invoke(handler_p: Pointer, message: String) {
this@WalletBackendService.handleAkonoMessage(message)
}
- })
- //akono.evalNodeCode("require('source-map-support').install();")
- akono.evalNodeCode("require('akono');")
- akono.evalNodeCode("tw = require('@gnu-taler/taler-wallet-embedded');")
- akono.evalNodeCode("tw.installNativeWalletListener();")
+ }, instance)
+ walletCore.TALER_start_redirect_std(object: TalerWalletCore.TALER_LogFn {
+ override fun invoke(cls: Pointer, stream: Int, msg: String) {
+ Log.d(TAG, "wallet log: $msg")
+ }
+ }, instance)
+ walletCore.TALER_WALLET_run(instance)
sendInitMessage()
+ // runIntegrationTest()
super.onCreate()
}
@@ -85,7 +83,26 @@ class WalletBackendService : Service() {
val args = JSONObject()
msg.put("args", args)
args.put("persistentStoragePath", "${application.filesDir}/$WALLET_DB")
- akono.sendMessage(msg.toString())
+ Log.d(TAG, "init message: ${msg.toString(2)}")
+ walletCore.TALER_WALLET_send_request(instance, msg.toString())
+ }
+
+ /**
+ * Run the integration tests for wallet-core.
+ */
+ private fun runIntegrationTest() {
+ val msg = JSONObject()
+ msg.put("operation", "runIntegrationTest")
+ val args = JSONObject()
+ msg.put("args", args)
+ args.put("amountToWithdraw", "KUDOS:3")
+ args.put("amountToSpend", "KUDOS:1")
+ args.put("bankBaseUrl", "https://bank.demo.taler.net/demobanks/default/access-api/")
+ args.put("exchangeBaseUrl", "https://exchange.demo.taler.net/")
+ args.put("merchantBaseUrl", "https://backend.demo.taler.net/")
+ args.put("merchantAuthToken", "secret-token:sandbox")
+ Log.d(TAG, "integration test message: ${msg.toString(2)}")
+ walletCore.TALER_WALLET_send_request(instance, msg.toString())
}
/**
@@ -125,7 +142,7 @@ class WalletBackendService : Service() {
request.put("operation", operation)
request.put("id", serviceRequestID)
request.put("args", argsObj)
- svc.akono.sendMessage(request.toString(2))
+ svc.walletCore.TALER_WALLET_send_request(svc.instance, request.toString(2))
Log.i(
TAG,
"mapping service request ID $serviceRequestID to client request ID $clientRequestID"