mirror of
https://github.com/mollyim/monero-wallet-sdk.git
synced 2024-10-01 03:45:36 -04:00
demo: replace UI string resources by literal strings
This commit is contained in:
parent
ea15bf80c6
commit
7d39842402
@ -8,13 +8,11 @@ import androidx.compose.runtime.*
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import im.molly.monero.MoneroNetwork
|
import im.molly.monero.MoneroNetwork
|
||||||
import im.molly.monero.demo.R
|
|
||||||
import im.molly.monero.demo.data.model.DefaultMoneroNetwork
|
import im.molly.monero.demo.data.model.DefaultMoneroNetwork
|
||||||
import im.molly.monero.demo.data.model.RemoteNode
|
import im.molly.monero.demo.data.model.RemoteNode
|
||||||
import im.molly.monero.demo.ui.component.SelectListBox
|
import im.molly.monero.demo.ui.component.SelectListBox
|
||||||
@ -48,12 +46,12 @@ private fun FirstStepScreen(
|
|||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = {
|
topBar = {
|
||||||
Toolbar(
|
Toolbar(
|
||||||
title = stringResource(R.string.add_wallet),
|
title = "Add wallet",
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = onBackClick) {
|
IconButton(onClick = onBackClick) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = AppIcons.ArrowBack,
|
imageVector = AppIcons.ArrowBack,
|
||||||
contentDescription = stringResource(R.string.back),
|
contentDescription = "Back",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,13 +68,13 @@ private fun FirstStepScreen(
|
|||||||
Button(
|
Button(
|
||||||
onClick = onCreateClick,
|
onClick = onCreateClick,
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.create_a_new_wallet))
|
Text("Create a new wallet")
|
||||||
}
|
}
|
||||||
OutlinedButton(
|
OutlinedButton(
|
||||||
onClick = {}, // TODO: onRestoreClick,
|
onClick = {}, // TODO: onRestoreClick,
|
||||||
modifier = Modifier.padding(top = 8.dp),
|
modifier = Modifier.padding(top = 8.dp),
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.i_already_have_a_wallet))
|
Text("I already have a wallet")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,14 +123,13 @@ private fun SecondStepScreen(
|
|||||||
) {
|
) {
|
||||||
Scaffold(
|
Scaffold(
|
||||||
topBar = {
|
topBar = {
|
||||||
val titleRes = if (showRestoreOptions) R.string.restore_wallet else R.string.new_wallet
|
|
||||||
Toolbar(
|
Toolbar(
|
||||||
title = stringResource(titleRes),
|
title = if (showRestoreOptions) "Restore wallet" else "New wallet",
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = onBackClick) {
|
IconButton(onClick = onBackClick) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = AppIcons.ArrowBack,
|
imageVector = AppIcons.ArrowBack,
|
||||||
contentDescription = stringResource(R.string.back),
|
contentDescription = "Back",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,7 +143,7 @@ private fun SecondStepScreen(
|
|||||||
) {
|
) {
|
||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
value = walletName,
|
value = walletName,
|
||||||
label = { Text(stringResource(R.string.wallet_name)) },
|
label = { Text("Wallet name") },
|
||||||
onValueChange = onWalletNameChanged,
|
onValueChange = onWalletNameChanged,
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
@ -154,7 +151,7 @@ private fun SecondStepScreen(
|
|||||||
.padding(start = 16.dp, end = 16.dp),
|
.padding(start = 16.dp, end = 16.dp),
|
||||||
)
|
)
|
||||||
SelectListBox(
|
SelectListBox(
|
||||||
labelRes = R.string.network,
|
label = "Network",
|
||||||
options = MoneroNetwork.values().map { it.name },
|
options = MoneroNetwork.values().map { it.name },
|
||||||
selectedOption = network.name,
|
selectedOption = network.name,
|
||||||
onOptionClick = {
|
onOptionClick = {
|
||||||
@ -165,7 +162,7 @@ private fun SecondStepScreen(
|
|||||||
.padding(16.dp),
|
.padding(16.dp),
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(R.string.remote_node_selection),
|
text = "Remote node selection",
|
||||||
style = MaterialTheme.typography.titleMedium,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(16.dp),
|
.padding(16.dp),
|
||||||
@ -186,7 +183,7 @@ private fun SecondStepScreen(
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(16.dp),
|
.padding(16.dp),
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.finish))
|
Text("Finish")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,6 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import im.molly.monero.MoneroNetwork
|
import im.molly.monero.MoneroNetwork
|
||||||
import im.molly.monero.demo.R
|
|
||||||
import im.molly.monero.demo.data.model.RemoteNode
|
import im.molly.monero.demo.data.model.RemoteNode
|
||||||
import im.molly.monero.demo.ui.component.SelectListBox
|
import im.molly.monero.demo.ui.component.SelectListBox
|
||||||
import im.molly.monero.demo.ui.theme.AppTheme
|
import im.molly.monero.demo.ui.theme.AppTheme
|
||||||
@ -64,11 +63,11 @@ private fun EditRemoteNodeDialog(
|
|||||||
Modifier.verticalScroll(rememberScrollState()),
|
Modifier.verticalScroll(rememberScrollState()),
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(R.string.enter_your_monero_node_information_below),
|
text = "Enter your Monero node information below.",
|
||||||
modifier = Modifier.padding(vertical = 16.dp),
|
modifier = Modifier.padding(vertical = 16.dp),
|
||||||
)
|
)
|
||||||
SelectListBox(
|
SelectListBox(
|
||||||
labelRes = R.string.network,
|
label = "Network",
|
||||||
options = MoneroNetwork.values().map { it.name },
|
options = MoneroNetwork.values().map { it.name },
|
||||||
selectedOption = remoteNode.network.name,
|
selectedOption = remoteNode.network.name,
|
||||||
onOptionClick = {
|
onOptionClick = {
|
||||||
@ -81,15 +80,13 @@ private fun EditRemoteNodeDialog(
|
|||||||
onValueChange = { input ->
|
onValueChange = { input ->
|
||||||
onRemoteNodeChange(remoteNode.copy(uri = Uri.parse(input)))
|
onRemoteNodeChange(remoteNode.copy(uri = Uri.parse(input)))
|
||||||
},
|
},
|
||||||
label = {
|
label = { Text("URL") },
|
||||||
Text(stringResource(R.string.url))
|
|
||||||
},
|
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Uri),
|
||||||
isError = showError,
|
isError = showError,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(R.string.protocol_is_required_http_or_https),
|
text = "Protocol is required (http:// or https://)",
|
||||||
style = MaterialTheme.typography.bodySmall,
|
style = MaterialTheme.typography.bodySmall,
|
||||||
modifier = Modifier.padding(start = 16.dp, bottom = 16.dp),
|
modifier = Modifier.padding(start = 16.dp, bottom = 16.dp),
|
||||||
)
|
)
|
||||||
@ -99,9 +96,7 @@ private fun EditRemoteNodeDialog(
|
|||||||
onValueChange = { input ->
|
onValueChange = { input ->
|
||||||
onRemoteNodeChange(remoteNode.copy(username = input))
|
onRemoteNodeChange(remoteNode.copy(username = input))
|
||||||
},
|
},
|
||||||
label = {
|
label = { Text("Username") },
|
||||||
Text(stringResource(R.string.username))
|
|
||||||
},
|
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
)
|
)
|
||||||
OutlinedTextField(
|
OutlinedTextField(
|
||||||
@ -109,9 +104,7 @@ private fun EditRemoteNodeDialog(
|
|||||||
onValueChange = { input ->
|
onValueChange = { input ->
|
||||||
onRemoteNodeChange(remoteNode.copy(password = input))
|
onRemoteNodeChange(remoteNode.copy(password = input))
|
||||||
},
|
},
|
||||||
label = {
|
label = { Text("Password") },
|
||||||
Text(stringResource(R.string.password))
|
|
||||||
},
|
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
|
||||||
visualTransformation = PasswordVisualTransformation(),
|
visualTransformation = PasswordVisualTransformation(),
|
||||||
@ -123,7 +116,7 @@ private fun EditRemoteNodeDialog(
|
|||||||
onClick = onSaveRequest,
|
onClick = onSaveRequest,
|
||||||
enabled = !showError,
|
enabled = !showError,
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.save))
|
Text("Save")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dismissButton = {
|
dismissButton = {
|
||||||
|
@ -10,10 +10,8 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.res.stringResource
|
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import im.molly.monero.demo.R
|
|
||||||
import im.molly.monero.demo.ui.component.Toolbar
|
import im.molly.monero.demo.ui.component.Toolbar
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@ -43,13 +41,13 @@ private fun HomeScreen(
|
|||||||
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
|
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
|
||||||
topBar = {
|
topBar = {
|
||||||
Toolbar(
|
Toolbar(
|
||||||
title = stringResource(R.string.monero_wallets),
|
title = "Monero wallets",
|
||||||
scrollBehavior = scrollBehavior,
|
scrollBehavior = scrollBehavior,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
ExtendedFloatingActionButton(onClick = onAddWalletClick) {
|
ExtendedFloatingActionButton(onClick = onAddWalletClick) {
|
||||||
Text(stringResource(R.string.add_wallet))
|
Text("Add wallets")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
) { padding ->
|
) { padding ->
|
||||||
|
@ -5,9 +5,7 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.material3.*
|
import androidx.compose.material3.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import im.molly.monero.demo.R
|
|
||||||
import im.molly.monero.demo.data.model.RemoteNode
|
import im.molly.monero.demo.data.model.RemoteNode
|
||||||
import im.molly.monero.demo.ui.theme.AppIcons
|
import im.molly.monero.demo.ui.theme.AppIcons
|
||||||
|
|
||||||
@ -93,7 +91,7 @@ private fun WalletKebabMenu(
|
|||||||
IconButton(onClick = { expanded = true }) {
|
IconButton(onClick = { expanded = true }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = AppIcons.MoreVert,
|
imageVector = AppIcons.MoreVert,
|
||||||
contentDescription = stringResource(R.string.open_menu),
|
contentDescription = "Open menu",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
DropdownMenu(
|
DropdownMenu(
|
||||||
@ -101,14 +99,14 @@ private fun WalletKebabMenu(
|
|||||||
onDismissRequest = { expanded = false },
|
onDismissRequest = { expanded = false },
|
||||||
) {
|
) {
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(stringResource(R.string.edit)) },
|
text = { Text("Edit") },
|
||||||
onClick = {
|
onClick = {
|
||||||
onEditClick()
|
onEditClick()
|
||||||
expanded = false
|
expanded = false
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(stringResource(R.string.delete)) },
|
text = { Text("Delete") },
|
||||||
onClick = {
|
onClick = {
|
||||||
onDeleteClick()
|
onDeleteClick()
|
||||||
expanded = false
|
expanded = false
|
||||||
|
@ -5,7 +5,6 @@ import androidx.compose.material3.*
|
|||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
|
||||||
import androidx.compose.ui.text.SpanStyle
|
import androidx.compose.ui.text.SpanStyle
|
||||||
import androidx.compose.ui.text.buildAnnotatedString
|
import androidx.compose.ui.text.buildAnnotatedString
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
@ -15,7 +14,6 @@ import androidx.lifecycle.viewmodel.compose.viewModel
|
|||||||
import im.molly.monero.Balance
|
import im.molly.monero.Balance
|
||||||
import im.molly.monero.Ledger
|
import im.molly.monero.Ledger
|
||||||
import im.molly.monero.MoneroCurrency
|
import im.molly.monero.MoneroCurrency
|
||||||
import im.molly.monero.demo.R
|
|
||||||
import im.molly.monero.demo.data.model.WalletConfig
|
import im.molly.monero.demo.data.model.WalletConfig
|
||||||
import im.molly.monero.demo.ui.component.Toolbar
|
import im.molly.monero.demo.ui.component.Toolbar
|
||||||
import im.molly.monero.demo.ui.theme.AppIcons
|
import im.molly.monero.demo.ui.theme.AppIcons
|
||||||
@ -91,7 +89,7 @@ private fun WalletScreenPopulated(
|
|||||||
IconButton(onClick = onBackClick) {
|
IconButton(onClick = onBackClick) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = AppIcons.ArrowBack,
|
imageVector = AppIcons.ArrowBack,
|
||||||
contentDescription = stringResource(R.string.back),
|
contentDescription = "Back",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -157,7 +155,7 @@ private fun WalletKebabMenu(
|
|||||||
IconButton(onClick = { expanded = true }) {
|
IconButton(onClick = { expanded = true }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = AppIcons.MoreVert,
|
imageVector = AppIcons.MoreVert,
|
||||||
contentDescription = stringResource(R.string.open_menu),
|
contentDescription = "Open menu",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
DropdownMenu(
|
DropdownMenu(
|
||||||
@ -165,14 +163,14 @@ private fun WalletKebabMenu(
|
|||||||
onDismissRequest = { expanded = false },
|
onDismissRequest = { expanded = false },
|
||||||
) {
|
) {
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(stringResource(R.string.rename)) },
|
text = { Text("Rename") },
|
||||||
onClick = {
|
onClick = {
|
||||||
onRenameClick()
|
onRenameClick()
|
||||||
expanded = false
|
expanded = false
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(stringResource(R.string.delete)) },
|
text = { Text("Delete") },
|
||||||
onClick = {
|
onClick = {
|
||||||
onDeleteClick()
|
onDeleteClick()
|
||||||
expanded = false
|
expanded = false
|
||||||
|
@ -1,16 +1,14 @@
|
|||||||
package im.molly.monero.demo.ui.component
|
package im.molly.monero.demo.ui.component
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.material3.*
|
import androidx.compose.material3.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun SelectListBox(
|
fun SelectListBox(
|
||||||
@StringRes labelRes: Int,
|
label: String,
|
||||||
options: List<String>,
|
options: List<String>,
|
||||||
selectedOption: String,
|
selectedOption: String,
|
||||||
onOptionClick: (String) -> Unit,
|
onOptionClick: (String) -> Unit,
|
||||||
@ -32,7 +30,7 @@ fun SelectListBox(
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.menuAnchor(),
|
.menuAnchor(),
|
||||||
label = { Text(stringResource(labelRes)) },
|
label = { Text(label) },
|
||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
ExposedDropdownMenuDefaults.TrailingIcon(
|
ExposedDropdownMenuDefaults.TrailingIcon(
|
||||||
expanded = expanded
|
expanded = expanded
|
||||||
|
@ -2,30 +2,5 @@
|
|||||||
<string name="app_name">Monero SDK Demo</string>
|
<string name="app_name">Monero SDK Demo</string>
|
||||||
<string name="home">Home</string>
|
<string name="home">Home</string>
|
||||||
<string name="history">History</string>
|
<string name="history">History</string>
|
||||||
<string name="monero_wallets">Monero wallets</string>
|
|
||||||
<string name="create_a_new_wallet">Create a new wallet</string>
|
|
||||||
<string name="i_already_have_a_wallet">I already have a wallet</string>
|
|
||||||
<string name="back">Back</string>
|
|
||||||
<string name="finish">Finish</string>
|
|
||||||
<string name="new_wallet">New wallet</string>
|
|
||||||
<string name="restore_wallet">Restore wallet</string>
|
|
||||||
<string name="settings">Settings</string>
|
<string name="settings">Settings</string>
|
||||||
<string name="add_remote_node">Add remote node</string>
|
|
||||||
<string name="edit">Edit</string>
|
|
||||||
<string name="rename">Rename</string>
|
|
||||||
<string name="open_menu">Open menu</string>
|
|
||||||
<string name="delete">Delete</string>
|
|
||||||
<string name="save">Save</string>
|
|
||||||
<string name="description">Description</string>
|
|
||||||
<string name="url">URL</string>
|
|
||||||
<string name="password">Password</string>
|
|
||||||
<string name="username">Username</string>
|
|
||||||
<string name="monero_node">Monero node</string>
|
|
||||||
<string name="enter_your_monero_node_information_below">Enter your Monero node information below.</string>
|
|
||||||
<string name="protocol_is_required_http_or_https">Protocol is required (http:// or https://)</string>
|
|
||||||
<string name="network">Network</string>
|
|
||||||
<string name="remote_nodes">Remote nodes</string>
|
|
||||||
<string name="add_wallet">Add wallet</string>
|
|
||||||
<string name="wallet_name">Wallet name</string>
|
|
||||||
<string name="remote_node_selection">Remote node selection</string>
|
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user