1
mirror of https://github.com/m2049r/xmrwallet synced 2025-09-03 08:23:04 +02:00

Compare commits

...

8 Commits

Author SHA1 Message Date
m2049r
a56a29a6c4 bump version 2021-05-02 10:36:52 +02:00
m2049r
4e31f47482 new logo (#764) 2021-05-02 09:56:26 +02:00
m2049r
c1f14f9653 update gradle & deps & bump version (#760) 2021-04-25 18:24:30 +02:00
m2049r
2746c52d7b confirm checkboxes for delete confirmation dialogs (#759) 2021-04-25 14:26:46 +02:00
Baltsar
5df323bacb Update Swedish strings.xml (#754) 2021-04-23 23:32:31 +02:00
m2049r
776cc26377 refactor magic number (#756) 2021-04-23 08:57:08 +02:00
m2049r
bdfb6a90b6 update & clean build (#755) 2021-04-22 20:17:02 +02:00
m2049r
6db44dfab1 cleanup backup code (#753) 2021-04-21 19:54:20 +02:00
45 changed files with 470 additions and 365 deletions

View File

@@ -3,12 +3,13 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion '29.0.3'
ndkVersion '17.2.4988734'
defaultConfig {
applicationId "com.m2049r.xmrwallet"
minSdkVersion 21
targetSdkVersion 30
versionCode 1003
versionName "2.0.3 'Puginarug'"
versionCode 1005
versionName "2.0.5 'Puginarug'"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
@@ -130,7 +131,7 @@ dependencies {
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
implementation "com.squareup.okhttp3:okhttp:4.9.0"
implementation "com.burgstaller:okhttp-digest:2.1"
implementation "io.github.rburgst:okhttp-digest:2.5"
implementation "com.jakewharton.timber:timber:4.7.1"
implementation 'com.nulab-inc:zxcvbn:1.3.0'

View File

@@ -44,6 +44,7 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.checkbox.MaterialCheckBox;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.m2049r.xmrwallet.data.DefaultNodes;
import com.m2049r.xmrwallet.data.Node;
@@ -474,6 +475,7 @@ public class LoginActivity extends BaseActivity
@Override
public void onWalletBackup(String walletName) {
Timber.d("backup for wallet ." + walletName + ".");
// overwrite any pending backup request
zipBackup = new ZipBackup(this, walletName);
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
@@ -500,14 +502,18 @@ public class LoginActivity extends BaseActivity
if (data == null) {
// nothing selected
Toast.makeText(this, getString(R.string.backup_failed), Toast.LENGTH_LONG).show();
zipBackup = null;
return;
}
try {
if (zipBackup == null) return; // ignore unsolicited request
zipBackup.writeTo(data.getData());
Toast.makeText(this, getString(R.string.backup_success), Toast.LENGTH_SHORT).show();
} catch (IOException ex) {
Timber.e(ex);
Toast.makeText(this, getString(R.string.backup_failed), Toast.LENGTH_LONG).show();
} finally {
zipBackup = null;
}
} else if (requestCode == RESTORE_BACKUP_INTENT) {
if (data == null) {
@@ -549,12 +555,18 @@ public class LoginActivity extends BaseActivity
}
};
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(getString(R.string.delete_alert_message))
final AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
final AlertDialog confirm = builder.setMessage(getString(R.string.delete_alert_message))
.setTitle(walletName)
.setPositiveButton(getString(R.string.delete_alert_yes), dialogClickListener)
.setNegativeButton(getString(R.string.delete_alert_no), dialogClickListener)
.setView(View.inflate(builder.getContext(), R.layout.checkbox_confirm, null))
.show();
confirm.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);
final MaterialCheckBox checkBox = confirm.findViewById(R.id.checkbox);
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
confirm.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(isChecked);
});
}
@Override
@@ -574,12 +586,18 @@ public class LoginActivity extends BaseActivity
}
};
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(getString(R.string.deletecache_alert_message, walletName))
final AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
final AlertDialog confirm = builder.setMessage(getString(R.string.deletecache_alert_message))
.setTitle(walletName)
.setPositiveButton(getString(R.string.delete_alert_yes), dialogClickListener)
.setNegativeButton(getString(R.string.delete_alert_no), dialogClickListener)
.setView(View.inflate(builder.getContext(), R.layout.checkbox_confirm, null))
.show();
confirm.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);
final MaterialCheckBox checkBox = confirm.findViewById(R.id.checkbox);
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
confirm.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(isChecked);
});
}
void reloadWalletList() {

View File

@@ -21,6 +21,7 @@ import android.os.Parcelable;
import com.m2049r.xmrwallet.model.PendingTransaction;
import com.m2049r.xmrwallet.model.Wallet;
import com.m2049r.xmrwallet.util.Helper;
// https://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents
public class TxData implements Parcelable {
@@ -54,7 +55,7 @@ public class TxData implements Parcelable {
}
public double getAmountAsDouble() {
return 1.0 * amount / 1000000000000L;
return 1.0 * amount / Helper.ONE_XMR;
}
public int getMixin() {

View File

@@ -139,7 +139,7 @@ public class SendAmountWizardFragment extends SendWizardFragment {
Timber.d("onResumeFragment()");
Helper.showKeyboard(getActivity());
final long funds = getTotalFunds();
maxFunds = 1.0 * funds / 1000000000000L;
maxFunds = 1.0 * funds / Helper.ONE_XMR;
if (!sendListener.getActivityCallback().isStreetMode()) {
tvFunds.setText(getString(R.string.send_available,
Wallet.getDisplayAmount(funds)));

View File

@@ -34,6 +34,7 @@ import com.m2049r.xmrwallet.service.shift.ShiftException;
import com.m2049r.xmrwallet.service.shift.sideshift.api.QueryOrderParameters;
import com.m2049r.xmrwallet.service.shift.sideshift.api.SideShiftApi;
import com.m2049r.xmrwallet.service.shift.sideshift.network.SideShiftApiImpl;
import com.m2049r.xmrwallet.util.Helper;
import com.m2049r.xmrwallet.util.OkHttpHelper;
import com.m2049r.xmrwallet.util.ServiceHelper;
import com.m2049r.xmrwallet.widget.ExchangeOtherEditText;
@@ -179,7 +180,7 @@ public class SendBtcAmountWizardFragment extends SendWizardFragment {
tvXmrToParms.setText(xmrParmText);
final long funds = getTotalFunds();
double availableXmr = 1.0 * funds / 1000000000000L;
double availableXmr = 1.0 * funds / Helper.ONE_XMR;
String availBtcString;
String availXmrString;

View File

@@ -81,6 +81,7 @@ public class Helper {
static public final String BASE_CRYPTO = Crypto.XMR.getSymbol();
static public final int XMR_DECIMALS = 12;
static public final long ONE_XMR = Math.round(Math.pow(10, Helper.XMR_DECIMALS));
static public final boolean SHOW_EXCHANGERATES = true;
static public final boolean ALLOW_SHIFT = true;

View File

@@ -349,11 +349,13 @@ public class ExchangeEditText extends LinearLayout {
}
}
private static final String CLEAN_FORMAT = "%." + Helper.XMR_DECIMALS + "f";
private String getCleanAmountString(String enteredAmount) {
try {
double amount = Double.parseDouble(enteredAmount);
if (amount >= 0) {
return String.format(Locale.US, "%,.12f", amount);
return String.format(Locale.US, CLEAN_FORMAT, amount);
} else {
return null;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,13 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:paddingEnd="16dp"
android:text="@string/onboarding_agree" />
</FrameLayout>

View File

@@ -22,6 +22,8 @@
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="-8dp"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:src="@drawable/ic_logo_horizontol_xmrujo"
android:visibility="visible" />

View File

@@ -417,7 +417,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -266,7 +266,7 @@
<string name="details_alert_no">Nein, doch nicht!</string>
<string name="details_title">Details</string>
<string name="delete_alert_message">Das Wallet wird gelöscht!</string>
<string name="delete_alert_message">Das Wallet wird gelöscht. Dein Geld wird für immer verloren sein, außer wenn Du den Seed oder ein funktionierendes Backup hast um es wiederherzustellen.</string>
<string name="delete_alert_yes">Ja, mach das!</string>
<string name="delete_alert_no">Nein, danke!</string>

View File

@@ -419,7 +419,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -419,7 +419,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -207,7 +207,7 @@
<string name="details_alert_no">¡Llévame de vuelta!</string>
<string name="details_title">Detalles</string>
<string name="delete_alert_message">¡El monedero será borrado!</string>
<string name="delete_alert_message">Este monedero será borrado. Tus fondos se irán para siempre a menos que tengas tu semilla o una copia de seguridad funcional para recuperarlo.</string>
<string name="delete_alert_yes">¡Sí, hazlo!</string>
<string name="delete_alert_no">¡No, gracias!</string>

View File

@@ -417,7 +417,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -267,7 +267,7 @@
<string name="details_alert_no">Non merci !</string>
<string name="details_title">Détails</string>
<string name="delete_alert_message">Le portefeuille sera supprimé !</string>
<string name="delete_alert_message">Ce portefeuille sera supprimé. Vos fonds seront perdus à jamais, sauf si vous disposez de votre semence ou d\'une sauvegarde fonctionnelle pour les récupérer.</string>
<string name="delete_alert_yes">Oui, procéder !</string>
<string name="delete_alert_no">Non merci !</string>

View File

@@ -421,7 +421,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -266,7 +266,7 @@
<string name="details_alert_no">Torna indietro!</string>
<string name="details_title">Dettagli</string>
<string name="delete_alert_message">Il portafoglio verrà eliminato!</string>
<string name="delete_alert_message">Questo portafoglio sarà cancellato. I tuoi fondi saranno andati per sempre a meno che tu non abbia il tuo seme o un backup funzionante per recuperarli.</string>
<string name="delete_alert_yes">Sì, procedi!</string>
<string name="delete_alert_no">No grazie!</string>
@@ -366,7 +366,7 @@
<string name="menu_rescan">Rescan!</string>
<string name="onboarding_agree">I get it!</string>
<string name="onboarding_agree">Ho capito!</string>
<string name="onboarding_button_next">Next</string>
<string name="onboarding_button_ready">I\'m ready!</string>

View File

@@ -422,7 +422,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -419,7 +419,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -261,7 +261,7 @@
<string name="details_alert_no">Ga terug!</string>
<string name="details_title">Details</string>
<string name="delete_alert_message">Er wordt de portemonnee verwijderd!</string>
<string name="delete_alert_message">Deze portemonnee zal worden verwijderd. Uw geld zal voor altijd weg zijn, tenzij u uw zaad of een werkende back-up hebt om het te herstellen.</string>
<string name="delete_alert_yes">Ja, doe dat!</string>
<string name="delete_alert_no">Nee, niet doen!</string>

View File

@@ -411,7 +411,7 @@
<string name="subaddress_select_label">Selecione um subendereço</string>
<string name="subaddress_details_hint">Toque e segure para mais detalhes</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -423,7 +423,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -419,7 +419,7 @@
<string name="subaddress_select_label">Selectează o subadresă</string>
<string name="subaddress_details_hint">Atinge lung pentru detalii</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

View File

@@ -265,7 +265,7 @@
<string name="details_alert_no">Верните меня обратно!</string>
<string name="details_title">Подробная информация</string>
<string name="delete_alert_message">Этот кошелек будет удален!</string>
<string name="delete_alert_message">Этот кошелек будет удален. Твои деньги исчезнут навсегда, если у тебя нет сид-фразы или рабочей резервной копии для их восстановления.</string>
<string name="delete_alert_yes">Да, сделай это!</string>
<string name="delete_alert_no">Нет, спасибо!</string>

View File

@@ -262,7 +262,7 @@
<string name="details_alert_no">Naspäť!</string>
<string name="details_title">Detaily</string>
<string name="delete_alert_message">Peňaženka bude zmazaná!</string>
<string name="delete_alert_message">Táto peňaženka bude zmazaná. Vaše finančné prostriedky budú navždy preč, pokiaľ nemáte svoj seed alebo funkčnú zálohu na ich obnovenie.</string>
<string name="delete_alert_yes">Áno, poďme na to!</string>
<string name="delete_alert_no">Nie, díky!</string>

View File

@@ -272,7 +272,7 @@
<string name="details_alert_no">Vrati me nazad!</string>
<string name="details_title">Detalji</string>
<string name="delete_alert_message">Novčanik će biti obrisan!</string>
<string name="delete_alert_message">Ovaj novčanik e biti obrisan. Vaša sredstva će zauvek nestati ako nemate svoje seme ili ispravnu rezervnu kopiju da biste ih vratili.</string>
<string name="delete_alert_yes">Da, uradi to!</string>
<string name="delete_alert_no">Ne, hvala!</string>

View File

@@ -308,85 +308,85 @@
<string name="status_wallet_connect_wrongversion">Node version incompatible - please upgrade!</string>
<string name="menu_info">Detaljer</string><!--Changed to: Show Secrets!-->
<string name="menu_streetmode">Street Mode</string>
<string name="menu_streetmode">Gatu Mode</string>
<string name="info_nodes_enabled">Node-o-matiC enabled, tap for more info.</string>
<string name="node_height">Last block updated: %1$s</string>
<string name="label_nodes">Nodes</string>
<string name="node_name_hint">Node Name (Optional)</string>
<string name="node_address_hint">Hostname</string>
<string name="info_nodes_enabled">Node-o-matiC aktiverad, tryck för mer info.</string>
<string name="node_height">Senaste blocket uppdaterat: %1$s</string>
<string name="label_nodes">Noder</string>
<string name="node_name_hint">Node Namn (Frivillig)</string>
<string name="node_address_hint">Värdnamn</string>
<string name="node_port_hint">Port</string>
<string name="node_user_hint">Username (Optional)</string>
<string name="node_pass_hint">Password (Optional)</string>
<string name="node_host_unresolved">Cannot resolve host</string>
<string name="node_host_empty">We need this!</string>
<string name="node_port_numeric">Must be numeric</string>
<string name="node_port_range">Must be 1&#8211;65535</string>
<string name="node_fab_add">Add Node</string>
<string name="node_refresh_hint">Touch to refresh!</string>
<string name="node_test_error">CONNECTION ERROR %1$d</string>
<string name="node_general_error">CONNECTION ERROR</string>
<string name="node_auth_error">AUTHENTICATION FAILED</string>
<string name="node_result_label">Test Result:</string>
<string name="node_user_hint">Användare (Frivillig)</string>
<string name="node_pass_hint">Lösenord (Frivillig)</string>
<string name="node_host_unresolved">Det går inte att lösa värden</string>
<string name="node_host_empty">Vi behöver det här!</string>
<string name="node_port_numeric">Måste vara numeriskt</string>
<string name="node_port_range">Måste vara 1&#8211;65535</string>
<string name="node_fab_add">Addera nod</string>
<string name="node_refresh_hint">Tryck för att uppdatera!</string>
<string name="node_test_error">ANSLUTNINGSFEL %1$d</string>
<string name="node_general_error">ANSLUTNINGSFEL</string>
<string name="node_auth_error">AUTENTISERING MISSLYCKADES</string>
<string name="node_result_label">Test result:</string>
<string name="node_result">Height: %1$s (v%2$d), Ping: %3$.0fms, IP: %4$s</string>
<string name="node_testing">Testing IP: %1$s &#8230;</string>
<string name="node_refresh_wait">Please wait for scan to finish</string>
<string name="node_create_hint">Touch to select or add nodes</string>
<string name="node_pull_hint">Add nodes manually or pull down to scan</string>
<string name="node_scanning">Scanning network&#8230;</string>
<string name="node_nobookmark">Automatically bookmarked best %1$d nodes</string>
<string name="label_test">Test</string><!--note: as in "Test a network connection"-->
<string name="node_testing">Testar IP: %1$s &#8230;</string>
<string name="node_refresh_wait">Vänta tills scanningen är klar</string>
<string name="node_create_hint">Tryck för att välja eller addera nod</string>
<string name="node_pull_hint">Addera nod manuellt eller dra ner för att scanna</string>
<string name="node_scanning">Scannar nätverket&#8230;</string>
<string name="node_nobookmark">Automatiskt bokmärk bäst %1$d noder</string>
<string name="label_test">Testa</string><!--note: as in "Test a network connection"-->
<!-- please verify this means "Receiver" or "Recipient" as in "Receiver in the transaction" -->
<string name="send_address_hint">Mottagaren</string>
<string name="street_sweep_amount">EVERYTHING!</string> <!-- as in: "everything in the account" = "all the money" -->
<string name="street_sweep_amount">SKICKA ALLT</string> <!-- as in: "everything in the account" = "all the money" -->
<string name="menu_ledger_seed">Convert Ledger Seed</string>
<string name="menu_ledger_seed">Konvertera Ledger Seed</string>
<string name="prompt_ledger_seed">Ledger Seed Words</string>
<string name="prompt_ledger_phrase">Ledger Passphrase (optional)</string>
<string name="bad_ledger_seed">Invalid Ledger Seed!</string>
<string name="prompt_ledger_seed_warn">Entering your Ledger Seed here is a major security risk!</string>
<string name="prompt_ledger_phrase">Ledger lösenfras (frivillig)</string>
<string name="bad_ledger_seed">Ogilitigt Ledger Seed!</string>
<string name="prompt_ledger_seed_warn">Att ange din Ledger Seed här är en stor säkerhetsrisk!</string>
<string name="label_restoreheight">Återställningshöjd</string> <!-- Restore Height -->
<string name="toast_ledger_start_app">Start Monero App on %1$s</string>
<string name="toast_ledger_start_app">Starta Monero app %1$s</string>
<string name="menu_rescan">Rescan!</string>
<string name="menu_rescan">Skanna om!</string>
<string name="onboarding_agree">I get it!</string>
<string name="onboarding_button_next">Next</string>
<string name="onboarding_button_ready">I\'m ready!</string>
<string name="onboarding_agree">Jag förstår!</string>
<string name="onboarding_button_next">Nästa</string>
<string name="onboarding_button_ready">Jag är redo!</string>
<string name="onboarding_welcome_title">Welcome to Monerujo!</string>
<string name="onboarding_welcome_information">This app allows you to create and use Monero wallets. You can store your sweet moneroj in them.</string>
<string name="onboarding_seed_title">Keep your seed safe</string>
<string name="onboarding_seed_information">The seed grants full access to whoever has it. If you lose it, we cannot help you recover it and you lose your beloved moneroj.</string>
<string name="onboarding_xmrto_title">Send Crypto</string>
<string name="onboarding_xmrto_information">Monerujo has SideShift.ai support built-in. Just paste or scan a BTC, LTC, ETH, DASH or DOGE address and you\'ll be sending these cryptos by spending XMR.</string>
<string name="onboarding_nodes_title">Nodes, your way</string>
<string name="onboarding_nodes_information">Nodes connect you to the Monero network. Choose between public nodes or go full cypherpunk using your own.</string>
<string name="onboarding_fpsend_title">Send with fingerprint</string>
<string name="onboarding_fpsend_information">You\'re now able to send XMR with just your fingerprint if you enabled it. To request the password, just disable fingerprint access.</string>
<string name="onboarding_welcome_title">Välkommen till Monerujo!</string>
<string name="onboarding_welcome_information">Denna app tillåter dig att skapa och använda Monero plånböcker. Du kan förvara dina kära moneroj i dem.</string>
<string name="onboarding_seed_title">Håll dina seed i säkert förvar.</string>
<string name="onboarding_seed_information">Seed ger full åtkomst till den som har den. Om du förlorar det, kan vi inte hjälpa dig och du förlorar dina kära moneroj.</string>
<string name="onboarding_xmrto_title">Skicka krypto</string>
<string name="onboarding_xmrto_information">Monerujo har SideShift.ai support inbyggt. Bara klistra in eller scanna en BTC, LTC, ETH, DASH or DOGE address och du skickar dessa krypto genom att spendera XMR.</string>
<string name="onboarding_nodes_title">Noder, på ditt sätt.</string>
<string name="onboarding_nodes_information">Noder ansluter dig till Monero-nätverket. Välj mellan offentliga noder eller gå all-in "cypherpunk" med din egen.</string>
<string name="onboarding_fpsend_title">Skicka med fingeravtryck</string>
<string name="onboarding_fpsend_information">Du kan nu skicka XMR med bara ditt fingeravtryck om du aktiverar det. För att begära lösenordet, inaktivera bara fingeravtrycksåtkomst.</string>
<string name="menu_daynight">Dark Mode</string>
<string-array name="daynight_themes">
<item>Auto</item>
<item>Day</item>
<item>Night</item>
<item>Dag</item>
<item>Natt</item>
</string-array>
<string name="gunther_says">There is nothing here\nPlease create or restore a wallet</string>
<string name="gunther_says">Det finns inget här\nSkapa eller återställ en plånbok</string>
<string name="menu_default_nodes">Restore default nodes</string>
<string name="toast_default_nodes">Restoring already in progress…</string>
<string name="menu_default_nodes">Återställ standardnoder</string>
<string name="toast_default_nodes">Återställer redan pågående ...</string>
<string name="node_updated_now">Last Block: %1$d seconds ago</string>
<string name="node_updated_mins">Last Block: %1$d minutes ago</string>
<string name="node_updated_hours">Last Block: %1$d hours ago</string>
<string name="node_updated_days">Last Block: %1$d days ago</string>
<string name="node_updated_now">Senaste Block: %1$d sekunder sen</string>
<string name="node_updated_mins">Senaste Block: %1$d minuter sen</string>
<string name="node_updated_hours">Senaste Block: %1$d timmar sen</string>
<string name="node_updated_days">Senaste Block: %1$d dagar sen</string>
<string name="shift_noquote">Cannot get quote</string>
<string name="shift_checkamount">Check amount and try again</string>
<string name="shift_noquote">Kan inte få offert</string>
<string name="shift_checkamount">Kontrollera beloppet och försök igen</string>
<string name="info_xmrto_ambiguous"><![CDATA[
<b>Ambiguous address.</b><br/>
@@ -402,22 +402,22 @@
<b>Please enter or scan a Monero address.</b>
]]></string>
<string name="subbaddress_title">Subaddresses</string>
<string name="subbaddress_name_hint">Subaddress Name</string>
<string name="max_subaddress_warning">Too many unused addresses - use some to enable creating more!</string>
<string name="max_account_warning">Too many unused accounts - use some to enable creating more!</string>
<string name="subaddress_tx_label">Transactions for this subaddress:</string>
<string name="subaddress_notx_label">No transactions for this subaddress yet</string>
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="subbaddress_title">Subaddresser</string>
<string name="subbaddress_name_hint">Subaddresser namn</string>
<string name="max_subaddress_warning">För många oanvända adresser - använd några för att skapa flera!</string>
<string name="max_account_warning">För många oanvända adresser - använd några för att skapa flera!</string>
<string name="subaddress_tx_label">Transaktioner för denna subadress:</string>
<string name="subaddress_notx_label">Inga transaktioner för denna subadress ännu</string>
<string name="subaddress_select_label">Välj en subadress</string>
<string name="subaddress_details_hint">Tryck länge för mer detaljerad info</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>
<string name="delete_alert_message">Denna plånbok kommer att raderas. Dina pengar kommer att vara borta för alltid om du inte har din seed eller en fungerande säkerhetskopia för att återställa dem.</string>
<string name="menu_delete">Förstöra</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Förstöringen misslyckades!</string>
<string name="menu_restore">Import wallet</string>
<string name="restore_failed">Import failed!</string>
<string name="menu_restore">Importera plånbok</string>
<string name="restore_failed">Importeringen misslyckad!</string>
<string name="menu_deletecache">Reset wallet!</string>
<string name="deletecache_alert_message">This wallet will be reset, losing all off-chain data (like notes, account &amp; subaddress names, private transaction keys, ...)! Use this ONLY if this wallet is corrupt and does not load!</string>
<string name="menu_deletecache">Återställ plånbok!</string>
<string name="deletecache_alert_message">Denna plånbok kommer att återställas och förlorar all off-chain data (som anteckningar, konto- och subadresser, privata transaktionsnycklar, ...)! Använd ENDAST detta om den här plånboken är skadad och inte laddas!</string>
</resources>

View File

@@ -265,7 +265,7 @@
<string name="details_alert_no">Поверніть мене назад!</string>
<string name="details_title">Детальна інформація</string>
<string name="delete_alert_message">Цей гаманець буде знищено!</string>
<string name="delete_alert_message">Цей гаманець буде знищено. Ваші кошти назавжди зникнуть, якщо у вас немає насіння або діючої резервної копії для його відновлення. </string>
<string name="delete_alert_yes">Так, зроби це!</string>
<string name="delete_alert_no">Ні, дякую!</string>

View File

@@ -343,7 +343,7 @@
<string name="subaddress_select_label">Select a subaddress</string>
<string name="subaddress_details_hint">Long-press for details</string>
<string name="delete_alert_message">This wallet will be deleted!</string>
<string name="delete_alert_message">This wallet will be deleted. Your funds will be gone forever unless you have your seed or a working backup to recover it.</string>
<string name="menu_delete">Delete</string><!-- like: "Delete wallet!" -->
<string name="delete_failed">Delete failed!</string>

Some files were not shown because too many files have changed in this diff Show More