From da6b6e104959ea057faf523cfae5a70de7c3ee5e Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 19 Aug 2019 13:09:11 +0200 Subject: android support skeleton --- src/android/index.ts | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/index.ts | 1 + 2 files changed, 64 insertions(+) create mode 100644 src/android/index.ts (limited to 'src') 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 + */ + +/** + * 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 diff --git a/src/index.ts b/src/index.ts index 6b04c7e4f..3a5cd9497 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,3 +20,4 @@ export { Wallet } from "./wallet"; export { runIntegrationTest } from "./headless/integrationtest"; +export { installAndroidWalletListener } from "./android"; -- cgit v1.2.3