/* * This file is part of GNU Taler * (C) 2023 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 */ package net.taler.wallet.compose import android.content.Intent import android.content.Intent.ACTION_SEND import android.content.Intent.EXTRA_TEXT import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.material.Button import androidx.compose.material.ButtonColors import androidx.compose.material.ButtonDefaults import androidx.compose.material.Icon import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Share import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment.Companion.CenterVertically import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat.startActivity import net.taler.wallet.R @Composable fun ShareButton( content: String, modifier: Modifier = Modifier, buttonText: String = stringResource(R.string.share), colors: ButtonColors = ButtonDefaults.buttonColors(), ) { val context = LocalContext.current Button( modifier = modifier, colors = colors, onClick = { val sendIntent: Intent = Intent().apply { action = ACTION_SEND putExtra(EXTRA_TEXT, content) type = "text/plain" } val shareIntent = Intent.createChooser(sendIntent, null) startActivity(context, shareIntent, null) }, ) { Row(verticalAlignment = CenterVertically) { Icon(Icons.Default.Share, buttonText) Text( modifier = Modifier.padding(start = 8.dp), text = buttonText, style = MaterialTheme.typography.body1, ) } } }