Skip to content

Commit

Permalink
add localization to the permission dataclass
Browse files Browse the repository at this point in the history
  • Loading branch information
greenart7c3 committed May 20, 2024
1 parent ef8ca5e commit ab9521e
Show file tree
Hide file tree
Showing 8 changed files with 214 additions and 105 deletions.
193 changes: 98 additions & 95 deletions app/src/main/java/com/greenart7c3/nostrsigner/models/Permission.kt
Original file line number Diff line number Diff line change
@@ -1,120 +1,123 @@
package com.greenart7c3.nostrsigner.models

import android.content.Context
import com.greenart7c3.nostrsigner.R

data class Permission(
val type: String,
val kind: Int?,
var checked: Boolean = true,
) {
override fun toString(): String {
fun toLocalizedString(context: Context): String {
return when (type) {
"get_public_key" -> "Read your public key"
"get_public_key" -> context.getString(R.string.read_your_public_key)
"nip04_encrypt" -> {
"Encrypt data using nip 4"
context.getString(R.string.encrypt_data_using_nip_4)
}
"nip04_decrypt" -> {
"Decrypt data using nip 4"
context.getString(R.string.decrypt_data_using_nip_4)
}
"nip44_decrypt" -> {
"Decrypt data using nip 44"
context.getString(R.string.decrypt_data_using_nip_44)
}
"nip44_encrypt" -> {
"Encrypt data using nip 44"
context.getString(R.string.encrypt_data_using_nip_44)
}
"decrypt_zap_event" -> {
"Decrypt private zaps"
context.getString(R.string.decrypt_private_zaps)
}
"sign_event" -> {
when (kind) {
0 -> "Metadata"
1 -> "Short text note"
3 -> "Follows"
4 -> "Encrypted direct messages"
5 -> "Event deletion"
6 -> "Repost"
7 -> "Reaction"
8 -> "Badge award"
9 -> "Group chat message"
10 -> "Group chat threaded reply"
11 -> "Group thread"
12 -> "Group thread reply"
13 -> "Seal"
16 -> "Generic repost"
40 -> "Channel creation"
41 -> "Channel metadata"
42 -> "Channel message"
43 -> "Channel hide message"
44 -> "Channel mute user"
1021 -> "Bid"
1022 -> "Bid confirmation"
1040 -> "OpenTimestamps"
1059 -> "Gift wrap"
1063 -> "File metadata"
1311 -> "Live chat message"
1971 -> "Problem tracker"
1984 -> "Reporting"
1985 -> "Label"
4550 -> "Community post approval"
in 5000..5999 -> "Job request"
in 6000..6999 -> "Job result"
7000 -> "Job feedback"
in 9000..9030 -> "Group control events"
9041 -> "Zap goal"
9734 -> "Zap request"
9735 -> "Zap"
9802 -> "Highlights"
10000 -> "Mute list"
10001 -> "Pin list"
10002 -> "Relay list metadata"
10003 -> "Bookmark list"
10004 -> "Communities list"
10005 -> "Public chats list"
10006 -> "Blocked relays list"
10007 -> "Search relays list"
10009 -> "User groups"
10015 -> "Interests list"
10030 -> "User emoji list"
10096 -> "File storage server list"
13194 -> "Wallet Info"
21000 -> "Lightning Pub RPC"
22242 -> "Client authentication"
23194 -> "Wallet request"
23195 -> "Wallet response"
24133 -> "Nostr connect"
27235 -> "HTTP auth"
30000 -> "Follow sets"
30001 -> "Generic lists"
30002 -> "Relay sets"
30003 -> "Bookmark sets"
30004 -> "Curation sets"
30008 -> "Profile badges"
30009 -> "Badge definition"
30015 -> "Interest sets"
30017 -> "Create or update a stall"
30018 -> "Create or update a product"
30019 -> "Marketplace UI/UX"
30020 -> "Product sold as an auction"
30023 -> "Long-form content"
30024 -> "Draft Long-form content"
30030 -> "Emoji sets"
30063 -> "Release artifact sets"
30078 -> "Application-specific data"
30311 -> "Live event"
30315 -> "User statuses"
30402 -> "Classified listing"
30403 -> "Draft classified listing"
31234 -> "Generic draft event"
31922 -> "Date-Based calendar event"
31923 -> "Time-Based calendar event"
31924 -> "Calendar"
31925 -> "Calendar event RSVP"
31989 -> "Handler recommendation"
31990 -> "Handler information"
in 39000..39009 -> "Group metadata events"
34550 -> "Community definition"
else -> "Event kind $kind"
0 -> context.getString(R.string.event_kind_0)
1 -> context.getString(R.string.event_kind_1)
3 -> context.getString(R.string.event_kind_3)
4 -> context.getString(R.string.event_kind_4)
5 -> context.getString(R.string.event_kind_5)
6 -> context.getString(R.string.event_kind_6)
7 -> context.getString(R.string.event_kind_7)
8 -> context.getString(R.string.event_kind_8)
9 -> context.getString(R.string.event_kind_9)
10 -> context.getString(R.string.event_kind_10)
11 -> context.getString(R.string.event_kind_11)
12 -> context.getString(R.string.event_kind_12)
13 -> context.getString(R.string.event_kind_13)
16 -> context.getString(R.string.event_kind_16)
40 -> context.getString(R.string.event_kind_40)
41 -> context.getString(R.string.event_kind_41)
42 -> context.getString(R.string.event_kind_42)
43 -> context.getString(R.string.event_kind_43)
44 -> context.getString(R.string.event_kind_44)
1021 -> context.getString(R.string.event_kind_1021)
1022 -> context.getString(R.string.event_kind_1022)
1040 -> context.getString(R.string.event_kind_1040)
1059 -> context.getString(R.string.event_kind_1059)
1063 -> context.getString(R.string.event_kind_1063)
1311 -> context.getString(R.string.event_kind_1311)
1971 -> context.getString(R.string.event_kind_1971)
1984 -> context.getString(R.string.event_kind_1984)
1985 -> context.getString(R.string.event_kind_1985)
4550 -> context.getString(R.string.event_kind_4550)
in 5000..5999 -> context.getString(R.string.event_kind_5000_5999)
in 6000..6999 -> context.getString(R.string.event_kind_6000_6999)
7000 -> context.getString(R.string.event_kind_7000)
in 9000..9030 -> context.getString(R.string.event_kind_9000_9030)
9041 -> context.getString(R.string.event_kind_9041)
9734 -> context.getString(R.string.event_kind_9734)
9735 -> context.getString(R.string.event_kind_9735)
9802 -> context.getString(R.string.event_kind_9802)
10000 -> context.getString(R.string.event_kind_10000)
10001 -> context.getString(R.string.event_kind_10001)
10002 -> context.getString(R.string.event_kind_10002)
10003 -> context.getString(R.string.event_kind_10003)
10004 -> context.getString(R.string.event_kind_10004)
10005 -> context.getString(R.string.event_kind_10005)
10006 -> context.getString(R.string.event_kind_10006)
10007 -> context.getString(R.string.event_kind_10007)
10009 -> context.getString(R.string.event_kind_10009)
10015 -> context.getString(R.string.event_kind_10015)
10030 -> context.getString(R.string.event_kind_10030)
10096 -> context.getString(R.string.event_kind_10096)
13194 -> context.getString(R.string.event_kind_13194)
21000 -> context.getString(R.string.event_kind_21000)
22242 -> context.getString(R.string.event_kind_22242)
23194 -> context.getString(R.string.event_kind_23194)
23195 -> context.getString(R.string.event_kind_23195)
24133 -> context.getString(R.string.event_kind_24133)
27235 -> context.getString(R.string.event_kind_27235)
30000 -> context.getString(R.string.event_kind_30000)
30001 -> context.getString(R.string.event_kind_30001)
30002 -> context.getString(R.string.event_kind_30002)
30003 -> context.getString(R.string.event_kind_30003)
30004 -> context.getString(R.string.event_kind_30004)
30008 -> context.getString(R.string.event_kind_30008)
30009 -> context.getString(R.string.event_kind_30009)
30015 -> context.getString(R.string.event_kind_30015)
30017 -> context.getString(R.string.event_kind_30017)
30018 -> context.getString(R.string.event_kind_30018)
30019 -> context.getString(R.string.event_kind_30019)
30020 -> context.getString(R.string.event_kind_30020)
30023 -> context.getString(R.string.event_kind_30023)
30024 -> context.getString(R.string.event_kind_30024)
30030 -> context.getString(R.string.event_kind_30030)
30063 -> context.getString(R.string.event_kind_30063)
30078 -> context.getString(R.string.event_kind_30078)
30311 -> context.getString(R.string.event_kind_30311)
30315 -> context.getString(R.string.event_kind_30315)
30402 -> context.getString(R.string.event_kind_30402)
30403 -> context.getString(R.string.event_kind_30403)
31234 -> context.getString(R.string.event_kind_31234)
31922 -> context.getString(R.string.event_kind_31922)
31923 -> context.getString(R.string.event_kind_31923)
31924 -> context.getString(R.string.event_kind_31924)
31925 -> context.getString(R.string.event_kind_31925)
31989 -> context.getString(R.string.event_kind_31989)
31990 -> context.getString(R.string.event_kind_31990)
in 39000..39009 -> context.getString(R.string.event_kind_39000_39009)
34550 -> context.getString(R.string.event_kind_34550)
else -> context.getString(R.string.event_kind, kind.toString())
}
}
"connect" -> "would like your permission to read your public key and sign events on your behalf"
"connect" -> context.getString(R.string.would_like_your_permission_to_read_your_public_key_and_sign_events_on_your_behalf)
else -> type
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.font.FontWeight
Expand Down Expand Up @@ -166,6 +167,7 @@ fun EditPermission(
var showDialog by remember {
mutableStateOf(false)
}
val context = LocalContext.current

var showActivityDialog by remember {
mutableStateOf(false)
Expand Down Expand Up @@ -318,9 +320,9 @@ fun EditPermission(

val message =
if (permission.type == "SIGN_EVENT") {
"Sign $localPermission"
stringResource(R.string.sign, localPermission.toLocalizedString(context))
} else {
localPermission.toString()
localPermission.toLocalizedString(context)
}
Row(
modifier = Modifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import androidx.compose.runtime.toMutableStateList
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.intl.Locale
Expand Down Expand Up @@ -54,6 +55,7 @@ fun ActivityDialog(
remember {
mutableStateListOf<HistoryEntity>()
}
val context = LocalContext.current

LaunchedEffect(Unit) {
launch(Dispatchers.IO) {
Expand Down Expand Up @@ -123,7 +125,7 @@ fun ActivityDialog(
.padding(horizontal = 16.dp, vertical = 8.dp),
) {
Text(
if (permission.type == "connect") "Connect" else permission.toString(),
if (permission.type == "connect") stringResource(R.string.connect) else permission.toLocalizedString(context),
fontWeight = FontWeight.Bold,
fontSize = 18.sp,
maxLines = 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
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.compose.ui.window.Dialog
Expand All @@ -41,6 +42,7 @@ fun AdjustPermissionsDialog(
var selectAll by remember {
mutableStateOf(true)
}
val context = LocalContext.current
Dialog(
onDismissRequest = onClose,
properties = DialogProperties(usePlatformDefaultWidth = false),
Expand Down Expand Up @@ -121,7 +123,7 @@ fun AdjustPermissionsDialog(
) {
Text(
modifier = Modifier.weight(1f),
text = permission.toString(),
text = permission.toLocalizedString(context),
)
Switch(
checked = permission.checked,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
Expand Down Expand Up @@ -44,14 +45,15 @@ fun EventData(
var showMore by androidx.compose.runtime.remember {
mutableStateOf(false)
}
val context = LocalContext.current

Column(
Modifier
.fillMaxSize()
.padding(8.dp),
) {
val permission = Permission("sign_event", event.kind)
val text = "wants you to sign a $permission"
val text = stringResource(R.string.wants_you_to_sign_a, permission.toLocalizedString(context))
Text(
buildAnnotatedString {
withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
Expand All @@ -50,6 +51,7 @@ fun LoginWithPubKey(
var localPermissions by remember {
mutableStateOf(permissions)
}
val context = LocalContext.current

var showAdjustDialog by remember {
mutableStateOf(false)
Expand Down Expand Up @@ -102,10 +104,10 @@ fun LoginWithPubKey(
) {
Icon(
if (item.checked) Icons.Default.Done else Icons.Default.Close,
item.toString(),
item.toLocalizedString(context),
tint = if (item.checked) Color.Green else Color.Red,
)
Text(text = item.toString())
Text(text = item.toLocalizedString(context))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,7 @@ fun ListItem(
}

val appName = ApplicationNameCache.names[key] ?: key.toShortenHex()
val context = LocalContext.current

Card(
Modifier
Expand Down Expand Up @@ -420,15 +421,14 @@ fun ListItem(
contentDescription = "",
tint = Color.LightGray,
)

val text =
if (intentData.type == SignerType.SIGN_EVENT) {
val event = intentData.event!!
val permission = Permission("sign_event", event.kind)
"wants you to sign a $permission"
stringResource(R.string.wants_you_to_sign_a, permission.toLocalizedString(context))
} else {
val permission = Permission(intentData.type.toString().toLowerCase(Locale.current), null)
"wants you to $permission"
stringResource(R.string.wants_you_to, permission.toLocalizedString(context))
}
Text(
modifier = Modifier.weight(1f),
Expand Down
Loading

0 comments on commit ab9521e

Please sign in to comment.