PaymentOptionsRegistry.kt

/*
 * This file is part of GNU Taler
 * (C) 2026 Taler Systems S.A.
 *
 * 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/>
 */

package net.taler.merchantpos.paymentoptions

import android.app.Application
import android.content.Context

import com.sumup.reader.sdk.api.SumUpState

import net.taler.merchantpos.devices.TalerBluetoothDevice
import net.taler.merchantpos.devices.TalerUsbDevices
import net.taler.merchantpos.paymentoptions.sumup.SumUpOption

/**
 * The payment options this flavour offers.
 *
 * Adding one means implementing [PaymentOption] and listing it here; navigation,
 * settings and the terminal indicator adapt on their own.
 */
object PaymentOptionsRegistry
{
    /** Startup any bundled SDK requires before it is used. */
    fun initialize(app: Application)
    {
        SumUpState.init(app)
    }

    fun create(
        context: Context,
        talerUsb: TalerUsbDevices? = null,
        talerBluetooth: TalerBluetoothDevice? = null,
    ): List<PaymentOption> =
        listOf(
            TalerOption(context, talerUsb, talerBluetooth),
            CashOption,
            SumUpOption(context),
        )
}