add toast message for relay icons

This commit is contained in:
greenart7c3
2023-06-19 07:58:25 -03:00
parent be8848fb1b
commit c35b5e3703
2 changed files with 142 additions and 20 deletions

View File

@@ -1,5 +1,8 @@
package com.vitorpamplona.amethyst.ui.actions package com.vitorpamplona.amethyst.ui.actions
import android.widget.Toast
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
@@ -35,10 +38,12 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
@@ -54,6 +59,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.theme.ButtonBorder import com.vitorpamplona.amethyst.ui.theme.ButtonBorder
import com.vitorpamplona.amethyst.ui.theme.Size35dp import com.vitorpamplona.amethyst.ui.theme.Size35dp
import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.placeholderText
import kotlinx.coroutines.launch
import java.lang.Math.round import java.lang.Math.round
@Composable @Composable
@@ -203,6 +209,7 @@ fun ServerConfigHeader() {
} }
} }
@OptIn(ExperimentalFoundationApi::class)
@Composable @Composable
fun ServerConfig( fun ServerConfig(
item: RelaySetupInfo, item: RelaySetupInfo,
@@ -217,6 +224,8 @@ fun ServerConfig(
onDelete: (RelaySetupInfo) -> Unit onDelete: (RelaySetupInfo) -> Unit
) { ) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
Column(Modifier.fillMaxWidth()) { Column(Modifier.fillMaxWidth()) {
Row( Row(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
@@ -252,15 +261,28 @@ fun ServerConfig(
Column(Modifier.weight(1f)) { Column(Modifier.weight(1f)) {
Row(verticalAlignment = Alignment.CenterVertically) { Row(verticalAlignment = Alignment.CenterVertically) {
IconButton( IconButton(
modifier = Modifier.size(30.dp), modifier = Modifier
onClick = { onToggleFollows(item) } .size(30.dp),
onClick = { }
) { ) {
Icon( Icon(
painterResource(R.drawable.ic_home), painterResource(R.drawable.ic_home),
stringResource(R.string.home_feed), stringResource(R.string.home_feed),
modifier = Modifier modifier = Modifier
.padding(end = 5.dp) .padding(end = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onToggleFollows(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.home_feed),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.feedTypes.contains(FeedType.FOLLOWS)) { tint = if (item.feedTypes.contains(FeedType.FOLLOWS)) {
Color.Green Color.Green
} else { } else {
@@ -272,14 +294,26 @@ fun ServerConfig(
} }
IconButton( IconButton(
modifier = Modifier.size(30.dp), modifier = Modifier.size(30.dp),
onClick = { onTogglePrivateDMs(item) } onClick = { }
) { ) {
Icon( Icon(
painterResource(R.drawable.ic_dm), painterResource(R.drawable.ic_dm),
stringResource(R.string.private_message_feed), stringResource(R.string.private_message_feed),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onTogglePrivateDMs(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.private_message_feed),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.feedTypes.contains(FeedType.PRIVATE_DMS)) { tint = if (item.feedTypes.contains(FeedType.PRIVATE_DMS)) {
Color.Green Color.Green
} else { } else {
@@ -291,14 +325,26 @@ fun ServerConfig(
} }
IconButton( IconButton(
modifier = Modifier.size(30.dp), modifier = Modifier.size(30.dp),
onClick = { onTogglePublicChats(item) } onClick = { }
) { ) {
Icon( Icon(
imageVector = Icons.Default.Groups, imageVector = Icons.Default.Groups,
stringResource(R.string.public_chat_feed), stringResource(R.string.public_chat_feed),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onTogglePublicChats(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.public_chat_feed),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.feedTypes.contains(FeedType.PUBLIC_CHATS)) { tint = if (item.feedTypes.contains(FeedType.PUBLIC_CHATS)) {
Color.Green Color.Green
} else { } else {
@@ -310,14 +356,26 @@ fun ServerConfig(
} }
IconButton( IconButton(
modifier = Modifier.size(30.dp), modifier = Modifier.size(30.dp),
onClick = { onToggleGlobal(item) } onClick = { }
) { ) {
Icon( Icon(
imageVector = Icons.Default.Public, imageVector = Icons.Default.Public,
stringResource(R.string.global_feed), stringResource(R.string.global_feed),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onToggleGlobal(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.global_feed),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.feedTypes.contains(FeedType.GLOBAL)) { tint = if (item.feedTypes.contains(FeedType.GLOBAL)) {
Color.Green Color.Green
} else { } else {
@@ -337,7 +395,19 @@ fun ServerConfig(
stringResource(R.string.search_feed), stringResource(R.string.search_feed),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onToggleSearch(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.search_feed),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.feedTypes.contains(FeedType.SEARCH)) { tint = if (item.feedTypes.contains(FeedType.SEARCH)) {
Color.Green Color.Green
} else { } else {
@@ -354,14 +424,26 @@ fun ServerConfig(
Row(verticalAlignment = Alignment.CenterVertically) { Row(verticalAlignment = Alignment.CenterVertically) {
IconButton( IconButton(
modifier = Modifier.size(30.dp), modifier = Modifier.size(30.dp),
onClick = { onToggleDownload(item) } onClick = { }
) { ) {
Icon( Icon(
imageVector = Icons.Default.Download, imageVector = Icons.Default.Download,
null, stringResource(R.string.read_from_relay),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onToggleDownload(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.read_from_relay),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.read) { tint = if (item.read) {
Color.Green Color.Green
} else { } else {
@@ -382,14 +464,26 @@ fun ServerConfig(
IconButton( IconButton(
modifier = Modifier.size(30.dp), modifier = Modifier.size(30.dp),
onClick = { onToggleUpload(item) } onClick = { }
) { ) {
Icon( Icon(
imageVector = Icons.Default.Upload, imageVector = Icons.Default.Upload,
null, stringResource(R.string.write_to_relay),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { onToggleUpload(item) },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.write_to_relay),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.write) { tint = if (item.write) {
Color.Green Color.Green
} else { } else {
@@ -410,10 +504,22 @@ fun ServerConfig(
Icon( Icon(
imageVector = Icons.Default.SyncProblem, imageVector = Icons.Default.SyncProblem,
null, stringResource(R.string.errors),
modifier = Modifier modifier = Modifier
.padding(horizontal = 5.dp) .padding(horizontal = 5.dp)
.size(15.dp), .size(15.dp)
.combinedClickable(
onClick = { },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.errors),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.errorCount > 0) Color.Yellow else Color.Green tint = if (item.errorCount > 0) Color.Yellow else Color.Green
) )
@@ -427,8 +533,22 @@ fun ServerConfig(
Icon( Icon(
imageVector = Icons.Default.DeleteSweep, imageVector = Icons.Default.DeleteSweep,
null, stringResource(R.string.spam),
modifier = Modifier.padding(horizontal = 5.dp).size(15.dp), modifier = Modifier
.padding(horizontal = 5.dp)
.size(15.dp)
.combinedClickable(
onClick = { },
onLongClick = {
scope.launch {
Toast.makeText(
context,
context.getString(R.string.spam),
Toast.LENGTH_SHORT
).show()
}
}
),
tint = if (item.spamCount > 0) Color.Yellow else Color.Green tint = if (item.spamCount > 0) Color.Yellow else Color.Green
) )

View File

@@ -423,4 +423,6 @@
<string name="zapraiser_target_amount_in_sats">Target Amount in Sats</string> <string name="zapraiser_target_amount_in_sats">Target Amount in Sats</string>
<string name="sats_to_complete">Zapraiser at %1$s. %2$s sats to goal</string> <string name="sats_to_complete">Zapraiser at %1$s. %2$s sats to goal</string>
<string name="read_from_relay">Read from Relay</string>
<string name="write_to_relay">Write to Relay</string>
</resources> </resources>