0.5.6.1: Remove retry system in connection handling, reword "View outputs" to "View coins", reformat code

This commit is contained in:
pokkst 2023-12-09 21:12:06 -06:00
parent ae4e7cb65c
commit 5733197cb0
No known key found for this signature in database
GPG Key ID: EC4FAAA66859FAA4
49 changed files with 1136 additions and 994 deletions

View File

@ -10,8 +10,8 @@ android {
applicationId "net.mynero.wallet" applicationId "net.mynero.wallet"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 34 targetSdkVersion 34
versionCode 50600 versionCode 50601
versionName "0.5.6 'Fluorine Fermi'" versionName "0.5.6.1 'Fluorine Fermi'"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild { externalNativeBuild {
cmake { cmake {

View File

@ -349,7 +349,8 @@ Java_net_mynero_wallet_model_WalletManager_createWalletJ(JNIEnv *env, jobject in
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_net_mynero_wallet_model_WalletManager_createWalletPolyseedJ(JNIEnv *env, jobject instance, Java_net_mynero_wallet_model_WalletManager_createWalletPolyseedJ(JNIEnv *env, jobject instance,
jstring path, jstring password, jstring passpharse, jstring path, jstring password,
jstring passpharse,
jstring language, jstring language,
jint networkType) { jint networkType) {
std::string seed_words; std::string seed_words;
@ -728,7 +729,8 @@ Java_net_mynero_wallet_model_Wallet_getSeed(JNIEnv *env, jobject instance, jstri
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_net_mynero_wallet_model_Wallet_getLegacySeed(JNIEnv *env, jobject instance, jstring seedOffset) { Java_net_mynero_wallet_model_Wallet_getLegacySeed(JNIEnv *env, jobject instance,
jstring seedOffset) {
const char *_seedOffset = env->GetStringUTFChars(seedOffset, nullptr); const char *_seedOffset = env->GetStringUTFChars(seedOffset, nullptr);
Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance); Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance);
@ -743,7 +745,8 @@ Java_net_mynero_wallet_model_Wallet_getLegacySeed(JNIEnv *env, jobject instance,
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_net_mynero_wallet_model_Wallet_isPolyseedSupported(JNIEnv *env, jobject instance, jstring seedOffset) { Java_net_mynero_wallet_model_Wallet_isPolyseedSupported(JNIEnv *env, jobject instance,
jstring seedOffset) {
const char *_seedOffset = env->GetStringUTFChars(seedOffset, nullptr); const char *_seedOffset = env->GetStringUTFChars(seedOffset, nullptr);
Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance); Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance);
@ -921,7 +924,8 @@ Java_net_mynero_wallet_model_Wallet_getConnectionStatusJ(JNIEnv *env, jobject in
return wallet->connected(); return wallet->connected();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_net_mynero_wallet_model_Wallet_setTrustedDaemonJ(JNIEnv *env, jobject instance, jboolean trusted) { Java_net_mynero_wallet_model_Wallet_setTrustedDaemonJ(JNIEnv *env, jobject instance,
jboolean trusted) {
Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance); Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance);
if (trusted) { if (trusted) {
wallet->setTrustedDaemon(true); wallet->setTrustedDaemon(true);
@ -1132,7 +1136,8 @@ Java_net_mynero_wallet_model_Wallet_createTransactionJ(JNIEnv *env, jobject inst
Monero::PendingTransaction *tx = wallet->createTransaction(_dst_addr, _payment_id, Monero::PendingTransaction *tx = wallet->createTransaction(_dst_addr, _payment_id,
amount, (uint32_t) mixin_count, amount, (uint32_t) mixin_count,
_priority, _priority,
(uint32_t) accountIndex, {}, _key_images); (uint32_t) accountIndex, {},
_key_images);
env->ReleaseStringUTFChars(dst_addr, _dst_addr); env->ReleaseStringUTFChars(dst_addr, _dst_addr);
env->ReleaseStringUTFChars(payment_id, _payment_id); env->ReleaseStringUTFChars(payment_id, _payment_id);
@ -1141,10 +1146,12 @@ Java_net_mynero_wallet_model_Wallet_createTransactionJ(JNIEnv *env, jobject inst
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_net_mynero_wallet_model_Wallet_createTransactionMultDestJ(JNIEnv *env, jobject instance, Java_net_mynero_wallet_model_Wallet_createTransactionMultDestJ(JNIEnv *env, jobject instance,
jobject dst_addrs, jstring payment_id, jobject dst_addrs,
jstring payment_id,
jlongArray amounts, jint mixin_count, jlongArray amounts, jint mixin_count,
jint priority, jint priority,
jint accountIndex, jobject key_images) { jint accountIndex,
jobject key_images) {
const std::set<std::string> _key_images = java2cpp_set(env, key_images); const std::set<std::string> _key_images = java2cpp_set(env, key_images);
const std::vector<std::string> _dst_addrs = java2cpp(env, dst_addrs); const std::vector<std::string> _dst_addrs = java2cpp(env, dst_addrs);
const std::vector<std::uint64_t> _dst_amounts = java2cpp_long(env, amounts); const std::vector<std::uint64_t> _dst_amounts = java2cpp_long(env, amounts);
@ -1154,9 +1161,11 @@ Java_net_mynero_wallet_model_Wallet_createTransactionMultDestJ(JNIEnv *env, jobj
Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance); Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance);
Monero::PendingTransaction *tx = wallet->createTransactionMultDest(_dst_addrs, _payment_id, Monero::PendingTransaction *tx = wallet->createTransactionMultDest(_dst_addrs, _payment_id,
_dst_amounts, (uint32_t) mixin_count, _dst_amounts,
(uint32_t) mixin_count,
_priority, _priority,
(uint32_t) accountIndex, {}, _key_images); (uint32_t) accountIndex, {},
_key_images);
env->ReleaseStringUTFChars(payment_id, _payment_id); env->ReleaseStringUTFChars(payment_id, _payment_id);
return reinterpret_cast<jlong>(tx); return reinterpret_cast<jlong>(tx);
@ -1165,7 +1174,8 @@ Java_net_mynero_wallet_model_Wallet_createTransactionMultDestJ(JNIEnv *env, jobj
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_net_mynero_wallet_model_Wallet_estimateTransactionFee(JNIEnv *env, jobject instance, Java_net_mynero_wallet_model_Wallet_estimateTransactionFee(JNIEnv *env, jobject instance,
jobject destinations, jint priority) { jobject destinations, jint priority) {
std::vector<std::pair<std::string, uint64_t>> dest_vector = java2cpp_pairvector(env, destinations); std::vector<std::pair<std::string, uint64_t>> dest_vector = java2cpp_pairvector(env,
destinations);
Monero::PendingTransaction::Priority _priority = static_cast<Monero::PendingTransaction::Priority>(priority); Monero::PendingTransaction::Priority _priority = static_cast<Monero::PendingTransaction::Priority>(priority);
Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance); Monero::Wallet *wallet = getHandle<Monero::Wallet>(env, instance);
uint64_t fee = wallet->estimateTransactionFee(dest_vector, _priority); uint64_t fee = wallet->estimateTransactionFee(dest_vector, _priority);
@ -1190,7 +1200,8 @@ Java_net_mynero_wallet_model_Wallet_createSweepTransaction(JNIEnv *env, jobject
Monero::PendingTransaction *tx = wallet->createTransaction(_dst_addr, _payment_id, Monero::PendingTransaction *tx = wallet->createTransaction(_dst_addr, _payment_id,
empty, (uint32_t) mixin_count, empty, (uint32_t) mixin_count,
_priority, _priority,
(uint32_t) accountIndex, {}, _key_images); (uint32_t) accountIndex, {},
_key_images);
env->ReleaseStringUTFChars(dst_addr, _dst_addr); env->ReleaseStringUTFChars(dst_addr, _dst_addr);
env->ReleaseStringUTFChars(payment_id, _payment_id); env->ReleaseStringUTFChars(payment_id, _payment_id);
@ -1281,7 +1292,8 @@ Java_net_mynero_wallet_model_Coins_refreshJ(JNIEnv *env, jobject instance) {
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_net_mynero_wallet_model_Coins_setFrozen(JNIEnv *env, jobject instance, jstring publicKey, jboolean frozen) { Java_net_mynero_wallet_model_Coins_setFrozen(JNIEnv *env, jobject instance, jstring publicKey,
jboolean frozen) {
Monero::Coins *coins = getHandle<Monero::Coins>(env, instance); Monero::Coins *coins = getHandle<Monero::Coins>(env, instance);
const char *_publicKey = env->GetStringUTFChars(publicKey, nullptr); const char *_publicKey = env->GetStringUTFChars(publicKey, nullptr);
if (frozen) { if (frozen) {

View File

@ -4,11 +4,7 @@ import android.os.Bundle
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Observer
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog
import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog.PasswordListener import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog.PasswordListener
import net.mynero.wallet.fragment.dialog.SendBottomSheetDialog import net.mynero.wallet.fragment.dialog.SendBottomSheetDialog
@ -26,7 +22,6 @@ import net.mynero.wallet.service.TxService
import net.mynero.wallet.service.UTXOService import net.mynero.wallet.service.UTXOService
import net.mynero.wallet.util.Constants import net.mynero.wallet.util.Constants
import net.mynero.wallet.util.UriData import net.mynero.wallet.util.UriData
import timber.log.Timber
import java.io.File import java.io.File
class MainActivity : AppCompatActivity(), MoneroHandlerThread.Listener, PasswordListener { class MainActivity : AppCompatActivity(), MoneroHandlerThread.Listener, PasswordListener {

View File

@ -1,18 +1,13 @@
package net.mynero.wallet.fragment.dialog package net.mynero.wallet.fragment.dialog
import android.app.Activity
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.mynero.wallet.R import net.mynero.wallet.R
import net.mynero.wallet.adapter.NodeSelectionAdapter import net.mynero.wallet.adapter.NodeSelectionAdapter
import net.mynero.wallet.adapter.NodeSelectionAdapter.NodeSelectionAdapterListener import net.mynero.wallet.adapter.NodeSelectionAdapter.NodeSelectionAdapterListener
@ -20,7 +15,6 @@ import net.mynero.wallet.data.DefaultNodes
import net.mynero.wallet.data.Node import net.mynero.wallet.data.Node
import net.mynero.wallet.data.Node.Companion.fromJson import net.mynero.wallet.data.Node.Companion.fromJson
import net.mynero.wallet.data.Node.Companion.fromString import net.mynero.wallet.data.Node.Companion.fromString
import net.mynero.wallet.model.WalletManager
import net.mynero.wallet.service.DaemonService import net.mynero.wallet.service.DaemonService
import net.mynero.wallet.service.PrefService import net.mynero.wallet.service.PrefService
import net.mynero.wallet.util.Constants import net.mynero.wallet.util.Constants

View File

@ -9,9 +9,7 @@ import android.widget.Button
import android.widget.ImageView import android.widget.ImageView
import android.widget.ProgressBar import android.widget.ProgressBar
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavDirections import androidx.navigation.NavDirections
@ -24,9 +22,7 @@ import net.mynero.wallet.MainActivity
import net.mynero.wallet.R import net.mynero.wallet.R
import net.mynero.wallet.adapter.TransactionInfoAdapter import net.mynero.wallet.adapter.TransactionInfoAdapter
import net.mynero.wallet.adapter.TransactionInfoAdapter.TxInfoAdapterListener import net.mynero.wallet.adapter.TransactionInfoAdapter.TxInfoAdapterListener
import net.mynero.wallet.model.EnumTorState
import net.mynero.wallet.model.TransactionInfo import net.mynero.wallet.model.TransactionInfo
import net.mynero.wallet.model.Wallet
import net.mynero.wallet.model.WalletManager import net.mynero.wallet.model.WalletManager
import net.mynero.wallet.service.BalanceService import net.mynero.wallet.service.BalanceService
import net.mynero.wallet.service.BlockchainService import net.mynero.wallet.service.BlockchainService
@ -34,10 +30,7 @@ import net.mynero.wallet.service.DaemonService
import net.mynero.wallet.service.HistoryService import net.mynero.wallet.service.HistoryService
import net.mynero.wallet.service.PrefService import net.mynero.wallet.service.PrefService
import net.mynero.wallet.service.ProxyService import net.mynero.wallet.service.ProxyService
import net.mynero.wallet.service.SamouraiTorManager
import net.mynero.wallet.service.TorKmpManager
import net.mynero.wallet.util.Constants import net.mynero.wallet.util.Constants
import timber.log.Timber
class HomeFragment : Fragment(), TxInfoAdapterListener { class HomeFragment : Fragment(), TxInfoAdapterListener {
private var startHeight: Long = 0 private var startHeight: Long = 0
@ -82,7 +75,8 @@ class HomeFragment : Fragment(), TxInfoAdapterListener {
ProxyService.instance?.proxyChangeEvents?.observe(viewLifecycleOwner) { proxy -> ProxyService.instance?.proxyChangeEvents?.observe(viewLifecycleOwner) { proxy ->
lifecycleScope.launch(Dispatchers.IO) { lifecycleScope.launch(Dispatchers.IO) {
Log.d("HomeFragment", "Updating proxy, restarting wallet. proxy=$proxy") Log.d("HomeFragment", "Updating proxy, restarting wallet. proxy=$proxy")
val finalProxy = if(proxy.isNotEmpty() && ProxyService.instance?.usingProxy == true) proxy else "" val finalProxy =
if (proxy.isNotEmpty() && ProxyService.instance?.usingProxy == true) proxy else ""
WalletManager.instance?.setProxy(finalProxy) WalletManager.instance?.setProxy(finalProxy)
WalletManager.instance?.wallet?.setProxy(finalProxy) WalletManager.instance?.wallet?.setProxy(finalProxy)
WalletManager.instance?.wallet?.init(0) WalletManager.instance?.wallet?.init(0)

View File

@ -163,7 +163,8 @@ class OnboardingFragment : Fragment(), NodeSelectionDialogListener, AddNodeListe
} }
val samouraiTorManager = ProxyService.instance?.samouraiTorManager val samouraiTorManager = ProxyService.instance?.samouraiTorManager
val indicatorCircle = view?.findViewById<CircularProgressIndicator>(R.id.onboarding_tor_loading_progressindicator) val indicatorCircle =
view?.findViewById<CircularProgressIndicator>(R.id.onboarding_tor_loading_progressindicator)
val torIcon = view?.findViewById<ImageView>(R.id.onboarding_tor_icon) val torIcon = view?.findViewById<ImageView>(R.id.onboarding_tor_icon)
samouraiTorManager?.getTorStateLiveData()?.observe(viewLifecycleOwner) { state -> samouraiTorManager?.getTorStateLiveData()?.observe(viewLifecycleOwner) { state ->
@ -187,10 +188,12 @@ class OnboardingFragment : Fragment(), NodeSelectionDialogListener, AddNodeListe
torIcon?.visibility = View.INVISIBLE torIcon?.visibility = View.INVISIBLE
indicatorCircle?.visibility = View.INVISIBLE indicatorCircle?.visibility = View.INVISIBLE
} }
EnumTorState.STARTING, EnumTorState.STOPPING -> { EnumTorState.STARTING, EnumTorState.STOPPING -> {
torIcon?.visibility = View.INVISIBLE torIcon?.visibility = View.INVISIBLE
indicatorCircle?.visibility = View.VISIBLE indicatorCircle?.visibility = View.VISIBLE
} }
else -> {} else -> {}
} }
} }

View File

@ -241,7 +241,8 @@ class OnboardingViewModel : ViewModel() {
fun setUseBundledTor(useBundled: Boolean) { fun setUseBundledTor(useBundled: Boolean) {
_useBundledTor.value = useBundled _useBundledTor.value = useBundled
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USE_BUNDLED_TOR, useBundled)?.apply() PrefService.instance?.edit()?.putBoolean(Constants.PREF_USE_BUNDLED_TOR, useBundled)
?.apply()
val samouraiTorManager = ProxyService.instance?.samouraiTorManager val samouraiTorManager = ProxyService.instance?.samouraiTorManager
if (useBundled && ProxyService.instance?.usingProxy == true) { if (useBundled && ProxyService.instance?.usingProxy == true) {

View File

@ -148,7 +148,10 @@ class SendFragment : Fragment() {
} }
sendTxSlider?.let { slideToActView -> sendTxSlider?.let { slideToActView ->
ViewCompat.addAccessibilityAction(slideToActView, getString(R.string.approve_the_transaction)) { _, _ -> ViewCompat.addAccessibilityAction(
slideToActView,
getString(R.string.approve_the_transaction)
) { _, _ ->
confirmSlider() confirmSlider()
return@addAccessibilityAction true return@addAccessibilityAction true
} }

View File

@ -1,7 +1,6 @@
package net.mynero.wallet.fragment.settings package net.mynero.wallet.fragment.settings
import android.os.Bundle import android.os.Bundle
import android.util.Patterns
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -10,12 +9,10 @@ import android.widget.CheckBox
import android.widget.CompoundButton import android.widget.CompoundButton
import android.widget.EditText import android.widget.EditText
import android.widget.ImageView import android.widget.ImageView
import android.widget.Switch
import android.widget.Toast import android.widget.Toast
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.appcompat.widget.SwitchCompat import androidx.appcompat.widget.SwitchCompat
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
@ -84,13 +81,18 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
val cachedUsingBundledTor = ProxyService.instance?.useBundledTor == true val cachedUsingBundledTor = ProxyService.instance?.useBundledTor == true
val useProxyVisibility = if (cachedUsingProxy) View.VISIBLE else View.GONE val useProxyVisibility = if (cachedUsingProxy) View.VISIBLE else View.GONE
walletProxyPortEditText?.visibility = if (cachedUsingBundledTor) View.GONE else useProxyVisibility walletProxyPortEditText?.visibility =
walletProxyAddressEditText?.visibility = if (cachedUsingBundledTor) View.GONE else useProxyVisibility if (cachedUsingBundledTor) View.GONE else useProxyVisibility
walletProxyAddressEditText?.visibility =
if (cachedUsingBundledTor) View.GONE else useProxyVisibility
proxySettingsLayout?.visibility = useProxyVisibility proxySettingsLayout?.visibility = useProxyVisibility
streetModeSwitch?.isChecked = PrefService.instance?.getBoolean(Constants.PREF_STREET_MODE, false) == true streetModeSwitch?.isChecked =
monerochanSwitch?.isChecked = PrefService.instance?.getBoolean(Constants.PREF_MONEROCHAN, true) == true PrefService.instance?.getBoolean(Constants.PREF_STREET_MODE, false) == true
donationSwitch?.isChecked = PrefService.instance?.getBoolean(Constants.PREF_DONATE_PER_TX, false) == true monerochanSwitch?.isChecked =
PrefService.instance?.getBoolean(Constants.PREF_MONEROCHAN, true) == true
donationSwitch?.isChecked =
PrefService.instance?.getBoolean(Constants.PREF_DONATE_PER_TX, false) == true
useBundledTor?.isChecked = cachedUsingBundledTor useBundledTor?.isChecked = cachedUsingBundledTor
torSwitch?.isChecked = cachedUsingProxy torSwitch?.isChecked = cachedUsingProxy
updateProxy(cachedProxyAddress, cachedProxyPort) updateProxy(cachedProxyAddress, cachedProxyPort)
@ -179,7 +181,8 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
} }
val samouraiTorManager = ProxyService.instance?.samouraiTorManager val samouraiTorManager = ProxyService.instance?.samouraiTorManager
val indicatorCircle = view?.findViewById<CircularProgressIndicator>(R.id.settings_tor_loading_progressindicator) val indicatorCircle =
view?.findViewById<CircularProgressIndicator>(R.id.settings_tor_loading_progressindicator)
val torIcon = view?.findViewById<ImageView>(R.id.settings_tor_icon) val torIcon = view?.findViewById<ImageView>(R.id.settings_tor_icon)
samouraiTorManager?.getTorStateLiveData()?.observe(viewLifecycleOwner) { state -> samouraiTorManager?.getTorStateLiveData()?.observe(viewLifecycleOwner) { state ->
@ -203,10 +206,12 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
torIcon?.visibility = View.INVISIBLE torIcon?.visibility = View.INVISIBLE
indicatorCircle?.visibility = View.INVISIBLE indicatorCircle?.visibility = View.INVISIBLE
} }
EnumTorState.STARTING, EnumTorState.STOPPING -> { EnumTorState.STARTING, EnumTorState.STOPPING -> {
torIcon?.visibility = View.INVISIBLE torIcon?.visibility = View.INVISIBLE
indicatorCircle?.visibility = View.VISIBLE indicatorCircle?.visibility = View.VISIBLE
} }
else -> {} else -> {}
} }
} }

View File

@ -1,11 +1,8 @@
package net.mynero.wallet.fragment.settings package net.mynero.wallet.fragment.settings
import android.util.Patterns
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import net.mynero.wallet.MoneroApplication
import net.mynero.wallet.model.WalletManager
import net.mynero.wallet.service.PrefService import net.mynero.wallet.service.PrefService
import net.mynero.wallet.service.ProxyService import net.mynero.wallet.service.ProxyService
import net.mynero.wallet.util.Constants import net.mynero.wallet.util.Constants

View File

@ -2,13 +2,5 @@ package net.mynero.wallet.model
class TorState { class TorState {
var state: EnumTorState = EnumTorState.OFF var state: EnumTorState = EnumTorState.OFF
get() = field
set(value) {
field = value
}
var progressIndicator: Int = 0 var progressIndicator: Int = 0
get() = field
set(value) {
field = value
}
} }

View File

@ -18,7 +18,6 @@ package net.mynero.wallet.model
import android.util.Log import android.util.Log
import android.util.Pair import android.util.Pair
import net.mynero.wallet.data.Subaddress import net.mynero.wallet.data.Subaddress
import timber.log.Timber
import java.io.File import java.io.File
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
@ -212,16 +211,19 @@ class Wallet {
fun setTrustedDaemon(trusted: Boolean) { fun setTrustedDaemon(trusted: Boolean) {
setTrustedDaemonJ(trusted) setTrustedDaemonJ(trusted)
} }
private external fun setTrustedDaemonJ(trusted: Boolean) private external fun setTrustedDaemonJ(trusted: Boolean)
fun isTrustedDaemon(): Boolean { fun isTrustedDaemon(): Boolean {
return isTrustedDaemonJ(); return isTrustedDaemonJ()
} }
private external fun isTrustedDaemonJ(): Boolean private external fun isTrustedDaemonJ(): Boolean
fun setProxy(address: String?): Boolean { fun setProxy(address: String?): Boolean {
return setProxyJ(address) return setProxyJ(address)
} }
private external fun setProxyJ(address: String?): Boolean private external fun setProxyJ(address: String?): Boolean
val balance: Long val balance: Long
get() = getBalance(accountIndex) get() = getBalance(accountIndex)
@ -238,11 +240,13 @@ class Wallet {
fun getBlockChainHeight(): Long { fun getBlockChainHeight(): Long {
return getBlockChainHeightJ().minus(1) return getBlockChainHeightJ().minus(1)
} }
private external fun getBlockChainHeightJ(): Long private external fun getBlockChainHeightJ(): Long
external fun getApproximateBlockChainHeight(): Long external fun getApproximateBlockChainHeight(): Long
fun getDaemonBlockChainHeight(): Long { fun getDaemonBlockChainHeight(): Long {
return getDaemonBlockChainHeightJ().minus(1) return getDaemonBlockChainHeightJ().minus(1)
} }
private external fun getDaemonBlockChainHeightJ(): Long private external fun getDaemonBlockChainHeightJ(): Long
external fun getDaemonBlockChainTargetHeight(): Long external fun getDaemonBlockChainTargetHeight(): Long
@ -253,6 +257,7 @@ class Wallet {
fun startRefresh() { fun startRefresh() {
startRefreshJ() startRefreshJ()
} }
private external fun startRefreshJ() private external fun startRefreshJ()
external fun pauseRefresh() external fun pauseRefresh()
external fun refresh(): Boolean external fun refresh(): Boolean

View File

@ -1,12 +1,7 @@
package net.mynero.wallet.service package net.mynero.wallet.service
import android.util.Patterns
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import net.mynero.wallet.data.Node import net.mynero.wallet.data.Node
import net.mynero.wallet.livedata.SingleLiveEvent import net.mynero.wallet.livedata.SingleLiveEvent
import net.mynero.wallet.model.WalletManager
import net.mynero.wallet.util.Constants
class DaemonService(thread: MoneroHandlerThread) : ServiceBase(thread) { class DaemonService(thread: MoneroHandlerThread) : ServiceBase(thread) {
val daemonChangeEvents: SingleLiveEvent<Node> = SingleLiveEvent() val daemonChangeEvents: SingleLiveEvent<Node> = SingleLiveEvent()

View File

@ -16,7 +16,6 @@
*/ */
package net.mynero.wallet.service package net.mynero.wallet.service
import android.util.Log
import net.mynero.wallet.model.PendingTransaction import net.mynero.wallet.model.PendingTransaction
import net.mynero.wallet.model.TransactionOutput import net.mynero.wallet.model.TransactionOutput
import net.mynero.wallet.model.Wallet import net.mynero.wallet.model.Wallet
@ -37,7 +36,6 @@ import java.security.SecureRandom
class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet) : class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet) :
Thread(null, null, name, THREAD_STACK_SIZE), WalletListener { Thread(null, null, name, THREAD_STACK_SIZE), WalletListener {
private val wallet: Wallet private val wallet: Wallet
private var triesLeft = 5
init { init {
this.wallet = wallet this.wallet = wallet
@ -75,7 +73,8 @@ class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet)
override fun unconfirmedMoneyReceived(txId: String?, amount: Long) {} override fun unconfirmedMoneyReceived(txId: String?, amount: Long) {}
override fun newBlock(height: Long) { override fun newBlock(height: Long) {
refresh(false) refresh(false)
BlockchainService.instance?.daemonHeight = if (wallet.isSynchronized) height else 0 // when 0 it fetches from C++ BlockchainService.instance?.daemonHeight =
if (wallet.isSynchronized) height else 0 // when 0 it fetches from C++
} }
override fun updated() { override fun updated() {
@ -89,11 +88,11 @@ class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet)
BlockchainService.instance?.daemonHeight = daemonHeight BlockchainService.instance?.daemonHeight = daemonHeight
status?.let { BlockchainService.instance?.setConnectionStatus(it) } status?.let { BlockchainService.instance?.setConnectionStatus(it) }
if (status === ConnectionStatus.ConnectionStatus_Disconnected || status == null) { if (status === ConnectionStatus.ConnectionStatus_Disconnected || status == null) {
tryRestartOrFail() tryRestartConnection()
} else { } else {
val heightDiff = daemonHeight - chainHeight val heightDiff = daemonHeight - chainHeight
if (heightDiff >= 2) { if (heightDiff >= 2) {
tryRestartOrFail() tryRestartConnection()
} else { } else {
Timber.d("refreshed() Synchronized") Timber.d("refreshed() Synchronized")
wallet.setSynchronized() wallet.setSynchronized()
@ -104,16 +103,10 @@ class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet)
} }
} }
private fun tryRestartOrFail() { private fun tryRestartConnection() {
Timber.d("refreshed() Disconnected") Timber.d("refreshed() Starting connection retry")
if (triesLeft > 0) { wallet.init(0)
Timber.d("refreshed() Starting refresh")
wallet.startRefresh() wallet.startRefresh()
triesLeft--
} else {
Timber.d("refreshed() On connection fail")
listener?.onConnectionFail()
}
} }
private fun refresh(walletSynced: Boolean) { private fun refresh(walletSynced: Boolean) {

View File

@ -5,7 +5,10 @@ import androidx.lifecycle.MutableLiveData
import net.mynero.wallet.model.TorState import net.mynero.wallet.model.TorState
import java.net.Proxy import java.net.Proxy
class SamouraiTorManager(private val appContext: Application?, private val torKmpManager: TorKmpManager) { class SamouraiTorManager(
private val appContext: Application?,
private val torKmpManager: TorKmpManager
) {
fun getTorStateLiveData(): MutableLiveData<TorState> { fun getTorStateLiveData(): MutableLiveData<TorState> {
return torKmpManager.torStateLiveData return torKmpManager.torStateLiveData
} }

View File

@ -5,7 +5,6 @@ import android.util.Log
import android.widget.Toast import android.widget.Toast
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import net.mynero.wallet.model.TorState
import io.matthewnelson.kmp.tor.KmpTorLoaderAndroid import io.matthewnelson.kmp.tor.KmpTorLoaderAndroid
import io.matthewnelson.kmp.tor.TorConfigProviderAndroid import io.matthewnelson.kmp.tor.TorConfigProviderAndroid
import io.matthewnelson.kmp.tor.common.address.* import io.matthewnelson.kmp.tor.common.address.*
@ -26,7 +25,7 @@ import io.matthewnelson.kmp.tor.manager.common.state.isStarting
import io.matthewnelson.kmp.tor.manager.common.state.isStopping import io.matthewnelson.kmp.tor.manager.common.state.isStopping
import kotlinx.coroutines.* import kotlinx.coroutines.*
import net.mynero.wallet.model.EnumTorState import net.mynero.wallet.model.EnumTorState
import java.lang.Exception import net.mynero.wallet.model.TorState
import java.net.InetSocketAddress import java.net.InetSocketAddress
import java.net.Proxy import java.net.Proxy
@ -61,11 +60,15 @@ class TorKmpManager(application : Application) {
put(socks.set(AorDorPort.Value(PortProxy(9263)))) put(socks.set(AorDorPort.Value(PortProxy(9263))))
// Set Flags // Set Flags
socks.setFlags(setOf( socks.setFlags(
setOf(
Ports.Socks.Flag.OnionTrafficOnly Ports.Socks.Flag.OnionTrafficOnly
)).setIsolationFlags(setOf( )
).setIsolationFlags(
setOf(
Ports.IsolationFlag.IsolateClientAddr, Ports.IsolationFlag.IsolateClientAddr,
)).set(AorDorPort.Value(PortProxy(9264))) )
).set(AorDorPort.Value(PortProxy(9264)))
put(socks) put(socks)
// reset our socks object to defaults // reset our socks object to defaults
@ -142,23 +145,36 @@ class TorKmpManager(application : Application) {
addSegment("test_service") addSegment("test_service")
} }
// Add Hidden services // Add Hidden services
put(HiddenService() put(
.setPorts(ports = setOf( HiddenService()
.setPorts(
ports = setOf(
// Use a unix domain socket to communicate via IPC instead of over TCP // Use a unix domain socket to communicate via IPC instead of over TCP
HiddenService.UnixSocket(virtualPort = Port(80), targetUnixSocket = hsPath.builder { HiddenService.UnixSocket(
virtualPort = Port(80),
targetUnixSocket = hsPath.builder {
addSegment(HiddenService.UnixSocket.DEFAULT_UNIX_SOCKET_NAME) addSegment(HiddenService.UnixSocket.DEFAULT_UNIX_SOCKET_NAME)
}), }),
)) )
)
.setMaxStreams(maxStreams = HiddenService.MaxStreams(value = 2)) .setMaxStreams(maxStreams = HiddenService.MaxStreams(value = 2))
.setMaxStreamsCloseCircuit(value = TorF.True) .setMaxStreamsCloseCircuit(value = TorF.True)
.set(FileSystemDir(path = hsPath)) .set(FileSystemDir(path = hsPath))
) )
put(HiddenService() put(HiddenService()
.setPorts(ports = setOf( .setPorts(
HiddenService.Ports(virtualPort = Port(80), targetPort = Port(1030)), // http ports = setOf(
HiddenService.Ports(virtualPort = Port(443), targetPort = Port(1030)) // https HiddenService.Ports(
)) virtualPort = Port(80),
targetPort = Port(1030)
), // http
HiddenService.Ports(
virtualPort = Port(443),
targetPort = Port(1030)
) // https
)
)
.set(FileSystemDir(path = .set(FileSystemDir(path =
workDir.builder { workDir.builder {
addSegment(HiddenService.DEFAULT_PARENT_DIR_NAME) addSegment(HiddenService.DEFAULT_PARENT_DIR_NAME)
@ -176,7 +192,11 @@ class TorKmpManager(application : Application) {
} }
private val manager: TorManager by lazy { private val manager: TorManager by lazy {
TorManager.newInstance(application = application, loader = loaderAndroid, requiredEvents = null) TorManager.newInstance(
application = application,
loader = loaderAndroid,
requiredEvents = null
)
} }
// only expose necessary interfaces // only expose necessary interfaces
@ -192,12 +212,9 @@ class TorKmpManager(application : Application) {
} }
val torStateLiveData: MutableLiveData<TorState> = MutableLiveData() val torStateLiveData: MutableLiveData<TorState> = MutableLiveData()
get() = field
var torState: TorState = TorState() var torState: TorState = TorState()
get() = field
var proxy: Proxy? = null var proxy: Proxy? = null
get() = field
init { init {
manager.debug(true) manager.debug(true)
@ -210,7 +227,7 @@ class TorKmpManager(application : Application) {
} }
fun isStarting(): Boolean { fun isStarting(): Boolean {
return manager.state.isStarting(); return manager.state.isStarting()
} }
@ -313,7 +330,8 @@ class TorKmpManager(application : Application) {
} else { } else {
info.socksInfoToProxyAddressOrNull()?.firstOrNull()?.let { proxyAddress -> info.socksInfoToProxyAddressOrNull()?.firstOrNull()?.let { proxyAddress ->
@Suppress("UNUSED_VARIABLE") @Suppress("UNUSED_VARIABLE")
val socket = InetSocketAddress(proxyAddress.address.value, proxyAddress.port.value) val socket =
InetSocketAddress(proxyAddress.address.value, proxyAddress.port.value)
proxy = Proxy(Proxy.Type.SOCKS, socket) proxy = Proxy(Proxy.Type.SOCKS, socket)
} }
} }

View File

@ -5,6 +5,7 @@
android:left="8dp" android:left="8dp"
android:right="8dp" /> android:right="8dp" />
<solid android:color="@color/button_disabled_bg_color" /> <solid android:color="@color/button_disabled_bg_color" />
<corners android:topLeftRadius="16dp" <corners
android:bottomLeftRadius="16dp"/> android:bottomLeftRadius="16dp"
android:topLeftRadius="16dp" />
</shape> </shape>

View File

@ -5,6 +5,7 @@
android:left="8dp" android:left="8dp"
android:right="8dp" /> android:right="8dp" />
<solid android:color="@color/button_disabled_bg_color" /> <solid android:color="@color/button_disabled_bg_color" />
<corners android:topRightRadius="16dp" <corners
android:bottomRightRadius="16dp"/> android:bottomRightRadius="16dp"
android:topRightRadius="16dp" />
</shape> </shape>

View File

@ -5,6 +5,7 @@
android:left="8dp" android:left="8dp"
android:right="8dp" /> android:right="8dp" />
<solid android:color="@color/oled_colorSecondary" /> <solid android:color="@color/oled_colorSecondary" />
<corners android:topLeftRadius="16dp" <corners
android:bottomLeftRadius="16dp"/> android:bottomLeftRadius="16dp"
android:topLeftRadius="16dp" />
</shape> </shape>

View File

@ -5,6 +5,7 @@
android:left="8dp" android:left="8dp"
android:right="8dp" /> android:right="8dp" />
<solid android:color="@color/oled_colorSecondary" /> <solid android:color="@color/oled_colorSecondary" />
<corners android:topRightRadius="16dp" <corners
android:bottomRightRadius="16dp"/> android:bottomRightRadius="16dp"
android:topRightRadius="16dp" />
</shape> </shape>

View File

@ -2,9 +2,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<padding <padding
android:bottom="12dp"
android:left="12dp" android:left="12dp"
android:right="12dp" android:right="12dp"
android:bottom="12dp"
android:top="12dp" /> android:top="12dp" />
<solid android:color="@color/oled_dialogBackgroundColor" /> <solid android:color="@color/oled_dialogBackgroundColor" />
<corners android:radius="16dp" /> <corners android:radius="16dp" />

View File

@ -2,9 +2,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<padding <padding
android:bottom="12dp"
android:left="12dp" android:left="12dp"
android:right="12dp" android:right="12dp" />
android:bottom="12dp"/>
<solid android:color="@color/oled_dialogBackgroundColor" /> <solid android:color="@color/oled_dialogBackgroundColor" />
<corners android:radius="16dp" /> <corners android:radius="16dp" />
</shape> </shape>

View File

@ -1,74 +1,170 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="108dp"
android:width="108dp" android:width="108dp"
android:viewportHeight="108" android:height="108dp"
android:viewportWidth="108" android:viewportWidth="108"
xmlns:android="http://schemas.android.com/apk/res/android"> android:viewportHeight="108">
<path android:fillColor="#3DDC84" <path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" /> android:pathData="M0,0h108v108h-108z" />
<path android:fillColor="#00000000" android:pathData="M9,0L9,108" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M19,0L19,108" android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
<path android:fillColor="#00000000" android:pathData="M29,0L29,108" android:strokeColor="#33FFFFFF" />
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> <path
<path android:fillColor="#00000000" android:pathData="M39,0L39,108" android:fillColor="#00000000"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:pathData="M19,0L19,108"
<path android:fillColor="#00000000" android:pathData="M49,0L49,108" android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeColor="#33FFFFFF" />
<path android:fillColor="#00000000" android:pathData="M59,0L59,108" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M69,0L69,108" android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
<path android:fillColor="#00000000" android:pathData="M79,0L79,108" android:strokeColor="#33FFFFFF" />
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> <path
<path android:fillColor="#00000000" android:pathData="M89,0L89,108" android:fillColor="#00000000"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:pathData="M39,0L39,108"
<path android:fillColor="#00000000" android:pathData="M99,0L99,108" android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeColor="#33FFFFFF" />
<path android:fillColor="#00000000" android:pathData="M0,9L108,9" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M0,19L108,19" android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
<path android:fillColor="#00000000" android:pathData="M0,29L108,29" android:strokeColor="#33FFFFFF" />
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> <path
<path android:fillColor="#00000000" android:pathData="M0,39L108,39" android:fillColor="#00000000"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:pathData="M59,0L59,108"
<path android:fillColor="#00000000" android:pathData="M0,49L108,49" android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeColor="#33FFFFFF" />
<path android:fillColor="#00000000" android:pathData="M0,59L108,59" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M0,69L108,69" android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
<path android:fillColor="#00000000" android:pathData="M0,79L108,79" android:strokeColor="#33FFFFFF" />
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> <path
<path android:fillColor="#00000000" android:pathData="M0,89L108,89" android:fillColor="#00000000"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:pathData="M79,0L79,108"
<path android:fillColor="#00000000" android:pathData="M0,99L108,99" android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeColor="#33FFFFFF" />
<path android:fillColor="#00000000" android:pathData="M19,29L89,29" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M19,39L89,39" android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
<path android:fillColor="#00000000" android:pathData="M19,49L89,49" android:strokeColor="#33FFFFFF" />
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> <path
<path android:fillColor="#00000000" android:pathData="M19,59L89,59" android:fillColor="#00000000"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:pathData="M99,0L99,108"
<path android:fillColor="#00000000" android:pathData="M19,69L89,69" android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeColor="#33FFFFFF" />
<path android:fillColor="#00000000" android:pathData="M19,79L89,79" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M29,19L29,89" android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
<path android:fillColor="#00000000" android:pathData="M39,19L39,89" android:strokeColor="#33FFFFFF" />
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> <path
<path android:fillColor="#00000000" android:pathData="M49,19L49,89" android:fillColor="#00000000"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:pathData="M0,19L108,19"
<path android:fillColor="#00000000" android:pathData="M59,19L59,89" android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeColor="#33FFFFFF" />
<path android:fillColor="#00000000" android:pathData="M69,19L69,89" <path
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:fillColor="#00000000"
<path android:fillColor="#00000000" android:pathData="M79,19L79,89" android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector> </vector>

View File

@ -4,9 +4,9 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/oled_dialogBackgroundColor"
android:fillViewport="true" android:fillViewport="true"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:background="@color/oled_dialogBackgroundColor"
android:padding="24dp"> android:padding="24dp">
@ -61,13 +61,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:digits="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:-[]"
android:hint="@string/node_address_hint" android:hint="@string/node_address_hint"
android:inputType="text" android:inputType="text"
android:digits="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:-[]"
app:layout_constraintBottom_toTopOf="@id/trusted_node_checkbox" app:layout_constraintBottom_toTopOf="@id/trusted_node_checkbox"
app:layout_constraintEnd_toStartOf="@id/node_port_edittext" app:layout_constraintEnd_toStartOf="@id/node_port_edittext"
app:layout_constraintTop_toBottomOf="@id/node_name_edittext" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintTop_toBottomOf="@id/node_name_edittext" />
<EditText <EditText
android:id="@+id/node_port_edittext" android:id="@+id/node_port_edittext"
@ -75,25 +75,25 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:digits="-QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:"
android:hint="@string/node_port_hint" android:hint="@string/node_port_hint"
android:inputType="number" android:inputType="number"
android:digits="-QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:"
app:layout_constraintTop_toTopOf="@id/address_edittext"
app:layout_constraintBottom_toBottomOf="@id/address_edittext" app:layout_constraintBottom_toBottomOf="@id/address_edittext"
app:layout_constraintEnd_toStartOf="@id/paste_address_imagebutton" app:layout_constraintEnd_toStartOf="@id/paste_address_imagebutton"
app:layout_constraintStart_toEndOf="@id/address_edittext" /> app:layout_constraintStart_toEndOf="@id/address_edittext"
app:layout_constraintTop_toTopOf="@id/address_edittext" />
<CheckBox <CheckBox
android:id="@+id/trusted_node_checkbox" android:id="@+id/trusted_node_checkbox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="48dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:minHeight="48dp"
android:text="@string/trusted_daemon" android:text="@string/trusted_daemon"
android:visibility="visible" android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/username_edittext" app:layout_constraintBottom_toTopOf="@id/username_edittext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/address_edittext" /> app:layout_constraintTop_toBottomOf="@id/address_edittext" />
<Button <Button
@ -114,10 +114,10 @@
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/node_username_hint" android:hint="@string/node_username_hint"
android:inputType="text" android:inputType="text"
app:layout_constraintTop_toBottomOf="@id/trusted_node_checkbox"
app:layout_constraintBottom_toTopOf="@id/password_edittext" app:layout_constraintBottom_toTopOf="@id/password_edittext"
app:layout_constraintEnd_toStartOf="@id/paste_username_imagebutton" app:layout_constraintEnd_toStartOf="@id/paste_username_imagebutton"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_node_checkbox" />
<ImageButton <ImageButton
android:id="@+id/paste_username_imagebutton" android:id="@+id/paste_username_imagebutton"
@ -152,8 +152,8 @@
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:visibility="gone"
android:src="@drawable/ic_content_paste_24dp" android:src="@drawable/ic_content_paste_24dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/password_edittext" app:layout_constraintBottom_toBottomOf="@id/password_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/password_edittext" app:layout_constraintStart_toEndOf="@id/password_edittext"

View File

@ -1,56 +1,57 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:paddingEnd="8dp" android:paddingStart="8dp"
android:paddingStart="8dp"> android:paddingEnd="8dp">
<TextView <TextView
android:id="@+id/address_item_address_textview" android:id="@+id/address_item_address_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Address" android:ellipsize="middle"
android:textStyle="bold"
android:textSize="16sp"
android:paddingTop="4dp" android:paddingTop="4dp"
android:paddingBottom="4dp" android:paddingBottom="4dp"
android:ellipsize="middle"
android:singleLine="true" android:singleLine="true"
android:text="Address"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/address_label_textview" app:layout_constraintBottom_toTopOf="@id/address_label_textview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/address_label_textview" android:id="@+id/address_label_textview"
style="@style/MoneroText.Subaddress" style="@style/MoneroText.Subaddress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Label" android:ellipsize="middle"
android:paddingStart="8dp" android:paddingStart="8dp"
android:paddingEnd="8dp" android:paddingEnd="8dp"
android:singleLine="true"
android:text="Label"
android:textStyle="bold" android:textStyle="bold"
android:ellipsize="middle"
app:layout_constraintTop_toBottomOf="@id/address_item_address_textview"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:singleLine="true" /> app:layout_constraintTop_toBottomOf="@id/address_item_address_textview" />
<TextView <TextView
android:id="@+id/address_amount_textview" android:id="@+id/address_amount_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:text="Amount" android:ellipsize="middle"
android:paddingStart="8dp" android:paddingStart="8dp"
android:paddingEnd="8dp" android:paddingEnd="8dp"
android:ellipsize="middle" android:singleLine="true"
android:text="Amount"
android:textAlignment="viewEnd" android:textAlignment="viewEnd"
android:textColor="@color/oled_positiveColor" android:textColor="@color/oled_positiveColor"
app:layout_constraintTop_toBottomOf="@id/address_item_address_textview"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/address_label_textview" app:layout_constraintStart_toEndOf="@id/address_label_textview"
android:singleLine="true" /> app:layout_constraintTop_toBottomOf="@id/address_item_address_textview" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -14,11 +14,11 @@
android:id="@+id/enter_password_textview" android:id="@+id/enter_password_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="32dp" android:layout_marginBottom="32dp"
android:text="@string/edit_address_label" android:text="@string/edit_address_label"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginTop="24dp"
android:textSize="32sp" android:textSize="32sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/wallet_password_edittext" app:layout_constraintBottom_toTopOf="@id/wallet_password_edittext"
@ -30,9 +30,9 @@
android:id="@+id/wallet_password_edittext" android:id="@+id/wallet_password_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginBottom="32dp" android:layout_marginBottom="32dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:layout_marginStart="24dp"
android:hint="@string/label" android:hint="@string/label"
android:inputType="text" android:inputType="text"
app:layout_constraintBottom_toTopOf="@id/unlock_wallet_button" app:layout_constraintBottom_toTopOf="@id/unlock_wallet_button"
@ -59,11 +59,11 @@
android:id="@+id/unlock_wallet_button" android:id="@+id/unlock_wallet_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg"
android:text="@string/save"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:background="@drawable/button_bg"
android:text="@string/save"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wallet_password_edittext" /> app:layout_constraintTop_toBottomOf="@id/wallet_password_edittext" />

View File

@ -4,9 +4,9 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/oled_dialogBackgroundColor"
android:fillViewport="true" android:fillViewport="true"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:background="@color/oled_dialogBackgroundColor"
android:padding="24dp"> android:padding="24dp">
@ -61,13 +61,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:digits="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:-[]"
android:hint="@string/node_address_hint" android:hint="@string/node_address_hint"
android:inputType="text" android:inputType="text"
android:digits="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:-[]"
app:layout_constraintBottom_toTopOf="@id/trusted_node_checkbox" app:layout_constraintBottom_toTopOf="@id/trusted_node_checkbox"
app:layout_constraintEnd_toStartOf="@id/node_port_edittext" app:layout_constraintEnd_toStartOf="@id/node_port_edittext"
app:layout_constraintTop_toBottomOf="@id/node_name_edittext" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintTop_toBottomOf="@id/node_name_edittext" />
<EditText <EditText
android:id="@+id/node_port_edittext" android:id="@+id/node_port_edittext"
@ -75,25 +75,25 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:digits="-QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:"
android:hint="@string/node_port_hint" android:hint="@string/node_port_hint"
android:inputType="number" android:inputType="number"
android:digits="-QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890.:"
app:layout_constraintTop_toTopOf="@id/address_edittext"
app:layout_constraintBottom_toBottomOf="@id/address_edittext" app:layout_constraintBottom_toBottomOf="@id/address_edittext"
app:layout_constraintEnd_toStartOf="@id/paste_address_imagebutton" app:layout_constraintEnd_toStartOf="@id/paste_address_imagebutton"
app:layout_constraintStart_toEndOf="@id/address_edittext" /> app:layout_constraintStart_toEndOf="@id/address_edittext"
app:layout_constraintTop_toTopOf="@id/address_edittext" />
<CheckBox <CheckBox
android:id="@+id/trusted_node_checkbox" android:id="@+id/trusted_node_checkbox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="48dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:minHeight="48dp"
android:text="@string/trusted_daemon" android:text="@string/trusted_daemon"
android:visibility="visible" android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/username_edittext" app:layout_constraintBottom_toTopOf="@id/username_edittext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/address_edittext" /> app:layout_constraintTop_toBottomOf="@id/address_edittext" />
<EditText <EditText
@ -104,10 +104,10 @@
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/node_username_hint" android:hint="@string/node_username_hint"
android:inputType="text" android:inputType="text"
app:layout_constraintTop_toBottomOf="@id/trusted_node_checkbox"
app:layout_constraintBottom_toTopOf="@id/password_edittext" app:layout_constraintBottom_toTopOf="@id/password_edittext"
app:layout_constraintEnd_toStartOf="@id/paste_username_imagebutton" app:layout_constraintEnd_toStartOf="@id/paste_username_imagebutton"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_node_checkbox" />
<ImageButton <ImageButton
android:id="@+id/paste_username_imagebutton" android:id="@+id/paste_username_imagebutton"
@ -131,10 +131,10 @@
android:hint="@string/node_password_hint" android:hint="@string/node_password_hint"
android:inputType="textPassword" android:inputType="textPassword"
android:visibility="gone" android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/username_edittext"
app:layout_constraintBottom_toTopOf="@id/delete_node_button" app:layout_constraintBottom_toTopOf="@id/delete_node_button"
app:layout_constraintEnd_toStartOf="@id/paste_password_imagebutton" app:layout_constraintEnd_toStartOf="@id/paste_password_imagebutton"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/username_edittext" />
<ImageButton <ImageButton
android:id="@+id/paste_password_imagebutton" android:id="@+id/paste_password_imagebutton"
@ -144,8 +144,8 @@
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:padding="8dp" android:padding="8dp"
android:visibility="gone"
android:src="@drawable/ic_content_paste_24dp" android:src="@drawable/ic_content_paste_24dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/password_edittext" app:layout_constraintBottom_toBottomOf="@id/password_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/password_edittext" app:layout_constraintStart_toEndOf="@id/password_edittext"
@ -160,15 +160,16 @@
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
android:background="@drawable/button_bg_left" android:background="@drawable/button_bg_left"
android:text="@string/delete" android:text="@string/delete"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/done_editing_button" app:layout_constraintEnd_toStartOf="@id/done_editing_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/password_edittext" /> app:layout_constraintTop_toBottomOf="@id/password_edittext" />
<Button <Button
android:id="@+id/done_editing_button" android:id="@+id/done_editing_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:layout_marginTop="16dp"
android:background="@drawable/button_bg_right" android:background="@drawable/button_bg_right"
android:text="@string/done" android:text="@string/done"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -24,14 +24,14 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:textAlignment="center"
android:textSize="12sp" android:textSize="12sp"
android:textStyle="bold" android:textStyle="bold"
android:textAlignment="center"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/sync_progress_bar"
app:layout_constraintEnd_toEndOf="@id/sync_progress_bar" app:layout_constraintEnd_toEndOf="@id/sync_progress_bar"
app:layout_constraintStart_toStartOf="@id/sync_progress_bar" app:layout_constraintStart_toStartOf="@id/sync_progress_bar"
app:layout_constraintTop_toTopOf="@id/sync_progress_bar" app:layout_constraintTop_toTopOf="@id/sync_progress_bar"
app:layout_constraintBottom_toBottomOf="@id/sync_progress_bar"
tools:text="Syncing... 3102333/40010203" /> tools:text="Syncing... 3102333/40010203" />
<TextView <TextView
@ -75,20 +75,22 @@
android:id="@+id/no_history_layout" android:id="@+id/no_history_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/balance_locked_textview" app:layout_constraintTop_toBottomOf="@id/balance_locked_textview"
android:visibility="gone"
tools:visibility="visible"> tools:visibility="visible">
<ImageView <ImageView
android:id="@+id/monerochan_imageview" android:id="@+id/monerochan_imageview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="400dp" android:layout_height="400dp"
android:src="@drawable/xmrchan_empty" android:src="@drawable/xmrchan_empty"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/monerochan_empty_tx_textview"
app:layout_constraintEnd_toStartOf="@id/monerochan_empty_tx_textview"/> app:layout_constraintStart_toStartOf="parent" />
<TextView <TextView
android:id="@+id/monerochan_empty_tx_textview" android:id="@+id/monerochan_empty_tx_textview"
android:layout_width="0dp" android:layout_width="0dp"
@ -98,18 +100,19 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/monerochan_imageview" app:layout_constraintStart_toEndOf="@id/monerochan_imageview"
app:layout_constraintTop_toTopOf="@id/monerochan_imageview" /> app:layout_constraintTop_toTopOf="@id/monerochan_imageview" />
<TextView <TextView
android:id="@+id/empty_tx_textview" android:id="@+id/empty_tx_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textAlignment="center"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:text="@string/no_history_nget_some_monero_in_here" android:text="@string/no_history_nget_some_monero_in_here"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<ImageView <ImageView
@ -134,11 +137,11 @@
android:id="@+id/receive_button" android:id="@+id/receive_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg_left" android:layout_marginStart="24dp"
android:text="@string/receive"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:layout_marginStart="24dp" android:background="@drawable/button_bg_left"
android:text="@string/receive"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/send_button" app:layout_constraintEnd_toStartOf="@id/send_button"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
@ -147,11 +150,11 @@
android:id="@+id/send_button" android:id="@+id/send_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="24dp"
android:background="@drawable/button_bg_right" android:background="@drawable/button_bg_right"
android:text="@string/send" android:text="@string/send"
android:layout_marginStart="1dp"
android:layout_marginBottom="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/receive_button" /> app:layout_constraintStart_toEndOf="@id/receive_button" />
@ -162,10 +165,10 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:contentDescription="@string/settings"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:padding="8dp" android:padding="8dp"
android:contentDescription="@string/settings"
android:src="@drawable/ic_settings" android:src="@drawable/ic_settings"
app:layout_constraintBottom_toBottomOf="@id/balance_unlocked_textview" app:layout_constraintBottom_toBottomOf="@id/balance_unlocked_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -4,23 +4,27 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<ImageView <ImageView
android:id="@+id/xmrchan_onboarding_imageview" android:id="@+id/xmrchan_onboarding_imageview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="fitEnd"
android:adjustViewBounds="false" android:adjustViewBounds="false"
android:scaleType="fitEnd"
android:src="@drawable/xmrchan_half" android:src="@drawable/xmrchan_half"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
<ScrollView <ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:paddingEnd="24dp"
android:paddingStart="24dp" android:paddingStart="24dp"
android:paddingTop="24dp"> android:paddingTop="24dp"
android:paddingEnd="24dp">
<TextView <TextView
android:id="@+id/create_wallet_textview" android:id="@+id/create_wallet_textview"
android:layout_width="0dp" android:layout_width="0dp"
@ -40,10 +44,10 @@
android:layout_height="32dp" android:layout_height="32dp"
android:src="@drawable/tor" android:src="@drawable/tor"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@id/onboarding_tor_loading_progressindicator"
app:layout_constraintEnd_toEndOf="@id/onboarding_tor_loading_progressindicator" app:layout_constraintEnd_toEndOf="@id/onboarding_tor_loading_progressindicator"
app:layout_constraintStart_toStartOf="@id/onboarding_tor_loading_progressindicator" app:layout_constraintStart_toStartOf="@id/onboarding_tor_loading_progressindicator"
app:layout_constraintTop_toTopOf="@id/onboarding_tor_loading_progressindicator" app:layout_constraintTop_toTopOf="@id/onboarding_tor_loading_progressindicator" />
app:layout_constraintBottom_toBottomOf="@id/onboarding_tor_loading_progressindicator"/>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/onboarding_tor_loading_progressindicator" android:id="@+id/onboarding_tor_loading_progressindicator"
@ -51,9 +55,9 @@
android:layout_height="32dp" android:layout_height="32dp"
android:indeterminate="true" android:indeterminate="true"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@id/create_wallet_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/create_wallet_textview" app:layout_constraintTop_toTopOf="@id/create_wallet_textview" />
app:layout_constraintBottom_toBottomOf="@id/create_wallet_textview"/>
<EditText <EditText
android:id="@+id/wallet_password_edittext" android:id="@+id/wallet_password_edittext"
@ -88,13 +92,13 @@
android:id="@+id/advanced_settings_dropdown_textview" android:id="@+id/advanced_settings_dropdown_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/more_options" android:layout_marginBottom="8dp"
android:textStyle="bold"
android:paddingTop="4dp" android:paddingTop="4dp"
android:paddingBottom="4dp" android:paddingBottom="4dp"
android:text="@string/more_options"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/more_options_layout" app:layout_constraintBottom_toTopOf="@id/more_options_layout"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
@ -105,9 +109,9 @@
android:id="@+id/advanced_settings_chevron_imageview" android:id="@+id/advanced_settings_chevron_imageview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:contentDescription="@string/display_advanced_wallet_creation_options"
android:minWidth="24dp" android:minWidth="24dp"
android:minHeight="24dp" android:minHeight="24dp"
android:contentDescription="@string/display_advanced_wallet_creation_options"
android:src="@drawable/ic_keyboard_arrow_down" android:src="@drawable/ic_keyboard_arrow_down"
app:layout_constraintBottom_toBottomOf="@id/advanced_settings_dropdown_textview" app:layout_constraintBottom_toBottomOf="@id/advanced_settings_dropdown_textview"
app:layout_constraintStart_toEndOf="@id/advanced_settings_dropdown_textview" app:layout_constraintStart_toEndOf="@id/advanced_settings_dropdown_textview"
@ -117,9 +121,10 @@
android:id="@+id/more_options_layout" android:id="@+id/more_options_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/advanced_settings_dropdown_textview"> app:layout_constraintTop_toBottomOf="@id/advanced_settings_dropdown_textview">
<TextView <TextView
android:id="@+id/disable_xmrchan_textview" android:id="@+id/disable_xmrchan_textview"
android:layout_width="0dp" android:layout_width="0dp"
@ -135,8 +140,8 @@
android:id="@+id/show_xmrchan_switch" android:id="@+id/show_xmrchan_switch"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="48dp"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -145,37 +150,38 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
tools:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:ellipsize="middle" android:ellipsize="middle"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:singleLine="true" android:singleLine="true"
app:layout_constraintBottom_toTopOf="@id/wallet_seed_layout"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/wallet_seed_layout"
app:layout_constraintTop_toBottomOf="@id/show_xmrchan_switch" app:layout_constraintTop_toBottomOf="@id/show_xmrchan_switch"
tools:ignore="SpeakableTextPresentCheck" /> tools:ignore="SpeakableTextPresentCheck"
tools:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/wallet_seed_layout" android:id="@+id/wallet_seed_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/card"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@id/select_node_button" android:background="@drawable/card"
app:layout_constraintBottom_toTopOf="@id/wallet_proxy_layout"> app:layout_constraintBottom_toTopOf="@id/wallet_proxy_layout"
app:layout_constraintTop_toBottomOf="@id/select_node_button">
<Button <Button
android:id="@+id/seed_type_button" android:id="@+id/seed_type_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="32dp" android:layout_height="32dp"
android:background="@drawable/button_bg_small"
android:text="POLYSEED" android:text="POLYSEED"
android:textSize="12sp" android:textSize="12sp"
android:background="@drawable/button_bg_small" app:layout_constraintBottom_toTopOf="@id/seed_type_desc_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintBottom_toTopOf="@id/seed_type_desc_textview"/>
<TextView <TextView
android:id="@+id/seed_type_label_textview" android:id="@+id/seed_type_label_textview"
@ -183,21 +189,21 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Seed version" android:text="Seed version"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="@id/seed_type_button"
app:layout_constraintEnd_toStartOf="@id/seed_type_button" app:layout_constraintEnd_toStartOf="@id/seed_type_button"
app:layout_constraintTop_toTopOf="@id/seed_type_button" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@id/seed_type_button"/> app:layout_constraintTop_toTopOf="@id/seed_type_button" />
<TextView <TextView
android:id="@+id/seed_type_desc_textview" android:id="@+id/seed_type_desc_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/oled_addressListColor"
android:paddingBottom="16dp"
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingBottom="16dp"
android:text="16 words instead of 25; just as secure." android:text="16 words instead of 25; just as secure."
app:layout_constraintTop_toBottomOf="@id/seed_type_button" android:textColor="@color/oled_addressListColor"
app:layout_constraintBottom_toTopOf="@id/wallet_seed_edittext"/> app:layout_constraintBottom_toTopOf="@id/wallet_seed_edittext"
app:layout_constraintTop_toBottomOf="@id/seed_type_button" />
<EditText <EditText
android:id="@+id/wallet_seed_edittext" android:id="@+id/wallet_seed_edittext"
@ -215,12 +221,12 @@
android:id="@+id/wallet_restore_height_edittext" android:id="@+id/wallet_restore_height_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/restore_height_optional" android:hint="@string/restore_height_optional"
android:inputType="number" android:inputType="number"
android:minHeight="48dp" android:minHeight="48dp"
android:visibility="gone" android:visibility="gone"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toTopOf="@id/seed_offset_checkbox" app:layout_constraintBottom_toTopOf="@id/seed_offset_checkbox"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -233,10 +239,11 @@
android:minHeight="48dp" android:minHeight="48dp"
android:text="@string/use_password_as_seed_offset" android:text="@string/use_password_as_seed_offset"
android:visibility="gone" android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wallet_restore_height_edittext" /> app:layout_constraintTop_toBottomOf="@id/wallet_restore_height_edittext" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/wallet_proxy_layout" android:id="@+id/wallet_proxy_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -244,6 +251,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:background="@drawable/card_no_top" android:background="@drawable/card_no_top"
app:layout_constraintTop_toBottomOf="@id/wallet_seed_layout"> app:layout_constraintTop_toBottomOf="@id/wallet_seed_layout">
<TextView <TextView
android:id="@+id/tor_onboarding_switch_label" android:id="@+id/tor_onboarding_switch_label"
android:layout_width="0dp" android:layout_width="0dp"
@ -259,20 +267,22 @@
android:id="@+id/tor_onboarding_switch" android:id="@+id/tor_onboarding_switch"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="48dp"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<CheckBox <CheckBox
android:id="@+id/bundled_tor_checkbox" android:id="@+id/bundled_tor_checkbox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="48dp" android:minHeight="48dp"
android:text="@string/use_bundled_tor" android:text="@string/use_bundled_tor"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/wallet_proxy_address_edittext" app:layout_constraintBottom_toTopOf="@id/wallet_proxy_address_edittext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tor_onboarding_switch" /> app:layout_constraintTop_toBottomOf="@id/tor_onboarding_switch" />
<EditText <EditText
android:id="@+id/wallet_proxy_address_edittext" android:id="@+id/wallet_proxy_address_edittext"
android:layout_width="0dp" android:layout_width="0dp"
@ -289,9 +299,9 @@
android:id="@+id/wallet_proxy_port_edittext" android:id="@+id/wallet_proxy_port_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/wallet_proxy_port_hint" android:hint="@string/wallet_proxy_port_hint"
android:layout_marginTop="8dp"
android:inputType="number" android:inputType="number"
android:minHeight="48dp" android:minHeight="48dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -300,14 +310,15 @@
app:layout_constraintTop_toBottomOf="@id/wallet_proxy_address_edittext" /> app:layout_constraintTop_toBottomOf="@id/wallet_proxy_address_edittext" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<Button <Button
android:id="@+id/create_wallet_button" android:id="@+id/create_wallet_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:text="@string/create_wallet"
android:enabled="false" android:enabled="false"
android:text="@string/create_wallet"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/more_options_layout" /> app:layout_constraintTop_toBottomOf="@id/more_options_layout" />

View File

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:padding="24dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:padding="24dp">
<TextView <TextView
android:id="@+id/recv_monero_textview" android:id="@+id/recv_monero_textview"
@ -25,13 +24,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:src="@drawable/ic_refresh" android:contentDescription="@string/generate_fresh_wallet_address"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/generate_fresh_wallet_address" android:src="@drawable/ic_refresh"
app:layout_constraintBottom_toBottomOf="@id/recv_monero_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/recv_monero_textview" app:layout_constraintTop_toTopOf="@id/recv_monero_textview"
app:layout_constraintBottom_toBottomOf="@id/recv_monero_textview"
app:tint="@color/oled_textColorPrimary" /> app:tint="@color/oled_textColorPrimary" />
<ImageView <ImageView
@ -58,18 +57,18 @@
android:id="@+id/address_textview" android:id="@+id/address_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:textSize="16sp" android:layout_marginEnd="8dp"
android:textStyle="bold"
android:ellipsize="middle" android:ellipsize="middle"
android:singleLine="true"
android:paddingTop="4dp" android:paddingTop="4dp"
android:paddingBottom="4dp" android:paddingBottom="4dp"
android:singleLine="true"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/address_label_textview"
app:layout_constraintEnd_toStartOf="@id/copy_address_imagebutton" app:layout_constraintEnd_toStartOf="@id/copy_address_imagebutton"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/monero_qr_imageview" app:layout_constraintTop_toBottomOf="@id/monero_qr_imageview"
app:layout_constraintBottom_toTopOf="@id/address_label_textview"
tools:text="ADDRESS" /> tools:text="ADDRESS" />
<TextView <TextView
@ -78,11 +77,11 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:textSize="14sp"
android:ellipsize="middle" android:ellipsize="middle"
android:singleLine="true"
android:paddingStart="8dp" android:paddingStart="8dp"
android:paddingEnd="8dp" android:paddingEnd="8dp"
android:singleLine="true"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/address_textview" app:layout_constraintTop_toBottomOf="@id/address_textview"
tools:text="LABEL" /> tools:text="LABEL" />
@ -91,11 +90,11 @@
android:id="@+id/copy_address_imagebutton" android:id="@+id/copy_address_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:background="@android:color/transparent"
android:contentDescription="@string/copy_selected_wallet_address"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/copy_selected_wallet_address"
android:src="@drawable/ic_content_copy_24dp" android:src="@drawable/ic_content_copy_24dp"
app:layout_constraintBottom_toTopOf="@id/address_list_recyclerview" app:layout_constraintBottom_toTopOf="@id/address_list_recyclerview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -108,20 +107,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:textSize="14sp"
android:ellipsize="middle" android:ellipsize="middle"
android:singleLine="true" android:singleLine="true"
android:text="@string/previous_addresses"
android:textSize="14sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/address_list_recyclerview" app:layout_constraintBottom_toTopOf="@id/address_list_recyclerview"
android:text="@string/previous_addresses" /> app:layout_constraintStart_toStartOf="parent" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/address_list_recyclerview" android:id="@+id/address_list_recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:background="@drawable/round_bg"
android:layout_marginTop="64dp" android:layout_marginTop="64dp"
android:background="@drawable/round_bg"
android:clipToPadding="true" android:clipToPadding="true"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -4,13 +4,14 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<TextView <TextView
android:id="@+id/send_monero_textview" android:id="@+id/send_monero_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/send_monero"
android:layout_marginTop="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:text="@string/send_monero"
android:textSize="32sp" android:textSize="32sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@id/top_controls" app:layout_constraintEnd_toStartOf="@id/top_controls"
@ -26,6 +27,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/send_monero_textview" app:layout_constraintStart_toEndOf="@id/send_monero_textview"
app:layout_constraintTop_toTopOf="@id/send_monero_textview"> app:layout_constraintTop_toTopOf="@id/send_monero_textview">
<Button <Button
android:id="@+id/send_max_button" android:id="@+id/send_max_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -43,17 +45,17 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/add_recipient_to_transaction"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/add_recipient_to_transaction"
android:src="@android:drawable/ic_input_add" android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/send_max_button" app:layout_constraintEnd_toStartOf="@id/send_max_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/oled_textColorPrimary"
tools:ignore="SpeakableTextPresentCheck" tools:ignore="SpeakableTextPresentCheck"
tools:visibility="visible" tools:visibility="visible" />
app:tint="@color/oled_textColorPrimary" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<!-- CREATE LAYOUT --> <!-- CREATE LAYOUT -->
@ -61,9 +63,9 @@
android:id="@+id/selected_utxos_value_textview" android:id="@+id/selected_utxos_value_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="24dp"
android:text="@string/selected_utxos_value" android:text="@string/selected_utxos_value"
android:textSize="14sp" android:textSize="14sp"
android:visibility="invisible" android:visibility="invisible"
@ -76,44 +78,47 @@
android:id="@+id/tx_fee_radiogroup_label_textview" android:id="@+id/tx_fee_radiogroup_label_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/fee_priority"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:text="@string/fee_priority"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="@id/tx_fee_radiogroup"
app:layout_constraintEnd_toStartOf="@id/tx_fee_radiogroup" app:layout_constraintEnd_toStartOf="@id/tx_fee_radiogroup"
app:layout_constraintTop_toTopOf="@id/tx_fee_radiogroup" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@id/tx_fee_radiogroup"/> app:layout_constraintTop_toTopOf="@id/tx_fee_radiogroup" />
<RadioGroup <RadioGroup
android:id="@+id/tx_fee_radiogroup" android:id="@+id/tx_fee_radiogroup"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/create_tx_button" app:layout_constraintBottom_toTopOf="@id/create_tx_button"
app:layout_constraintStart_toEndOf="@id/tx_fee_radiogroup_label_textview" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintStart_toEndOf="@id/tx_fee_radiogroup_label_textview">
<RadioButton <RadioButton
android:layout_width="wrap_content"
android:layout_height="48dp"
android:text="@string/low"
android:id="@+id/low_fee_radiobutton" android:id="@+id/low_fee_radiobutton"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:checked="true" android:checked="true"
android:text="@string/low"
android:textSize="16sp" /> android:textSize="16sp" />
<RadioButton <RadioButton
android:layout_width="wrap_content"
android:layout_height="48dp"
android:text="@string/medium"
android:id="@+id/med_fee_radiobutton" android:id="@+id/med_fee_radiobutton"
android:checked="false"
android:textSize="16sp"/>
<RadioButton
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="48dp" android:layout_height="48dp"
android:text="@string/high"
android:id="@+id/high_fee_radiobutton"
android:checked="false" android:checked="false"
android:text="@string/medium"
android:textSize="16sp" />
<RadioButton
android:id="@+id/high_fee_radiobutton"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:checked="false"
android:text="@string/high"
android:textSize="16sp" /> android:textSize="16sp" />
</RadioGroup> </RadioGroup>
@ -121,12 +126,12 @@
android:id="@+id/create_tx_button" android:id="@+id/create_tx_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg" android:layout_marginStart="24dp"
android:text="@string/create"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:background="@drawable/button_bg"
android:text="@string/create"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
@ -140,16 +145,16 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/selected_utxos_value_textview"> app:layout_constraintTop_toBottomOf="@id/selected_utxos_value_textview">
<LinearLayout <LinearLayout
android:id="@+id/transaction_destination_list" android:id="@+id/transaction_destination_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:paddingBottom="128dp"
android:clickable="false" android:clickable="false"
android:clipToPadding="false" android:clipToPadding="false"
android:orientation="vertical" android:orientation="vertical"
> android:paddingBottom="128dp">
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
@ -158,15 +163,15 @@
android:id="@+id/address_pending_textview" android:id="@+id/address_pending_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:ellipsize="middle" android:ellipsize="middle"
android:singleLine="true" android:singleLine="true"
android:text="@string/tx_address_text" android:text="@string/tx_address_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/send_monero_textview" app:layout_constraintTop_toBottomOf="@id/send_monero_textview"
@ -176,13 +181,13 @@
android:id="@+id/amount_pending_textview" android:id="@+id/amount_pending_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:text="@string/tx_amount_text" android:text="@string/tx_amount_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/address_pending_textview" app:layout_constraintTop_toBottomOf="@id/address_pending_textview"
@ -192,13 +197,13 @@
android:id="@+id/fee_textview" android:id="@+id/fee_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:text="@string/tx_fee_text" android:text="@string/tx_fee_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/amount_pending_textview" app:layout_constraintTop_toBottomOf="@id/amount_pending_textview"
@ -211,20 +216,20 @@
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
android:layout_marginEnd="32dp" android:layout_marginEnd="32dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:elevation="6dp"
android:visibility="gone"
android:importantForAccessibility="yes"
android:contentDescription="@string/slide_to_send_transaction" android:contentDescription="@string/slide_to_send_transaction"
android:elevation="6dp"
android:focusable="true"
android:importantForAccessibility="yes"
android:visibility="gone"
app:area_margin="10dp" app:area_margin="10dp"
app:border_radius="20dp" app:border_radius="20dp"
app:inner_color="@android:color/white" app:inner_color="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:outer_color="@color/oled_colorSecondary" app:outer_color="@color/oled_colorSecondary"
app:slider_height="72dp" app:slider_height="72dp"
app:slider_locked="false" app:slider_locked="false"
app:text="@string/slide_to_send" app:text="@string/slide_to_send"
android:focusable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:text_size="18sp" app:text_size="18sp"
tools:visibility="visible" /> tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -5,6 +5,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="net.mynero.wallet.fragment.settings.SettingsFragment"> tools:context="net.mynero.wallet.fragment.settings.SettingsFragment">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -13,24 +14,25 @@
android:id="@+id/settings_textview" android:id="@+id/settings_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/settings"
android:layout_marginTop="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:text="@string/settings"
android:textSize="32sp" android:textSize="32sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@id/settings_tor_loading_progressindicator" app:layout_constraintEnd_toStartOf="@id/settings_tor_loading_progressindicator"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/settings_tor_icon" android:id="@+id/settings_tor_icon"
android:layout_width="32dp" android:layout_width="32dp"
android:layout_height="32dp" android:layout_height="32dp"
android:layout_marginEnd="24dp"
android:src="@drawable/tor" android:src="@drawable/tor"
android:visibility="invisible" android:visibility="invisible"
android:layout_marginEnd="24dp" app:layout_constraintBottom_toBottomOf="@id/settings_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/settings_textview" app:layout_constraintTop_toTopOf="@id/settings_textview" />
app:layout_constraintBottom_toBottomOf="@id/settings_textview"/>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/settings_tor_loading_progressindicator" android:id="@+id/settings_tor_loading_progressindicator"
@ -38,20 +40,20 @@
android:layout_height="32dp" android:layout_height="32dp"
android:indeterminate="true" android:indeterminate="true"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@id/settings_tor_icon"
app:layout_constraintEnd_toEndOf="@id/settings_tor_icon" app:layout_constraintEnd_toEndOf="@id/settings_tor_icon"
app:layout_constraintStart_toStartOf="@id/settings_tor_icon" app:layout_constraintStart_toStartOf="@id/settings_tor_icon"
app:layout_constraintTop_toTopOf="@id/settings_tor_icon" app:layout_constraintTop_toTopOf="@id/settings_tor_icon" />
app:layout_constraintBottom_toBottomOf="@id/settings_tor_icon"/>
<TextView <TextView
android:id="@+id/wallet_settings_textview" android:id="@+id/wallet_settings_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"
android:layout_marginEnd="24dp"
android:text="@string/wallet" android:text="@string/wallet"
android:textSize="24sp" android:textSize="24sp"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -61,10 +63,10 @@
android:id="@+id/display_seed_button" android:id="@+id/display_seed_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/button_bg"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:background="@drawable/button_bg"
android:text="@string/display_recovery_phrase" android:text="@string/display_recovery_phrase"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
@ -75,10 +77,10 @@
android:id="@+id/display_utxos_button" android:id="@+id/display_utxos_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/button_bg"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:background="@drawable/button_bg"
android:text="@string/view_utxos" android:text="@string/view_utxos"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
@ -89,10 +91,10 @@
android:id="@+id/transaction_settings_textview" android:id="@+id/transaction_settings_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/transactions"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="24dp"
android:text="@string/transactions"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -103,9 +105,9 @@
android:id="@+id/donate_per_tx_label_textview" android:id="@+id/donate_per_tx_label_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/option_donate_per_tx" android:text="@string/option_donate_per_tx"
android:textSize="16sp" android:textSize="16sp"
android:layout_marginStart="24dp"
app:layout_constraintBottom_toBottomOf="@id/donate_per_tx_switch" app:layout_constraintBottom_toBottomOf="@id/donate_per_tx_switch"
app:layout_constraintEnd_toStartOf="@id/donate_per_tx_switch" app:layout_constraintEnd_toStartOf="@id/donate_per_tx_switch"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -115,11 +117,11 @@
android:id="@+id/donate_per_tx_desc_textview" android:id="@+id/donate_per_tx_desc_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/option_donate_per_tx_desc"
android:textSize="14sp"
android:textColor="@color/oled_addressListColor"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:text="@string/option_donate_per_tx_desc"
android:textColor="@color/oled_addressListColor"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/donate_per_tx_switch" /> app:layout_constraintTop_toBottomOf="@id/donate_per_tx_switch" />
@ -129,8 +131,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:minHeight="48dp"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_settings_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_settings_textview" />
@ -138,10 +140,10 @@
android:id="@+id/appearance_settings_textview" android:id="@+id/appearance_settings_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/appearance"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="24dp"
android:text="@string/appearance"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -152,9 +154,9 @@
android:id="@+id/street_mode_label_textview" android:id="@+id/street_mode_label_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/street_mode" android:text="@string/street_mode"
android:textSize="16sp" android:textSize="16sp"
android:layout_marginStart="24dp"
app:layout_constraintBottom_toBottomOf="@id/street_mode_switch" app:layout_constraintBottom_toBottomOf="@id/street_mode_switch"
app:layout_constraintEnd_toStartOf="@id/street_mode_switch" app:layout_constraintEnd_toStartOf="@id/street_mode_switch"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -164,10 +166,10 @@
android:id="@+id/street_mode_switch" android:id="@+id/street_mode_switch"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:minHeight="48dp"
android:minWidth="48dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:minWidth="48dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/appearance_settings_textview" /> app:layout_constraintTop_toBottomOf="@id/appearance_settings_textview" />
@ -175,9 +177,9 @@
android:id="@+id/monerochan_label_textview" android:id="@+id/monerochan_label_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/option_hide_xmrchan" android:text="@string/option_hide_xmrchan"
android:textSize="16sp" android:textSize="16sp"
android:layout_marginStart="24dp"
app:layout_constraintBottom_toBottomOf="@id/monerochan_switch" app:layout_constraintBottom_toBottomOf="@id/monerochan_switch"
app:layout_constraintEnd_toStartOf="@id/monerochan_switch" app:layout_constraintEnd_toStartOf="@id/monerochan_switch"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -188,8 +190,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:minHeight="48dp"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/street_mode_switch" /> app:layout_constraintTop_toBottomOf="@id/street_mode_switch" />
@ -197,9 +199,9 @@
android:id="@+id/network_settings_textview" android:id="@+id/network_settings_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
android:text="@string/network" android:text="@string/network"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
@ -214,25 +216,25 @@
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
tools:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:ellipsize="middle" android:ellipsize="middle"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:singleLine="true" android:singleLine="true"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/network_settings_textview" app:layout_constraintTop_toBottomOf="@id/network_settings_textview"
tools:ignore="SpeakableTextPresentCheck" /> tools:ignore="SpeakableTextPresentCheck"
tools:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" />
<TextView <TextView
android:id="@+id/tor_textview" android:id="@+id/tor_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/tor_switch_label" android:text="@string/tor_switch_label"
android:textSize="16sp" android:textSize="16sp"
android:layout_marginStart="24dp"
app:layout_constraintBottom_toBottomOf="@id/tor_switch" app:layout_constraintBottom_toBottomOf="@id/tor_switch"
app:layout_constraintEnd_toStartOf="@id/tor_switch" app:layout_constraintEnd_toStartOf="@id/tor_switch"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -244,8 +246,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:minHeight="48dp"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/select_node_button" /> app:layout_constraintTop_toBottomOf="@id/select_node_button" />
@ -254,29 +256,30 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="visible" android:visibility="visible"
app:layout_constraintTop_toBottomOf="@id/tor_switch" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintTop_toBottomOf="@id/tor_switch">
<CheckBox <CheckBox
android:id="@+id/bundled_tor_checkbox" android:id="@+id/bundled_tor_checkbox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:minHeight="48dp" android:minHeight="48dp"
android:text="@string/use_bundled_tor" android:text="@string/use_bundled_tor"
android:visibility="visible" android:visibility="visible"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/wallet_proxy_address_edittext" app:layout_constraintBottom_toTopOf="@id/wallet_proxy_address_edittext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<EditText <EditText
android:id="@+id/wallet_proxy_address_edittext" android:id="@+id/wallet_proxy_address_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/wallet_proxy_address_hint" android:hint="@string/wallet_proxy_address_hint"
android:minHeight="48dp" android:minHeight="48dp"
@ -289,11 +292,11 @@
android:id="@+id/wallet_proxy_port_edittext" android:id="@+id/wallet_proxy_port_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/edittext_bg"
android:hint="@string/wallet_proxy_port_hint"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="24dp"
android:background="@drawable/edittext_bg"
android:hint="@string/wallet_proxy_port_hint"
android:inputType="number" android:inputType="number"
android:minHeight="48dp" android:minHeight="48dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View File

@ -13,9 +13,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="32dp" android:layout_marginBottom="32dp"
android:text="@string/transaction_action_recv" android:text="@string/transaction_action_recv"
android:textColor="@color/oled_addressListColor"
android:textSize="42sp" android:textSize="42sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/oled_addressListColor"
app:layout_constraintBottom_toTopOf="@id/transaction_amount_textview" app:layout_constraintBottom_toTopOf="@id/transaction_amount_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -25,11 +25,11 @@
android:id="@+id/transaction_amount_textview" android:id="@+id/transaction_amount_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="middle"
android:singleLine="true"
android:text="@string/tx_amount_no_prefix2" android:text="@string/tx_amount_no_prefix2"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true"
android:ellipsize="middle"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_action_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_action_textview" />
@ -37,51 +37,51 @@
android:id="@+id/transaction_amount_units_textview" android:id="@+id/transaction_amount_units_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="XMR"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:ellipsize="middle"
android:singleLine="true"
android:text="XMR"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true"
android:ellipsize="middle"
app:layout_constraintStart_toEndOf="@id/transaction_amount_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/transaction_amount_textview"
app:layout_constraintTop_toBottomOf="@id/transaction_action_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_action_textview" />
<TextView <TextView
android:id="@+id/transaction_address_label_textview" android:id="@+id/transaction_address_label_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/transaction_destination_desc"
android:textSize="28sp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:textStyle="bold" android:text="@string/transaction_destination_desc"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="28sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_amount_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_amount_textview" />
<TextView <TextView
android:id="@+id/transaction_address_textview" android:id="@+id/transaction_address_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="middle"
android:singleLine="true"
android:text="@string/transaction_destination" android:text="@string/transaction_destination"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true" app:layout_constraintBottom_toBottomOf="@id/copy_txaddress_imagebutton"
android:ellipsize="middle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/copy_txaddress_imagebutton" app:layout_constraintEnd_toStartOf="@id/copy_txaddress_imagebutton"
app:layout_constraintTop_toTopOf="@id/copy_txaddress_imagebutton" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@id/copy_txaddress_imagebutton"/> app:layout_constraintTop_toTopOf="@id/copy_txaddress_imagebutton" />
<ImageButton <ImageButton
android:id="@+id/copy_txaddress_imagebutton" android:id="@+id/copy_txaddress_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/copy_transaction_addr"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/copy_transaction_addr"
android:src="@drawable/ic_content_copy_24dp" android:src="@drawable/ic_content_copy_24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/transaction_address_textview" app:layout_constraintStart_toEndOf="@id/transaction_address_textview"
@ -91,37 +91,37 @@
android:id="@+id/transaction_hash_label_textview" android:id="@+id/transaction_hash_label_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/transaction_hash_desc"
android:textSize="28sp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:textStyle="bold" android:text="@string/transaction_hash_desc"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="28sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/copy_txaddress_imagebutton" /> app:layout_constraintTop_toBottomOf="@id/copy_txaddress_imagebutton" />
<TextView <TextView
android:id="@+id/transaction_hash_textview" android:id="@+id/transaction_hash_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="middle"
android:singleLine="true"
android:text="@string/transaction_hash" android:text="@string/transaction_hash"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true" app:layout_constraintBottom_toBottomOf="@id/copy_txhash_imagebutton"
android:ellipsize="middle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/copy_txhash_imagebutton" app:layout_constraintEnd_toStartOf="@id/copy_txhash_imagebutton"
app:layout_constraintTop_toTopOf="@id/copy_txhash_imagebutton" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@id/copy_txhash_imagebutton"/> app:layout_constraintTop_toTopOf="@id/copy_txhash_imagebutton" />
<ImageButton <ImageButton
android:id="@+id/copy_txhash_imagebutton" android:id="@+id/copy_txhash_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/copy_transaction_hash"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/copy_transaction_hash"
android:src="@drawable/ic_content_copy_24dp" android:src="@drawable/ic_content_copy_24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/transaction_hash_textview" app:layout_constraintStart_toEndOf="@id/transaction_hash_textview"
@ -133,50 +133,50 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="@string/transaction_on_date_label" android:text="@string/transaction_on_date_label"
android:textColor="@color/oled_addressListColor"
android:textSize="28sp" android:textSize="28sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/copy_txhash_imagebutton" /> app:layout_constraintTop_toBottomOf="@id/copy_txhash_imagebutton" />
<TextView <TextView
android:id="@+id/transaction_date_textview" android:id="@+id/transaction_date_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="middle"
android:singleLine="true"
android:text="0" android:text="0"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true"
android:ellipsize="middle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_date_label_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_date_label_textview" />
<TextView <TextView
android:id="@+id/transaction_conf_label_textview" android:id="@+id/transaction_conf_label_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/transaction_conf_desc"
android:textSize="28sp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:textStyle="bold" android:text="@string/transaction_conf_desc"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="28sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_date_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_date_textview" />
<TextView <TextView
android:id="@+id/transaction_conf_textview" android:id="@+id/transaction_conf_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="middle"
android:singleLine="true"
android:text="0" android:text="0"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true"
android:ellipsize="middle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_conf_label_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_conf_label_textview" />
<TextView <TextView
@ -184,24 +184,24 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/transaction_conf_desc2_confirmed" android:text="@string/transaction_conf_desc2_confirmed"
android:textColor="@color/oled_addressListColor"
android:textSize="28sp" android:textSize="28sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_conf_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_conf_textview" />
<TextView <TextView
android:id="@+id/tx_block_height_textview" android:id="@+id/tx_block_height_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="middle"
android:singleLine="true"
android:text="0" android:text="0"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true"
android:ellipsize="middle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/transaction_conf_label2_textview" /> app:layout_constraintTop_toBottomOf="@id/transaction_conf_label2_textview" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -10,12 +10,12 @@
android:id="@+id/view_utxos_textview" android:id="@+id/view_utxos_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:text="@string/view_utxos" android:text="@string/view_utxos"
android:textSize="32sp" android:textSize="32sp"
android:textStyle="bold" android:textStyle="bold"
android:layout_marginTop="24dp"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -48,8 +48,8 @@
android:id="@+id/freeze_utxos_button" android:id="@+id/freeze_utxos_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg_left"
android:layout_marginEnd="1dp" android:layout_marginEnd="1dp"
android:background="@drawable/button_bg_left"
android:text="@string/freeze" android:text="@string/freeze"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/churn_utxos_button" app:layout_constraintEnd_toStartOf="@id/churn_utxos_button"
@ -69,8 +69,8 @@
android:id="@+id/send_utxos_button" android:id="@+id/send_utxos_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg_right"
android:layout_marginStart="1dp" android:layout_marginStart="1dp"
android:background="@drawable/button_bg_right"
android:text="@string/send" android:text="@string/send"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -4,8 +4,8 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true"
android:background="@color/oled_dialogBackgroundColor" android:background="@color/oled_dialogBackgroundColor"
android:fillViewport="true"
android:padding="24dp"> android:padding="24dp">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@ -29,24 +29,24 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:text="@string/add_node"
android:textSize="12sp"
android:paddingStart="16dp" android:paddingStart="16dp"
android:paddingEnd="16dp" android:paddingEnd="16dp"
app:layout_constraintStart_toEndOf="@id/nodes_textview" android:text="@string/add_node"
app:layout_constraintTop_toTopOf="parent" android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@id/node_selection_recyclerview" app:layout_constraintBottom_toTopOf="@id/node_selection_recyclerview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/nodes_textview"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/node_selection_recyclerview" android:id="@+id/node_selection_recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingBottom="128dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:clipToPadding="false"
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="false"
android:paddingBottom="128dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="8dp" android:layout_marginBottom="8dp"
android:layout_marginBottom="8dp"> android:padding="8dp">
<ImageView <ImageView
android:id="@+id/anonymity_network_imageview" android:id="@+id/anonymity_network_imageview"
android:layout_width="20dp" android:layout_width="20dp"
@ -13,58 +13,62 @@
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:src="@drawable/ic_fingerprint" android:src="@drawable/ic_fingerprint"
android:visibility="gone" android:visibility="gone"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/node_uri_textview" app:layout_constraintBottom_toTopOf="@id/node_uri_textview"
app:layout_constraintEnd_toStartOf="@id/node_name_textview"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/node_name_textview"/> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/node_name_textview" android:id="@+id/node_name_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Node Name" android:text="Node Name"
android:textStyle="bold"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/anonymity_network_imageview" android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/node_uri_textview" app:layout_constraintBottom_toTopOf="@id/node_uri_textview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/anonymity_network_imageview"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/node_uri_textview" android:id="@+id/node_uri_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="NODE::"
android:ellipsize="middle" android:ellipsize="middle"
app:layout_constraintTop_toBottomOf="@id/node_name_textview" android:singleLine="true"
app:layout_constraintStart_toStartOf="parent" android:text="NODE::"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:singleLine="true" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/node_name_textview" />
<TextView <TextView
android:id="@+id/authenticated_textview" android:id="@+id/authenticated_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/auth"
android:textColor="@color/oled_addressListColor"
android:ellipsize="middle"
android:visibility="gone"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"
app:layout_constraintTop_toBottomOf="@id/node_uri_textview" android:ellipsize="middle"
android:singleLine="true"
android:text="@string/auth"
android:textColor="@color/oled_addressListColor"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/trusted_node_textview" app:layout_constraintEnd_toStartOf="@id/trusted_node_textview"
android:singleLine="true" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/node_uri_textview" />
<TextView <TextView
android:id="@+id/trusted_node_textview" android:id="@+id/trusted_node_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/trusted"
android:textColor="@color/oled_addressListColor"
android:ellipsize="middle"
android:visibility="gone"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"
app:layout_constraintTop_toBottomOf="@id/node_uri_textview" android:ellipsize="middle"
android:singleLine="true"
android:text="@string/trusted"
android:textColor="@color/oled_addressListColor"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/authenticated_textview" app:layout_constraintStart_toEndOf="@id/authenticated_textview"
android:singleLine="true" /> app:layout_constraintTop_toBottomOf="@id/node_uri_textview" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -14,11 +14,11 @@
android:id="@+id/enter_password_textview" android:id="@+id/enter_password_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="32dp" android:layout_marginBottom="32dp"
android:text="@string/enter_password" android:text="@string/enter_password"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginTop="24dp"
android:textSize="32sp" android:textSize="32sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/wallet_password_edittext" app:layout_constraintBottom_toTopOf="@id/wallet_password_edittext"
@ -30,9 +30,9 @@
android:id="@+id/wallet_password_edittext" android:id="@+id/wallet_password_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginBottom="32dp" android:layout_marginBottom="32dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:layout_marginStart="24dp"
android:hint="@string/password" android:hint="@string/password"
android:inputType="textPassword" android:inputType="textPassword"
app:layout_constraintBottom_toTopOf="@id/unlock_wallet_button" app:layout_constraintBottom_toTopOf="@id/unlock_wallet_button"
@ -47,10 +47,10 @@
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/paste_clipboard_into_passphrase_field"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:src="@drawable/ic_content_paste_24dp" android:src="@drawable/ic_content_paste_24dp"
android:contentDescription="@string/paste_clipboard_into_passphrase_field"
app:layout_constraintBottom_toBottomOf="@id/wallet_password_edittext" app:layout_constraintBottom_toBottomOf="@id/wallet_password_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/wallet_password_edittext" app:layout_constraintStart_toEndOf="@id/wallet_password_edittext"
@ -60,11 +60,11 @@
android:id="@+id/unlock_wallet_button" android:id="@+id/unlock_wallet_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_bg"
android:text="@string/unlock"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:background="@drawable/button_bg"
android:text="@string/unlock"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wallet_password_edittext" /> app:layout_constraintTop_toBottomOf="@id/wallet_password_edittext" />

View File

@ -6,6 +6,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/oled_dialogBackgroundColor" android:background="@color/oled_dialogBackgroundColor"
android:fitsSystemWindows="true"> android:fitsSystemWindows="true">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -14,22 +15,23 @@
android:id="@+id/send_monero_textview" android:id="@+id/send_monero_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/send_monero" android:layout_marginStart="24dp"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:text="@string/send_monero"
android:textSize="32sp" android:textSize="32sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/selected_utxos_value_textview" app:layout_constraintBottom_toTopOf="@id/selected_utxos_value_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/selected_utxos_value_textview" android:id="@+id/selected_utxos_value_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:text="@string/selected_utxos_value" android:text="@string/selected_utxos_value"
android:textSize="16sp" android:textSize="16sp"
android:visibility="gone" android:visibility="gone"
@ -37,14 +39,15 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/send_monero_textview" /> app:layout_constraintTop_toBottomOf="@id/send_monero_textview" />
<EditText <EditText
android:id="@+id/address_edittext" android:id="@+id/address_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginBottom="4dp" android:layout_marginBottom="4dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:layout_marginStart="24dp"
android:ellipsize="middle" android:ellipsize="middle"
android:hint="@string/address" android:hint="@string/address"
android:singleLine="true" android:singleLine="true"
@ -53,17 +56,19 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/selected_utxos_value_textview" app:layout_constraintTop_toBottomOf="@id/selected_utxos_value_textview"
tools:visibility="visible" /> tools:visibility="visible" />
<TextView <TextView
android:id="@+id/donate_label_textview" android:id="@+id/donate_label_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/donate_label"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:text="@string/donate_label"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintBottom_toTopOf="@id/amount_edittext"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/address_edittext" app:layout_constraintTop_toBottomOf="@id/address_edittext" />
app:layout_constraintBottom_toTopOf="@id/amount_edittext"/>
<ImageButton <ImageButton
android:id="@+id/paste_address_imagebutton" android:id="@+id/paste_address_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -85,10 +90,10 @@
android:id="@+id/scan_address_imagebutton" android:id="@+id/scan_address_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:layout_marginEnd="24dp"
android:src="@drawable/ic_scan" android:src="@drawable/ic_scan"
app:layout_constraintBottom_toBottomOf="@id/address_edittext" app:layout_constraintBottom_toBottomOf="@id/address_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -101,9 +106,9 @@
android:id="@+id/amount_edittext" android:id="@+id/amount_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:layout_marginStart="24dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/amount" android:hint="@string/amount"
android:inputType="numberDecimal" android:inputType="numberDecimal"
@ -116,11 +121,11 @@
android:id="@+id/sending_all_textview" android:id="@+id/sending_all_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp" android:paddingBottom="12dp"
android:text="@string/sending_all" android:text="@string/sending_all"
android:layout_marginStart="24dp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/amount_edittext" app:layout_constraintBottom_toBottomOf="@id/amount_edittext"
@ -133,9 +138,9 @@
android:id="@+id/send_max_button" android:id="@+id/send_max_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:text="@string/send_max" android:text="@string/send_max"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toBottomOf="@id/amount_edittext" app:layout_constraintBottom_toBottomOf="@id/amount_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/amount_edittext" app:layout_constraintStart_toEndOf="@id/amount_edittext"
@ -146,45 +151,48 @@
android:id="@+id/tx_fee_radiogroup_label_textview" android:id="@+id/tx_fee_radiogroup_label_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/fee_priority"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:text="@string/fee_priority"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="@id/tx_fee_radiogroup"
app:layout_constraintEnd_toStartOf="@id/tx_fee_radiogroup" app:layout_constraintEnd_toStartOf="@id/tx_fee_radiogroup"
app:layout_constraintTop_toTopOf="@id/tx_fee_radiogroup" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="@id/tx_fee_radiogroup"/> app:layout_constraintTop_toTopOf="@id/tx_fee_radiogroup" />
<RadioGroup <RadioGroup
android:id="@+id/tx_fee_radiogroup" android:id="@+id/tx_fee_radiogroup"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
app:layout_constraintTop_toBottomOf="@id/send_max_button" android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/create_tx_button" app:layout_constraintBottom_toTopOf="@id/create_tx_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tx_fee_radiogroup_label_textview" app:layout_constraintStart_toEndOf="@id/tx_fee_radiogroup_label_textview"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintTop_toBottomOf="@id/send_max_button">
<RadioButton <RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/low"
android:id="@+id/low_fee_radiobutton" android:id="@+id/low_fee_radiobutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" android:checked="true"
android:text="@string/low"
android:textSize="16sp" /> android:textSize="16sp" />
<RadioButton <RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/medium"
android:id="@+id/med_fee_radiobutton" android:id="@+id/med_fee_radiobutton"
android:checked="false"
android:textSize="16sp"/>
<RadioButton
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/high"
android:id="@+id/high_fee_radiobutton"
android:checked="false" android:checked="false"
android:text="@string/medium"
android:textSize="16sp" />
<RadioButton
android:id="@+id/high_fee_radiobutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/high"
android:textSize="16sp" /> android:textSize="16sp" />
</RadioGroup> </RadioGroup>
@ -192,10 +200,10 @@
android:id="@+id/create_tx_button" android:id="@+id/create_tx_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:text="@string/create" android:text="@string/create"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tx_fee_radiogroup_label_textview" app:layout_constraintTop_toBottomOf="@id/tx_fee_radiogroup_label_textview"
@ -207,15 +215,15 @@
android:id="@+id/address_pending_textview" android:id="@+id/address_pending_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:ellipsize="middle" android:ellipsize="middle"
android:singleLine="true" android:singleLine="true"
android:text="@string/tx_address_text" android:text="@string/tx_address_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toTopOf="@id/amount_pending_textview" app:layout_constraintBottom_toTopOf="@id/amount_pending_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -226,13 +234,13 @@
android:id="@+id/amount_pending_textview" android:id="@+id/amount_pending_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:text="@string/tx_amount_text" android:text="@string/tx_amount_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toTopOf="@id/fee_textview" app:layout_constraintBottom_toTopOf="@id/fee_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -243,13 +251,13 @@
android:id="@+id/fee_textview" android:id="@+id/fee_textview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginEnd="24dp"
android:text="@string/tx_fee_text" android:text="@string/tx_fee_text"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
app:layout_constraintBottom_toTopOf="@id/send_tx_button" app:layout_constraintBottom_toTopOf="@id/send_tx_button"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -260,13 +268,13 @@
android:id="@+id/send_tx_button" android:id="@+id/send_tx_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginBottom="16dp"
android:background="@drawable/button_bg" android:background="@drawable/button_bg"
android:text="@string/send" android:text="@string/send"
android:visibility="gone" android:visibility="gone"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fee_textview" app:layout_constraintTop_toBottomOf="@id/fee_textview"

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -20,10 +19,10 @@
android:visibility="visible" android:visibility="visible"
app:indicatorInset="0dp" app:indicatorInset="0dp"
app:indicatorSize="30dp" app:indicatorSize="30dp"
app:trackThickness="4dp" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/> app:trackThickness="4dp" />
<TextView <TextView
android:id="@+id/tvConfirmations" android:id="@+id/tvConfirmations"
@ -33,31 +32,31 @@
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:text="8" android:text="8"
android:visibility="visible" android:visibility="visible"
app:layout_constraintTop_toTopOf="@id/pbConfirmations"
app:layout_constraintBottom_toBottomOf="@id/pbConfirmations" app:layout_constraintBottom_toBottomOf="@id/pbConfirmations"
app:layout_constraintEnd_toEndOf="@id/pbConfirmations"
app:layout_constraintStart_toStartOf="@id/pbConfirmations" app:layout_constraintStart_toStartOf="@id/pbConfirmations"
app:layout_constraintEnd_toEndOf="@id/pbConfirmations"/> app:layout_constraintTop_toTopOf="@id/pbConfirmations" />
<TextView <TextView
android:id="@+id/tx_amount" android:id="@+id/tx_amount"
style="@style/MoneroText.PosAmount" style="@style/MoneroText.PosAmount"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:text="+ 999.999999"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
app:layout_constraintBottom_toTopOf="@id/tx_failed" app:layout_constraintBottom_toTopOf="@id/tx_failed"
app:layout_constraintTop_toTopOf="@id/pbConfirmations" app:layout_constraintEnd_toStartOf="@id/tx_datetime"
app:layout_constraintStart_toEndOf="@id/pbConfirmations" app:layout_constraintStart_toEndOf="@id/pbConfirmations"
app:layout_constraintEnd_toStartOf="@id/tx_datetime"/> app:layout_constraintTop_toTopOf="@id/pbConfirmations"
tools:text="+ 999.999999" />
<TextView <TextView
android:id="@+id/tx_failed" android:id="@+id/tx_failed"
style="@style/MoneroText.PosFee" style="@style/MoneroText.PosFee"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="@string/tx_list_failed_text" android:text="@string/tx_list_failed_text"
android:visibility="gone" android:visibility="gone"
android:layout_marginStart="8dp"
app:layout_constraintBottom_toBottomOf="@id/pbConfirmations" app:layout_constraintBottom_toBottomOf="@id/pbConfirmations"
app:layout_constraintStart_toEndOf="@id/pbConfirmations" app:layout_constraintStart_toEndOf="@id/pbConfirmations"
app:layout_constraintTop_toBottomOf="@id/tx_amount" /> app:layout_constraintTop_toBottomOf="@id/tx_amount" />
@ -67,8 +66,8 @@
style="@style/MoneroText.PosDate" style="@style/MoneroText.PosDate"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:text="2017-05-22 21:32" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/> tools:text="2017-05-22 21:32" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -15,48 +14,49 @@
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:hint="@string/amount" android:hint="@string/amount"
android:inputType="numberDecimal" android:inputType="numberDecimal"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/address_edittext" app:layout_constraintBottom_toTopOf="@id/address_edittext"
app:layout_constraintEnd_toStartOf="@id/paste_amount_imagebutton" app:layout_constraintEnd_toStartOf="@id/paste_amount_imagebutton"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<TextView <TextView
android:id="@+id/sending_all_textview" android:id="@+id/sending_all_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp" android:paddingBottom="12dp"
android:text="@string/sending_all" android:text="@string/sending_all"
android:layout_marginStart="24dp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" android:visibility="gone"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/address_edittext" app:layout_constraintBottom_toTopOf="@id/address_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="gone" /> tools:visibility="gone" />
<TextView <TextView
android:id="@+id/to_address_label_textview" android:id="@+id/to_address_label_textview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/to"
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:text="@string/to"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/address_edittext"
app:layout_constraintBottom_toBottomOf="@id/address_edittext" app:layout_constraintBottom_toBottomOf="@id/address_edittext"
app:layout_constraintEnd_toStartOf="@id/address_edittext"/> app:layout_constraintEnd_toStartOf="@id/address_edittext"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/address_edittext" />
<EditText <EditText
android:id="@+id/address_edittext" android:id="@+id/address_edittext"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginBottom="4dp" android:layout_marginBottom="4dp"
android:background="@drawable/edittext_bg" android:background="@drawable/edittext_bg"
android:layout_marginStart="8dp"
android:ellipsize="middle" android:ellipsize="middle"
android:hint="@string/address" android:hint="@string/address"
android:singleLine="true" android:singleLine="true"
@ -64,15 +64,16 @@
app:layout_constraintStart_toEndOf="@id/to_address_label_textview" app:layout_constraintStart_toEndOf="@id/to_address_label_textview"
app:layout_constraintTop_toBottomOf="@id/amount_edittext" app:layout_constraintTop_toBottomOf="@id/amount_edittext"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageButton <ImageButton
android:id="@+id/paste_amount_imagebutton" android:id="@+id/paste_amount_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/paste_clipboard_into_amount_field"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/paste_clipboard_into_amount_field"
android:src="@drawable/ic_content_paste_24dp" android:src="@drawable/ic_content_paste_24dp"
app:layout_constraintBottom_toBottomOf="@id/amount_edittext" app:layout_constraintBottom_toBottomOf="@id/amount_edittext"
app:layout_constraintEnd_toStartOf="@id/remove_output_imagebutton" app:layout_constraintEnd_toStartOf="@id/remove_output_imagebutton"
@ -80,15 +81,16 @@
app:layout_constraintTop_toTopOf="@id/amount_edittext" app:layout_constraintTop_toTopOf="@id/amount_edittext"
tools:ignore="SpeakableTextPresentCheck" tools:ignore="SpeakableTextPresentCheck"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageButton <ImageButton
android:id="@+id/paste_address_imagebutton" android:id="@+id/paste_address_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/paste_clipboard_into_address_field"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/paste_clipboard_into_address_field"
android:src="@drawable/ic_content_paste_24dp" android:src="@drawable/ic_content_paste_24dp"
app:layout_constraintBottom_toBottomOf="@id/address_edittext" app:layout_constraintBottom_toBottomOf="@id/address_edittext"
app:layout_constraintEnd_toStartOf="@id/scan_address_imagebutton" app:layout_constraintEnd_toStartOf="@id/scan_address_imagebutton"
@ -96,31 +98,33 @@
app:layout_constraintTop_toTopOf="@id/address_edittext" app:layout_constraintTop_toTopOf="@id/address_edittext"
tools:ignore="SpeakableTextPresentCheck" tools:ignore="SpeakableTextPresentCheck"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageButton <ImageButton
android:id="@+id/scan_address_imagebutton" android:id="@+id/scan_address_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/scan_qr_code_for_address_field"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:layout_marginEnd="24dp"
android:src="@drawable/ic_scan" android:src="@drawable/ic_scan"
android:contentDescription="@string/scan_qr_code_for_address_field"
app:layout_constraintBottom_toBottomOf="@id/address_edittext" app:layout_constraintBottom_toBottomOf="@id/address_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/paste_address_imagebutton" app:layout_constraintStart_toEndOf="@id/paste_address_imagebutton"
app:layout_constraintTop_toTopOf="@id/address_edittext" app:layout_constraintTop_toTopOf="@id/address_edittext"
tools:ignore="SpeakableTextPresentCheck" tools:ignore="SpeakableTextPresentCheck"
tools:visibility="visible" /> tools:visibility="visible" />
<ImageButton <ImageButton
android:id="@+id/remove_output_imagebutton" android:id="@+id/remove_output_imagebutton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/remove_recipient_from_transaction"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:layout_marginEnd="24dp"
android:contentDescription="@string/remove_recipient_from_transaction"
android:src="@android:drawable/ic_delete" android:src="@android:drawable/ic_delete"
app:layout_constraintBottom_toBottomOf="@id/amount_edittext" app:layout_constraintBottom_toBottomOf="@id/amount_edittext"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -1,145 +1,154 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:background="@drawable/round_bg"> android:background="@drawable/round_bg"
android:padding="12dp">
<TextView <TextView
android:id="@+id/utxo_coin_label" android:id="@+id/utxo_coin_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Coin" android:text="Coin"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@id/utxo_outpoint_textview" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/utxo_address_label" app:layout_constraintBottom_toTopOf="@id/utxo_address_label"
app:layout_constraintEnd_toStartOf="@id/utxo_outpoint_textview"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/utxo_outpoint_textview" android:id="@+id/utxo_outpoint_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Outpoint"
android:ellipsize="middle"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:textStyle="bold" android:ellipsize="middle"
android:singleLine="true"
android:text="Outpoint"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintTop_toTopOf="parent" android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/utxo_coin_label"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/utxo_address_label" app:layout_constraintBottom_toTopOf="@id/utxo_address_label"
android:singleLine="true" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/utxo_coin_label"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/utxo_address_label" android:id="@+id/utxo_address_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Address"
android:textStyle="bold"
android:textSize="20sp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:text="Address"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@id/utxo_address_textview"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/utxo_pub_key_label" app:layout_constraintBottom_toTopOf="@id/utxo_pub_key_label"
app:layout_constraintEnd_toStartOf="@id/utxo_address_textview"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/utxo_coin_label" /> app:layout_constraintTop_toBottomOf="@id/utxo_coin_label" />
<TextView <TextView
android:id="@+id/utxo_address_textview" android:id="@+id/utxo_address_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:ellipsize="middle"
android:singleLine="true"
android:text="Address" android:text="Address"
android:textSize="14sp" android:textSize="14sp"
android:ellipsize="middle"
android:layout_marginStart="8dp"
android:singleLine="true"
app:layout_constraintStart_toEndOf="@id/utxo_address_label"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/utxo_address_label" app:layout_constraintBottom_toTopOf="@id/utxo_address_label"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/utxo_address_label"
app:layout_constraintTop_toBottomOf="@id/utxo_address_label" /> app:layout_constraintTop_toBottomOf="@id/utxo_address_label" />
<TextView <TextView
android:id="@+id/utxo_pub_key_label" android:id="@+id/utxo_pub_key_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Public Key"
android:textStyle="bold"
android:textSize="20sp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:text="Public Key"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintStart_toStartOf="parent" android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@id/utxo_pub_key_textview" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/utxo_amount_label" app:layout_constraintBottom_toTopOf="@id/utxo_amount_label"
app:layout_constraintEnd_toStartOf="@id/utxo_pub_key_textview"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/utxo_address_label" /> app:layout_constraintTop_toBottomOf="@id/utxo_address_label" />
<TextView <TextView
android:id="@+id/utxo_pub_key_textview" android:id="@+id/utxo_pub_key_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Public Key" android:layout_marginStart="8dp"
android:textSize="14sp"
android:ellipsize="middle" android:ellipsize="middle"
android:singleLine="true" android:singleLine="true"
android:layout_marginStart="8dp" android:text="Public Key"
app:layout_constraintStart_toEndOf="@id/utxo_pub_key_label" android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/utxo_pub_key_label" app:layout_constraintBottom_toTopOf="@id/utxo_pub_key_label"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/utxo_pub_key_label"
app:layout_constraintTop_toBottomOf="@id/utxo_pub_key_label" /> app:layout_constraintTop_toBottomOf="@id/utxo_pub_key_label" />
<TextView <TextView
android:id="@+id/utxo_amount_label" android:id="@+id/utxo_amount_label"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Amount"
android:textStyle="bold"
android:ellipsize="middle"
android:textSize="20sp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:ellipsize="middle"
android:singleLine="true"
android:text="Amount"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintTop_toBottomOf="@id/utxo_pub_key_textview" android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/utxo_amount_textview" app:layout_constraintBottom_toTopOf="@id/utxo_amount_textview"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/utxo_global_index_label" app:layout_constraintEnd_toStartOf="@id/utxo_global_index_label"
android:singleLine="true" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/utxo_pub_key_textview" />
<TextView <TextView
android:id="@+id/utxo_amount_textview" android:id="@+id/utxo_amount_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Amount"
android:ellipsize="middle"
android:textSize="14sp"
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
app:layout_constraintTop_toBottomOf="@id/utxo_amount_label" android:ellipsize="middle"
android:singleLine="true"
android:text="Amount"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/utxo_global_index_textview" app:layout_constraintEnd_toStartOf="@id/utxo_global_index_textview"
android:singleLine="true" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/utxo_amount_label" />
<TextView <TextView
android:id="@+id/utxo_global_index_label" android:id="@+id/utxo_global_index_label"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Global Index"
android:ellipsize="middle" android:ellipsize="middle"
android:gravity="end" android:gravity="end"
android:textStyle="bold" android:singleLine="true"
android:textSize="20sp" android:text="Global Index"
android:textColor="@color/oled_addressListColor" android:textColor="@color/oled_addressListColor"
app:layout_constraintTop_toBottomOf="@id/utxo_pub_key_textview" android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/utxo_global_index_textview" app:layout_constraintBottom_toTopOf="@id/utxo_global_index_textview"
app:layout_constraintStart_toEndOf="@id/utxo_amount_label"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:singleLine="true" /> app:layout_constraintStart_toEndOf="@id/utxo_amount_label"
app:layout_constraintTop_toBottomOf="@id/utxo_pub_key_textview" />
<TextView <TextView
android:id="@+id/utxo_global_index_textview" android:id="@+id/utxo_global_index_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="999999999999"
android:ellipsize="middle" android:ellipsize="middle"
android:gravity="end" android:gravity="end"
android:singleLine="true"
android:text="999999999999"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintTop_toBottomOf="@id/utxo_global_index_label"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/utxo_amount_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:singleLine="true" /> app:layout_constraintStart_toEndOf="@id/utxo_amount_textview"
app:layout_constraintTop_toBottomOf="@id/utxo_global_index_label" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,9 +4,9 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/oled_dialogBackgroundColor"
android:fillViewport="true" android:fillViewport="true"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:background="@color/oled_dialogBackgroundColor"
android:padding="24dp"> android:padding="24dp">
@ -32,9 +32,9 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"
android:text="@string/wallet_seed_label"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:text="@string/wallet_seed_label"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/recv_monero_textview" /> app:layout_constraintTop_toBottomOf="@id/recv_monero_textview" />
@ -44,24 +44,24 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:textSize="12sp"
android:textColor="#f00"
android:text="@string/wallet_seed_desc" android:text="@string/wallet_seed_desc"
app:layout_constraintVertical_bias="0.0" android:textColor="#f00"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@id/information_textview" app:layout_constraintBottom_toTopOf="@id/information_textview"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wallet_seed_label_textview" /> app:layout_constraintTop_toBottomOf="@id/wallet_seed_label_textview"
app:layout_constraintVertical_bias="0.0" />
<TextView <TextView
android:id="@+id/wallet_seed_offset_textview" android:id="@+id/wallet_seed_offset_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:textSize="11sp"
android:textColor="#f80"
android:visibility="gone"
android:text="@string/wallet_seed_offset_desc" android:text="@string/wallet_seed_offset_desc"
android:textColor="#f80"
android:textSize="11sp"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/information_textview" /> app:layout_constraintTop_toBottomOf="@id/information_textview" />
@ -82,9 +82,9 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"
android:text="@string/wallet_viewkey_label"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:text="@string/wallet_viewkey_label"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wallet_seed_offset_textview" /> app:layout_constraintTop_toBottomOf="@id/wallet_seed_offset_textview" />
@ -94,14 +94,14 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:textSize="12sp"
android:textColor="#f80"
android:text="@string/wallet_viewkey_desc" android:text="@string/wallet_viewkey_desc"
app:layout_constraintVertical_bias="0.0" android:textColor="#f80"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@id/copy_viewkey_imagebutton"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/copy_viewkey_imagebutton" app:layout_constraintTop_toBottomOf="@id/wallet_viewkey_label_textview"
app:layout_constraintTop_toBottomOf="@id/wallet_viewkey_label_textview" /> app:layout_constraintVertical_bias="0.0" />
<TextView <TextView
android:id="@+id/viewkey_textview" android:id="@+id/viewkey_textview"
@ -109,10 +109,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/copy_viewkey_imagebutton"
app:layout_constraintEnd_toStartOf="@id/copy_viewkey_imagebutton" app:layout_constraintEnd_toStartOf="@id/copy_viewkey_imagebutton"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/copy_viewkey_imagebutton" app:layout_constraintTop_toTopOf="@id/copy_viewkey_imagebutton"
app:layout_constraintBottom_toBottomOf="@id/copy_viewkey_imagebutton"
tools:text="INFORMATION" /> tools:text="INFORMATION" />
<ImageButton <ImageButton
@ -120,26 +120,28 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/copy_wallet_s_private_view_key"
android:minWidth="48dp" android:minWidth="48dp"
android:minHeight="48dp" android:minHeight="48dp"
android:contentDescription="@string/copy_wallet_s_private_view_key"
android:src="@drawable/ic_content_copy_24dp" android:src="@drawable/ic_content_copy_24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintBottom_toTopOf="@id/wallet_restore_height_label_textview" app:layout_constraintBottom_toTopOf="@id/wallet_restore_height_label_textview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/viewkey_textview" app:layout_constraintStart_toEndOf="@id/viewkey_textview"
app:layout_constraintTop_toBottomOf="@id/wallet_viewkey_desc_textview" /> app:layout_constraintTop_toBottomOf="@id/wallet_viewkey_desc_textview"
app:layout_constraintVertical_bias="0.0" />
<TextView <TextView
android:id="@+id/wallet_restore_height_label_textview" android:id="@+id/wallet_restore_height_label_textview"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/wallet_restore_height_label"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:text="@string/wallet_restore_height_label"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/copy_viewkey_imagebutton" /> app:layout_constraintTop_toBottomOf="@id/copy_viewkey_imagebutton" />
<TextView <TextView
android:id="@+id/restore_height_textview" android:id="@+id/restore_height_textview"
android:layout_width="0dp" android:layout_width="0dp"

View File

@ -11,20 +11,16 @@
tools:layout="@layout/fragment_home"> tools:layout="@layout/fragment_home">
<action <action
android:id="@+id/nav_to_settings" android:id="@+id/nav_to_settings"
app:destination="@id/settings_fragment"> app:destination="@id/settings_fragment"></action>
</action>
<action <action
android:id="@+id/nav_to_receive" android:id="@+id/nav_to_receive"
app:destination="@id/receive_fragment"> app:destination="@id/receive_fragment"></action>
</action>
<action <action
android:id="@+id/nav_to_send" android:id="@+id/nav_to_send"
app:destination="@id/send_fragment"> app:destination="@id/send_fragment"></action>
</action>
<action <action
android:id="@+id/nav_to_onboarding" android:id="@+id/nav_to_onboarding"
app:destination="@id/onboarding_fragment"> app:destination="@id/onboarding_fragment"></action>
</action>
<action <action
android:id="@+id/nav_to_transaction" android:id="@+id/nav_to_transaction"
app:destination="@id/transaction_fragment"> app:destination="@id/transaction_fragment">
@ -41,21 +37,18 @@
tools:layout="@layout/fragment_settings"> tools:layout="@layout/fragment_settings">
<action <action
android:id="@+id/nav_to_utxos" android:id="@+id/nav_to_utxos"
app:destination="@id/utxos_fragment"> app:destination="@id/utxos_fragment"></action>
</action>
</fragment> </fragment>
<fragment <fragment
android:id="@+id/send_fragment" android:id="@+id/send_fragment"
android:name="net.mynero.wallet.fragment.send.SendFragment" android:name="net.mynero.wallet.fragment.send.SendFragment"
android:label="fragment_send_amount" android:label="fragment_send_amount"
tools:layout="@layout/fragment_send"> tools:layout="@layout/fragment_send"></fragment>
</fragment>
<fragment <fragment
android:id="@+id/receive_fragment" android:id="@+id/receive_fragment"
android:name="net.mynero.wallet.fragment.receive.ReceiveFragment" android:name="net.mynero.wallet.fragment.receive.ReceiveFragment"
android:label="fragment_send_amount" android:label="fragment_send_amount"
tools:layout="@layout/fragment_receive"> tools:layout="@layout/fragment_receive"></fragment>
</fragment>
<fragment <fragment
android:id="@+id/utxos_fragment" android:id="@+id/utxos_fragment"
android:name="net.mynero.wallet.fragment.utxos.UtxosFragment" android:name="net.mynero.wallet.fragment.utxos.UtxosFragment"
@ -68,8 +61,7 @@
tools:layout="@layout/fragment_onboarding"> tools:layout="@layout/fragment_onboarding">
<action <action
android:id="@+id/nav_to_home" android:id="@+id/nav_to_home"
app:destination="@id/main_fragment"> app:destination="@id/main_fragment"></action>
</action>
</fragment> </fragment>
<fragment <fragment
android:id="@+id/transaction_fragment" android:id="@+id/transaction_fragment"

View File

@ -80,10 +80,8 @@
<string name="node_port_hint">18081</string> <string name="node_port_hint">18081</string>
<string name="node_username_hint">Username (optional)</string> <string name="node_username_hint">Username (optional)</string>
<string name="node_password_hint">Passphrase</string> <string name="node_password_hint">Passphrase</string>
<string name="transaction">Transaction</string>
<string name="transaction_action_sent">You sent</string> <string name="transaction_action_sent">You sent</string>
<string name="transaction_action_recv">You received</string> <string name="transaction_action_recv">You received</string>
<string name="amount_label">Amount</string>
<string name="tx_amount_no_prefix">%1$s XMR</string> <string name="tx_amount_no_prefix">%1$s XMR</string>
<string name="tx_amount_no_prefix2">999.99999999999</string> <string name="tx_amount_no_prefix2">999.99999999999</string>
<string name="wallet_proxy_address_hint">127.0.0.1</string> <string name="wallet_proxy_address_hint">127.0.0.1</string>
@ -91,27 +89,21 @@
<string name="no_history_loading">Loading your wallet…</string> <string name="no_history_loading">Loading your wallet…</string>
<string name="no_history_nget_some_monero_in_here">No transactions to display.\nAcquire coins by doing jobs, selling products, mining it, or buying some peer-to-peer.</string> <string name="no_history_nget_some_monero_in_here">No transactions to display.\nAcquire coins by doing jobs, selling products, mining it, or buying some peer-to-peer.</string>
<string name="node_button_text">Node: %1$s</string> <string name="node_button_text">Node: %1$s</string>
<string name="connected">Connected</string>
<string name="disconnected">Disconnected</string>
<string name="version_mismatch">Version mismatch</string>
<string name="transaction_hash">Transaction Hash</string> <string name="transaction_hash">Transaction Hash</string>
<string name="transaction_hash_desc">in a transaction with id</string> <string name="transaction_hash_desc">in a transaction with id</string>
<string name="transaction_destination">Destination</string> <string name="transaction_destination">Destination</string>
<string name="transaction_destination_desc">to address</string> <string name="transaction_destination_desc">to address</string>
<string name="confirmations">Confirmations</string>
<string name="transaction_conf_desc">It has been confirmed</string> <string name="transaction_conf_desc">It has been confirmed</string>
<string name="transaction_conf_desc2_confirmed">times, and was mined in block</string> <string name="transaction_conf_desc2_confirmed">times, and was mined in block</string>
<string name="transaction_conf_desc2_unconfirmed">times, and is currently in the mempool</string> <string name="transaction_conf_desc2_unconfirmed">times, and is currently in the mempool</string>
<string name="transaction_conf_1_desc2_confirmed">time, and was mined in block</string> <string name="transaction_conf_1_desc2_confirmed">time, and was mined in block</string>
<string name="date">Date</string>
<string name="transaction_on_date_label">on</string> <string name="transaction_on_date_label">on</string>
<string name="node_selecting">Selecting node…</string>
<string name="node_selected">Using node: %1$s</string> <string name="node_selected">Using node: %1$s</string>
<string name="fee_priority">Fee priority:</string> <string name="fee_priority">Fee priority:</string>
<string name="low">Low</string> <string name="low">Low</string>
<string name="medium">Medium</string> <string name="medium">Medium</string>
<string name="high">High</string> <string name="high">High</string>
<string name="view_utxos">View outputs</string> <string name="view_utxos">View coins</string>
<string name="selected_utxos_value">Selected value: %1$s XMR</string> <string name="selected_utxos_value">Selected value: %1$s XMR</string>
<string name="selected_utxos_value_churning">Selected value: %1$s XMR\n\nThe anonymity benefits of churning are still being researched. Only proceed if you know what you are doing.</string> <string name="selected_utxos_value_churning">Selected value: %1$s XMR\n\nThe anonymity benefits of churning are still being researched. Only proceed if you know what you are doing.</string>
<string name="global_index_text">%1$d</string> <string name="global_index_text">%1$d</string>
@ -133,7 +125,6 @@
<string name="wallet_viewkey_label">Private view-key</string> <string name="wallet_viewkey_label">Private view-key</string>
<string name="wallet_viewkey_desc">Anyone with your private view-key can see all incoming transactions!</string> <string name="wallet_viewkey_desc">Anyone with your private view-key can see all incoming transactions!</string>
<string name="wallet_restore_height_label">Restore height</string> <string name="wallet_restore_height_label">Restore height</string>
<string name="block_height">Block Height</string>
<string name="use_password_as_seed_offset">Use passphrase as seed offset</string> <string name="use_password_as_seed_offset">Use passphrase as seed offset</string>
<string name="trusted_daemon">Trusted daemon</string> <string name="trusted_daemon">Trusted daemon</string>
<string name="use_bundled_tor">Let Mysu start and manage a Tor daemon</string> <string name="use_bundled_tor">Let Mysu start and manage a Tor daemon</string>