summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/backend
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-04-06 12:14:46 -0300
committerTorsten Grote <t@grobox.de>2020-04-06 12:14:46 -0300
commit9ee202aebf6416bb336729cb3044e4921a94bee4 (patch)
treecb08740a3a71cfb3fa003872461ef8411bd52ee5 /wallet/src/main/java/net/taler/wallet/backend
parentf1d4e51b7bddf93f12e431daf156025bb37222d1 (diff)
downloadtaler-android-9ee202aebf6416bb336729cb3044e4921a94bee4.tar.gz
taler-android-9ee202aebf6416bb336729cb3044e4921a94bee4.tar.bz2
taler-android-9ee202aebf6416bb336729cb3044e4921a94bee4.zip
[wallet] expose notification payloads to Android UI
also ignore ping notifications (to see if they are really needed)
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/backend')
-rw-r--r--wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt10
-rw-r--r--wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt10
2 files changed, 14 insertions, 6 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt
index d447287..3ffcd7b 100644
--- a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt
+++ b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendApi.kt
@@ -35,7 +35,7 @@ import java.util.*
class WalletBackendApi(
private val app: Application,
private val onConnected: (() -> Unit),
- private val notificationHandler: (() -> Unit)
+ private val notificationHandler: ((payload: JSONObject) -> Unit)
) {
private var walletBackendMessenger: Messenger? = null
@@ -85,7 +85,13 @@ class WalletBackendApi(
h(isError, json)
}
WalletBackendService.MSG_NOTIFY -> {
- api.notificationHandler.invoke()
+ val payloadStr = msg.data.getString("payload")
+ if (payloadStr == null) {
+ Log.e(TAG, "Notification had no payload: $msg")
+ } else {
+ val payload = JSONObject(payloadStr)
+ api.notificationHandler.invoke(payload)
+ }
}
}
}
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 0b71774..c0f7e9c 100644
--- a/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt
+++ b/wallet/src/main/java/net/taler/wallet/backend/WalletBackendService.kt
@@ -158,10 +158,12 @@ class WalletBackendService : Service() {
return messenger.binder
}
- private fun sendNotify() {
+ private fun sendNotify(payload: String) {
var rm: LinkedList<Messenger>? = null
for (s in subscribers) {
val m = Message.obtain(null, MSG_NOTIFY)
+ val b = m.data
+ b.putString("payload", payload)
try {
s.send(m)
} catch (e: RemoteException) {
@@ -184,7 +186,7 @@ class WalletBackendService : Service() {
val message = JSONObject(messageStr)
when (message.getString("type")) {
"notification" -> {
- sendNotify()
+ sendNotify(message.getString("payload"))
}
"tunnelHttp" -> {
Log.v(TAG, "got http tunnel request!")
@@ -197,8 +199,8 @@ class WalletBackendService : Service() {
"response" -> {
when (val operation = message.getString("operation")) {
"init" -> {
- Log.v(TAG, "got response for init operation")
- sendNotify()
+ Log.v(TAG, "got response for init operation: ${message.toString(2)}")
+ sendNotify(message.toString(2))
}
"reset" -> {
exitProcess(1)