taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

WalletNavigation.kt (3592B)


      1 /*
      2  * This file is part of GNU Taler
      3  * (C) 2026 Taler Systems S.A.
      4  *
      5  * GNU Taler is free software; you can redistribute it and/or modify it under the
      6  * terms of the GNU General Public License as published by the Free Software
      7  * Foundation; either version 3, or (at your option) any later version.
      8  *
      9  * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
     10  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11  * A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License along with
     14  * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15  */
     16 
     17 package net.taler.wallet
     18 
     19 import kotlinx.serialization.Serializable
     20 
     21 @Serializable
     22 sealed interface WalletDestination {
     23     @Serializable
     24     data object Main : WalletDestination
     25 
     26     @Serializable
     27     data class HandleUri(val uri: String) : WalletDestination
     28 
     29     @Serializable
     30     data class PaytoUri(val uri: String) : WalletDestination
     31 
     32     @Serializable
     33     data class PromptWithdraw(
     34         val withdrawUri: String? = null,
     35         val withdrawExchangeUri: String? = null,
     36         val exchangeBaseUrl: String? = null,
     37         val amount: String? = null,
     38         val editableCurrency: Boolean = true
     39     ) : WalletDestination
     40 
     41     @Serializable
     42     data object ExchangeList : WalletDestination
     43 
     44     @Serializable
     45     data class BankAccounts(val currency: String? = null) : WalletDestination
     46 
     47     @Serializable
     48     data class AddBankAccount(val bankAccountId: String? = null) : WalletDestination
     49 
     50     @Serializable
     51     data object DiscountList : WalletDestination
     52 
     53     @Serializable
     54     data object PassList : WalletDestination
     55 
     56     @Serializable
     57     data class DonauStatement(val host: String) : WalletDestination
     58 
     59     @Serializable
     60     data class SetDonau(val donauBaseUrl: String? = null) : WalletDestination
     61 
     62     @Serializable
     63     data object OutgoingPush : WalletDestination
     64 
     65     @Serializable
     66     data object OutgoingPull : WalletDestination
     67 
     68     @Serializable
     69     data class Deposit(
     70         val amount: String? = null,
     71         val receiverName: String? = null,
     72         val receiverPostalCode: String? = null,
     73         val receiverTown: String? = null,
     74         val IBAN: String? = null
     75     ) : WalletDestination
     76 
     77     @Serializable
     78     data object PromptPullPayment : WalletDestination
     79 
     80     @Serializable
     81     data object PromptPushPayment : WalletDestination
     82 
     83     @Serializable
     84     data class PromptPayTemplate(val uri: String) : WalletDestination
     85 
     86     @Serializable
     87     data class WireTransferDetails(
     88         val showQrCodes: Boolean,
     89     ) : WalletDestination
     90 
     91     @Serializable
     92     data class ReviewExchangeTOS(
     93         val exchangeBaseUrl: String,
     94         val readOnly: Boolean = false
     95     ) : WalletDestination
     96 
     97     @Serializable
     98     data object ExchangeShopping : WalletDestination
     99 
    100     @Serializable
    101     data object PerformanceStats : WalletDestination
    102 
    103     // Transaction Details
    104     @Serializable
    105     data object TransactionWithdrawal : WalletDestination
    106     @Serializable
    107     data object TransactionPayment : WalletDestination
    108     @Serializable
    109     data object TransactionRefund : WalletDestination
    110     @Serializable
    111     data object TransactionRefresh : WalletDestination
    112     @Serializable
    113     data object TransactionDeposit : WalletDestination
    114     @Serializable
    115     data object TransactionPeer : WalletDestination
    116     @Serializable
    117     data object TransactionLoss : WalletDestination
    118     @Serializable
    119     data object TransactionDummy : WalletDestination
    120 }