aboutsummaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-08-19 13:09:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-08-19 13:30:46 +0200
commitda6b6e104959ea057faf523cfae5a70de7c3ee5e (patch)
treed1151820533db2dec486c4f5525e89988b879f54 /src/android
parent204c10c00759b1894a786e73401ba0b25a48a715 (diff)
downloadwallet-core-da6b6e104959ea057faf523cfae5a70de7c3ee5e.tar.xz
android support skeleton
Diffstat (limited to 'src/android')
-rw-r--r--src/android/index.ts63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/android/index.ts b/src/android/index.ts
new file mode 100644
index 000000000..3e7eeb645
--- /dev/null
+++ b/src/android/index.ts
@@ -0,0 +1,63 @@
+/*
+ This file is part of GNU Taler
+ (C) 2019 GNUnet e.V.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+ * Imports.
+ */
+import { Wallet } from "../wallet";
+import { getDefaultNodeWallet } from "../headless/helpers";
+
+
+class AndroidWalletHelper {
+ wallet: Wallet | undefined;
+ constructor (private sendMessage: (m: any) => void) {
+ }
+
+ async init() {
+ this.wallet = await getDefaultNodeWallet();
+ }
+}
+
+export function installAndroidWalletListener() {
+ // @ts-ignore
+ const sendMessage: (m: any) => void = global.__akono_sendMessage;
+ if (typeof sendMessage !== "function") {
+ const errMsg = "FATAL: cannot install android wallet listener: akono functions missing";
+ console.error(errMsg);
+ throw new Error(errMsg);
+ }
+ const walletHelper = new AndroidWalletHelper(sendMessage);
+ const onMessage = (msg: any) => {
+ const operation = msg.operation;
+ if (typeof operation !== "string") {
+ console.error("message to android wallet helper must contain operation of type string");
+ return;
+ }
+ switch (operation) {
+ case "init":
+ break;
+ case "getBalances":
+ break;
+ case "withdraw-testkudos":
+ break;
+ default:
+ console.error(`operation "${operation}" not understood`);
+ return;
+ }
+ };
+ // @ts-ignore
+ globalThis.__akono_onMessage = onMessage;
+} \ No newline at end of file