mirror of https://github.com/m2049r/xmrwallet.git
commit
3f09e73df7
|
@ -1,4 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.4.1)
|
cmake_minimum_required(VERSION 3.4.1)
|
||||||
|
project(monerujo)
|
||||||
message(STATUS ABI_INFO = ${ANDROID_ABI})
|
message(STATUS ABI_INFO = ${ANDROID_ABI})
|
||||||
|
|
||||||
add_library( monerujo
|
add_library( monerujo
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 31
|
compileSdkVersion 33
|
||||||
buildToolsVersion '30.0.3'
|
buildToolsVersion '33.0.2'
|
||||||
ndkVersion '17.2.4988734'
|
ndkVersion '17.2.4988734'
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.m2049r.xmrwallet"
|
applicationId "com.m2049r.xmrwallet"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode 3100
|
versionCode 3130
|
||||||
versionName "3.1.0 'Fluorine Fermi'"
|
versionName "3.1.3 'Fluorine Fermi'"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
|
@ -121,16 +121,18 @@ static def getId(name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'androidx.core:core:1.7.0'
|
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
|
||||||
implementation 'androidx.appcompat:appcompat:1.4.1'
|
|
||||||
|
implementation 'androidx.core:core:1.10.0'
|
||||||
|
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
implementation 'androidx.recyclerview:recyclerview:1.3.0'
|
||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||||
implementation 'androidx.preference:preference:1.2.0'
|
implementation 'androidx.preference:preference:1.2.0'
|
||||||
|
|
||||||
implementation 'com.google.android.material:material:1.6.0'
|
implementation 'com.google.android.material:material:1.8.0'
|
||||||
|
|
||||||
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
||||||
implementation "com.squareup.okhttp3:okhttp:4.9.3"
|
implementation "com.squareup.okhttp3:okhttp:4.9.3"
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
||||||
<uses-permission android:name="android.permission.NFC" />
|
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
|
||||||
<queries>
|
<queries>
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
package com.btchip.comm;
|
package com.btchip.comm;
|
||||||
|
|
||||||
import com.btchip.BTChipException;
|
|
||||||
|
|
||||||
public interface BTChipTransport {
|
public interface BTChipTransport {
|
||||||
byte[] exchange(byte[] command);
|
byte[] exchange(byte[] command);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ import android.hardware.usb.UsbInterface;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.hardware.usb.UsbRequest;
|
import android.hardware.usb.UsbRequest;
|
||||||
|
|
||||||
import com.btchip.BTChipException;
|
|
||||||
import com.btchip.comm.BTChipTransport;
|
import com.btchip.comm.BTChipTransport;
|
||||||
import com.btchip.comm.LedgerHelper;
|
import com.btchip.comm.LedgerHelper;
|
||||||
import com.btchip.utils.Dump;
|
import com.btchip.utils.Dump;
|
||||||
|
|
|
@ -16,36 +16,18 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.app.PendingIntent;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.nfc.FormatException;
|
|
||||||
import android.nfc.NdefMessage;
|
|
||||||
import android.nfc.NdefRecord;
|
|
||||||
import android.nfc.NfcAdapter;
|
|
||||||
import android.nfc.Tag;
|
|
||||||
import android.nfc.tech.Ndef;
|
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import androidx.annotation.CallSuper;
|
import androidx.annotation.CallSuper;
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.data.BarcodeData;
|
import com.m2049r.xmrwallet.data.BarcodeData;
|
||||||
import com.m2049r.xmrwallet.dialog.ProgressDialog;
|
import com.m2049r.xmrwallet.dialog.ProgressDialog;
|
||||||
import com.m2049r.xmrwallet.fragment.send.SendFragment;
|
|
||||||
import com.m2049r.xmrwallet.ledger.Ledger;
|
import com.m2049r.xmrwallet.ledger.Ledger;
|
||||||
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
|
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class BaseActivity extends SecureActivity
|
public class BaseActivity extends SecureActivity
|
||||||
|
@ -141,91 +123,6 @@ public class BaseActivity extends SecureActivity
|
||||||
Timber.d("WakeLock released");
|
Timber.d("WakeLock released");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
initNfc();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostResume() {
|
|
||||||
super.onPostResume();
|
|
||||||
if (nfcAdapter != null) {
|
|
||||||
nfcAdapter.enableForegroundDispatch(this, nfcPendingIntent, null, null);
|
|
||||||
// intercept all techs so we can tell the user their tag is no good
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPause() {
|
|
||||||
Timber.d("onPause()");
|
|
||||||
if (nfcAdapter != null)
|
|
||||||
nfcAdapter.disableForegroundDispatch(this);
|
|
||||||
super.onPause();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onNewIntent(Intent intent) {
|
|
||||||
super.onNewIntent(intent);
|
|
||||||
processNfcIntent(intent);
|
|
||||||
}
|
|
||||||
|
|
||||||
// NFC stuff
|
|
||||||
private NfcAdapter nfcAdapter;
|
|
||||||
private PendingIntent nfcPendingIntent;
|
|
||||||
|
|
||||||
public void initNfc() {
|
|
||||||
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
|
|
||||||
if (nfcAdapter == null) // no NFC support
|
|
||||||
return;
|
|
||||||
nfcPendingIntent = PendingIntent.getActivity(this, 0,
|
|
||||||
new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
|
|
||||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void processNfcIntent(Intent intent) {
|
|
||||||
String action = intent.getAction();
|
|
||||||
Timber.d("ACTION=%s", action);
|
|
||||||
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)
|
|
||||||
|| NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
|
|
||||||
|| NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
|
|
||||||
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
|
|
||||||
Ndef ndef = Ndef.get(tag);
|
|
||||||
if (ndef == null) {
|
|
||||||
Toast.makeText(this, getString(R.string.nfc_tag_unsupported), Toast.LENGTH_LONG).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
|
||||||
if (f instanceof ReceiveFragment) {
|
|
||||||
// We want to write a Tag from the ReceiveFragment
|
|
||||||
BarcodeData bc = ((ReceiveFragment) f).getBarcodeData();
|
|
||||||
if (bc != null) {
|
|
||||||
new AsyncWriteTag(ndef, bc.getUri()).execute();
|
|
||||||
} // else wallet is not loaded yet or receive is otherwise not ready - ignore
|
|
||||||
} else if (f instanceof SendFragment) {
|
|
||||||
// We want to read a Tag for the SendFragment
|
|
||||||
NdefMessage ndefMessage = ndef.getCachedNdefMessage();
|
|
||||||
if (ndefMessage == null) {
|
|
||||||
Toast.makeText(this, getString(R.string.nfc_tag_read_undef), Toast.LENGTH_LONG).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
NdefRecord firstRecord = ndefMessage.getRecords()[0];
|
|
||||||
Uri uri = firstRecord.toUri(); // we insist on the first record
|
|
||||||
if (uri == null) {
|
|
||||||
Toast.makeText(this, getString(R.string.nfc_tag_read_undef), Toast.LENGTH_LONG).show();
|
|
||||||
} else {
|
|
||||||
BarcodeData bc = BarcodeData.fromString(uri.toString());
|
|
||||||
if (bc == null)
|
|
||||||
Toast.makeText(this, getString(R.string.nfc_tag_read_undef), Toast.LENGTH_LONG).show();
|
|
||||||
else
|
|
||||||
onUriScanned(bc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// this gets called only if we get data
|
// this gets called only if we get data
|
||||||
@CallSuper
|
@CallSuper
|
||||||
void onUriScanned(BarcodeData barcodeData) {
|
void onUriScanned(BarcodeData barcodeData) {
|
||||||
|
@ -239,75 +136,4 @@ public class BaseActivity extends SecureActivity
|
||||||
barcodeData = null;
|
barcodeData = null;
|
||||||
return popped;
|
return popped;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class AsyncWriteTag extends AsyncTask<Void, Void, Boolean> {
|
|
||||||
|
|
||||||
Ndef ndef;
|
|
||||||
Uri uri;
|
|
||||||
String errorMessage = null;
|
|
||||||
|
|
||||||
AsyncWriteTag(Ndef ndef, Uri uri) {
|
|
||||||
this.ndef = ndef;
|
|
||||||
this.uri = uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPreExecute() {
|
|
||||||
super.onPreExecute();
|
|
||||||
showProgressDialog(R.string.progress_nfc_write);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Boolean doInBackground(Void... params) {
|
|
||||||
if (params.length != 0) return false;
|
|
||||||
try {
|
|
||||||
writeNdef(ndef, uri);
|
|
||||||
return true;
|
|
||||||
} catch (IOException | FormatException ex) {
|
|
||||||
Timber.e(ex);
|
|
||||||
} catch (IllegalArgumentException ex) {
|
|
||||||
errorMessage = ex.getMessage();
|
|
||||||
Timber.d(errorMessage);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
ndef.close();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
Timber.e(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Boolean result) {
|
|
||||||
super.onPostExecute(result);
|
|
||||||
if (isDestroyed()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
dismissProgressDialog();
|
|
||||||
if (!result) {
|
|
||||||
if (errorMessage != null)
|
|
||||||
Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_LONG).show();
|
|
||||||
else
|
|
||||||
Toast.makeText(getApplicationContext(), getString(R.string.nfc_write_failed), Toast.LENGTH_LONG).show();
|
|
||||||
} else {
|
|
||||||
Toast.makeText(getApplicationContext(), getString(R.string.nfc_write_successful), Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void writeNdef(Ndef ndef, Uri uri) throws IOException, FormatException {
|
|
||||||
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
|
|
||||||
if (nfcAdapter == null) return; // no NFC support here
|
|
||||||
|
|
||||||
NdefRecord recordNFC = NdefRecord.createUri(uri);
|
|
||||||
NdefMessage message = new NdefMessage(recordNFC);
|
|
||||||
ndef.connect();
|
|
||||||
int tagSize = ndef.getMaxSize();
|
|
||||||
int msgSize = message.getByteArrayLength();
|
|
||||||
Timber.d("tagSize=%d, msgSIze=%d, uriSize=%d", tagSize, msgSize, uri.toString().length());
|
|
||||||
if (tagSize < msgSize)
|
|
||||||
throw new IllegalArgumentException(getString(R.string.nfc_tag_size, tagSize, msgSize));
|
|
||||||
ndef.writeNdefMessage(message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -37,6 +35,7 @@ import android.view.inputmethod.EditorInfo;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
|
@ -49,7 +49,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.data.DefaultNodes;
|
import com.m2049r.xmrwallet.data.DefaultNodes;
|
||||||
import com.m2049r.xmrwallet.data.Node;
|
import com.m2049r.xmrwallet.data.Node;
|
||||||
import com.m2049r.xmrwallet.data.NodeInfo;
|
import com.m2049r.xmrwallet.data.NodeInfo;
|
||||||
import com.m2049r.xmrwallet.dialog.CreditsFragment;
|
|
||||||
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
||||||
import com.m2049r.xmrwallet.ledger.Ledger;
|
import com.m2049r.xmrwallet.ledger.Ledger;
|
||||||
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
|
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
|
||||||
|
|
|
@ -29,7 +29,6 @@ import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.animation.Animation;
|
import android.view.animation.Animation;
|
||||||
import android.view.animation.AnimationUtils;
|
import android.view.animation.AnimationUtils;
|
||||||
import android.widget.FrameLayout;
|
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
|
|
|
@ -20,7 +20,6 @@ import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.onboarding.OnBoardingActivity;
|
import com.m2049r.xmrwallet.onboarding.OnBoardingActivity;
|
||||||
import com.m2049r.xmrwallet.onboarding.OnBoardingManager;
|
import com.m2049r.xmrwallet.onboarding.OnBoardingManager;
|
||||||
|
|
|
@ -22,7 +22,6 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.nfc.NfcManager;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
|
@ -191,11 +190,6 @@ public class ReceiveFragment extends Fragment {
|
||||||
throw new IllegalStateException("no wallet info");
|
throw new IllegalStateException("no wallet info");
|
||||||
}
|
}
|
||||||
|
|
||||||
View tvNfc = view.findViewById(R.id.tvNfc);
|
|
||||||
NfcManager manager = (NfcManager) getContext().getSystemService(Context.NFC_SERVICE);
|
|
||||||
if ((manager != null) && (manager.getDefaultAdapter() != null))
|
|
||||||
tvNfc.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,7 +397,7 @@ public class ReceiveFragment extends Fragment {
|
||||||
|
|
||||||
private Bitmap getMoneroLogo() {
|
private Bitmap getMoneroLogo() {
|
||||||
if (logo == null) {
|
if (logo == null) {
|
||||||
logo = Helper.getBitmap(getContext(), R.drawable.ic_monero_logo_b);
|
logo = Helper.getBitmap(getContext(), R.drawable.ic_monerujo_qr);
|
||||||
}
|
}
|
||||||
return logo;
|
return logo;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,13 @@ package com.m2049r.xmrwallet;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
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.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.BarcodeFormat;
|
||||||
import com.google.zxing.Result;
|
import com.google.zxing.Result;
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
|
import static android.view.WindowManager.LayoutParams;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
@ -29,8 +31,6 @@ import com.m2049r.xmrwallet.util.LocaleHelper;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import static android.view.WindowManager.LayoutParams;
|
|
||||||
|
|
||||||
public abstract class SecureActivity extends AppCompatActivity {
|
public abstract class SecureActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
|
|
@ -76,7 +76,7 @@ public class SubaddressInfoFragment extends Fragment
|
||||||
|
|
||||||
etName.getEditText().setText(subaddress.getDisplayLabel());
|
etName.getEditText().setText(subaddress.getDisplayLabel());
|
||||||
tvAddress.setText(getContext().getString(R.string.subbaddress_info_subtitle,
|
tvAddress.setText(getContext().getString(R.string.subbaddress_info_subtitle,
|
||||||
subaddress.getAddressIndex(), subaddress.getSquashedAddress()));
|
subaddress.getAddressIndex(), subaddress.getAddress()));
|
||||||
|
|
||||||
etName.getEditText().setOnFocusChangeListener((v, hasFocus) -> {
|
etName.getEditText().setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
if (!hasFocus) {
|
if (!hasFocus) {
|
||||||
|
|
|
@ -44,8 +44,6 @@ import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
import com.m2049r.xmrwallet.model.TransactionInfo;
|
import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||||
import com.m2049r.xmrwallet.model.Transfer;
|
import com.m2049r.xmrwallet.model.Transfer;
|
||||||
import com.m2049r.xmrwallet.model.Wallet;
|
import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.model.WalletManager;
|
|
||||||
import com.m2049r.xmrwallet.service.WalletService;
|
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.ThemeHelper;
|
import com.m2049r.xmrwallet.util.ThemeHelper;
|
||||||
import com.m2049r.xmrwallet.widget.Toolbar;
|
import com.m2049r.xmrwallet.widget.Toolbar;
|
||||||
|
|
|
@ -451,7 +451,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
if (extras != null) {
|
if (extras != null) {
|
||||||
String walletId = extras.getString(REQUEST_ID);
|
String walletId = extras.getString(REQUEST_ID);
|
||||||
if (walletId != null) {
|
if (walletId != null) {
|
||||||
setTitle(walletId, getString(R.string.status_wallet_connecting));
|
setTitle(walletId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateProgress();
|
updateProgress();
|
||||||
|
@ -925,12 +925,8 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
@Override
|
@Override
|
||||||
void onUriScanned(BarcodeData barcodeData) {
|
void onUriScanned(BarcodeData barcodeData) {
|
||||||
super.onUriScanned(barcodeData);
|
super.onUriScanned(barcodeData);
|
||||||
boolean processed = false;
|
|
||||||
if (onUriScannedListener != null) {
|
if (onUriScannedListener != null) {
|
||||||
processed = onUriScannedListener.onUriScanned(barcodeData);
|
onUriScannedListener.onUriScanned(barcodeData);
|
||||||
}
|
|
||||||
if (!processed || (onUriScannedListener == null)) {
|
|
||||||
Toast.makeText(this, getString(R.string.nfc_tag_read_what), Toast.LENGTH_LONG).show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1028,13 +1024,14 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
final Wallet wallet = getWallet();
|
final Wallet wallet = getWallet();
|
||||||
if (wallet != null) {
|
if (wallet != null) {
|
||||||
final int n = wallet.getNumAccounts();
|
final int n = wallet.getNumAccounts();
|
||||||
|
final int currentAccount = getWallet().getAccountIndex();
|
||||||
final boolean showBalances = (n > 1) && !isStreetMode();
|
final boolean showBalances = (n > 1) && !isStreetMode();
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
final String label = (showBalances ?
|
final String label = (showBalances ?
|
||||||
getString(R.string.label_account, wallet.getAccountLabel(i), Helper.getDisplayAmount(wallet.getBalance(i), 2))
|
getString(R.string.label_account, wallet.getAccountLabel(i), Helper.getDisplayAmount(wallet.getBalance(i), 2))
|
||||||
: wallet.getAccountLabel(i));
|
: wallet.getAccountLabel(i));
|
||||||
final MenuItem item = menu.add(R.id.accounts_list, getAccountId(i), 2 * i, label);
|
final MenuItem item = menu.add(R.id.accounts_list, getAccountId(i), 2 * i, label);
|
||||||
item.setIcon(R.drawable.ic_account_balance_wallet_black_24dp);
|
item.setIcon(i == currentAccount ? R.drawable.ic_outline_folder_open_24 : R.drawable.ic_outline_folder_24);
|
||||||
if (i == wallet.getAccountIndex())
|
if (i == wallet.getAccountIndex())
|
||||||
item.setChecked(true);
|
item.setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -447,6 +447,7 @@ public class WalletFragment extends Fragment
|
||||||
String sync;
|
String sync;
|
||||||
if (!activityCallback.hasBoundService())
|
if (!activityCallback.hasBoundService())
|
||||||
throw new IllegalStateException("WalletService not bound.");
|
throw new IllegalStateException("WalletService not bound.");
|
||||||
|
ivSynced.setVisibility(View.GONE);
|
||||||
Wallet.ConnectionStatus daemonConnected = activityCallback.getConnectionStatus();
|
Wallet.ConnectionStatus daemonConnected = activityCallback.getConnectionStatus();
|
||||||
if (daemonConnected == Wallet.ConnectionStatus.ConnectionStatus_Connected) {
|
if (daemonConnected == Wallet.ConnectionStatus.ConnectionStatus_Connected) {
|
||||||
if (!wallet.isSynchronized()) {
|
if (!wallet.isSynchronized()) {
|
||||||
|
@ -460,7 +461,6 @@ public class WalletFragment extends Fragment
|
||||||
int x = 100 - Math.round(100f * n / (1f * daemonHeight - firstBlock));
|
int x = 100 - Math.round(100f * n / (1f * daemonHeight - firstBlock));
|
||||||
if (x == 0) x = 101; // indeterminate
|
if (x == 0) x = 101; // indeterminate
|
||||||
setProgress(x);
|
setProgress(x);
|
||||||
ivSynced.setVisibility(View.GONE);
|
|
||||||
} else {
|
} else {
|
||||||
sync = getString(R.string.status_synced) + " " + formatter.format(wallet.getBlockChainHeight());
|
sync = getString(R.string.status_synced) + " " + formatter.format(wallet.getBlockChainHeight());
|
||||||
ivSynced.setVisibility(View.VISIBLE);
|
ivSynced.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -21,8 +21,6 @@ import android.text.Html;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
|
|
||||||
import com.m2049r.levin.scanner.LevinPeer;
|
import com.m2049r.levin.scanner.LevinPeer;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.util.NetCipherHelper;
|
import com.m2049r.xmrwallet.util.NetCipherHelper;
|
||||||
|
|
|
@ -19,15 +19,16 @@ package com.m2049r.xmrwallet.dialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.fragment.app.DialogFragment;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.fragment.app.FragmentManager;
|
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.BuildConfig;
|
import com.m2049r.xmrwallet.BuildConfig;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
|
@ -17,12 +17,10 @@
|
||||||
package com.m2049r.xmrwallet.fragment.send;
|
package com.m2049r.xmrwallet.fragment.send;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.nfc.NfcManager;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.Spanned;
|
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.util.Patterns;
|
import android.util.Patterns;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
@ -268,11 +266,6 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
etDummy.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
etDummy.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
||||||
etDummy.requestFocus();
|
etDummy.requestFocus();
|
||||||
|
|
||||||
View tvNfc = view.findViewById(R.id.tvNfc);
|
|
||||||
NfcManager manager = (NfcManager) getContext().getSystemService(Context.NFC_SERVICE);
|
|
||||||
if ((manager != null) && (manager.getDefaultAdapter() != null))
|
|
||||||
tvNfc.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,6 @@
|
||||||
package com.m2049r.xmrwallet.fragment.send;
|
package com.m2049r.xmrwallet.fragment.send;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
|
||||||
import android.text.TextWatcher;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -28,7 +25,6 @@ import android.widget.TextView;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.data.TxData;
|
import com.m2049r.xmrwallet.data.TxData;
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
|
|
|
@ -17,10 +17,11 @@
|
||||||
package com.m2049r.xmrwallet.layout;
|
package com.m2049r.xmrwallet.layout;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.fragment.send.SendFragment;
|
import com.m2049r.xmrwallet.fragment.send.SendFragment;
|
||||||
|
|
||||||
public class SpendViewPager extends ViewPager {
|
public class SpendViewPager extends ViewPager {
|
||||||
|
|
|
@ -26,7 +26,6 @@ import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.recyclerview.widget.DiffUtil;
|
import androidx.recyclerview.widget.DiffUtil;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
@ -35,8 +34,6 @@ import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.data.Crypto;
|
import com.m2049r.xmrwallet.data.Crypto;
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
import com.m2049r.xmrwallet.model.TransactionInfo;
|
import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||||
import com.m2049r.xmrwallet.model.WalletManager;
|
|
||||||
import com.m2049r.xmrwallet.service.WalletService;
|
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.ThemeHelper;
|
import com.m2049r.xmrwallet.util.ThemeHelper;
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ import java.io.File;
|
||||||
import java.io.FilenameFilter;
|
import java.io.FilenameFilter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
|
@ -19,8 +19,6 @@ package com.m2049r.xmrwallet.onboarding;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.util.KeyStoreHelper;
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
|
@ -25,7 +25,6 @@ import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
|
|
||||||
import okhttp3.OkHttpClient;
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -23,7 +23,6 @@ import com.m2049r.xmrwallet.service.shift.NetworkCallback;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftApiCall;
|
import com.m2049r.xmrwallet.service.shift.ShiftApiCall;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.api.CreateOrder;
|
import com.m2049r.xmrwallet.service.shift.sideshift.api.CreateOrder;
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.api.SideShiftApi;
|
|
||||||
import com.m2049r.xmrwallet.util.DateHelper;
|
import com.m2049r.xmrwallet.util.DateHelper;
|
||||||
import com.m2049r.xmrwallet.util.ServiceHelper;
|
import com.m2049r.xmrwallet.util.ServiceHelper;
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,8 @@ import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.shift.NetworkCallback;
|
import com.m2049r.xmrwallet.service.shift.NetworkCallback;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftApiCall;
|
import com.m2049r.xmrwallet.service.shift.ShiftApiCall;
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.api.QueryOrderParameters;
|
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.api.SideShiftApi;
|
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
||||||
|
import com.m2049r.xmrwallet.service.shift.sideshift.api.QueryOrderParameters;
|
||||||
import com.m2049r.xmrwallet.util.ServiceHelper;
|
import com.m2049r.xmrwallet.util.ServiceHelper;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
|
|
|
@ -20,9 +20,9 @@ import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.shift.NetworkCallback;
|
import com.m2049r.xmrwallet.service.shift.NetworkCallback;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftApiCall;
|
import com.m2049r.xmrwallet.service.shift.ShiftApiCall;
|
||||||
import com.m2049r.xmrwallet.util.DateHelper;
|
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.api.QueryOrderStatus;
|
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
||||||
|
import com.m2049r.xmrwallet.service.shift.sideshift.api.QueryOrderStatus;
|
||||||
|
import com.m2049r.xmrwallet.util.DateHelper;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
|
@ -32,7 +32,6 @@ import java.text.ParseException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
class QueryOrderStatusImpl implements QueryOrderStatus {
|
class QueryOrderStatusImpl implements QueryOrderStatus {
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,6 @@ import java.math.BigInteger;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.SocketTimeoutException;
|
import java.net.SocketTimeoutException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatDelegate;
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
|
|
|
@ -19,10 +19,11 @@
|
||||||
package com.m2049r.xmrwallet.widget;
|
package com.m2049r.xmrwallet.widget;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
|
||||||
public class CTextInputLayout extends TextInputLayout {
|
public class CTextInputLayout extends TextInputLayout {
|
||||||
public CTextInputLayout(Context context) {
|
public CTextInputLayout(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
|
@ -20,9 +20,10 @@ package com.m2049r.xmrwallet.widget;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import androidx.appcompat.widget.AppCompatAutoCompleteTextView;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatAutoCompleteTextView;
|
||||||
|
|
||||||
public class DropDownEditText extends AppCompatAutoCompleteTextView {
|
public class DropDownEditText extends AppCompatAutoCompleteTextView {
|
||||||
|
|
||||||
public DropDownEditText(Context context) {
|
public DropDownEditText(Context context) {
|
||||||
|
|
|
@ -42,9 +42,9 @@ import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
||||||
import com.m2049r.xmrwallet.util.ThemeHelper;
|
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.ServiceHelper;
|
import com.m2049r.xmrwallet.util.ServiceHelper;
|
||||||
|
import com.m2049r.xmrwallet.util.ThemeHelper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.theromus.sha;
|
package com.theromus.sha;
|
||||||
|
|
||||||
import static com.theromus.utils.HexUtils.leftRotate64;
|
|
||||||
import static com.theromus.utils.HexUtils.convertToUint;
|
|
||||||
import static com.theromus.utils.HexUtils.convertFromLittleEndianTo64;
|
|
||||||
import static com.theromus.utils.HexUtils.convertFrom64ToLittleEndian;
|
import static com.theromus.utils.HexUtils.convertFrom64ToLittleEndian;
|
||||||
|
import static com.theromus.utils.HexUtils.convertFromLittleEndianTo64;
|
||||||
|
import static com.theromus.utils.HexUtils.convertToUint;
|
||||||
|
import static com.theromus.utils.HexUtils.leftRotate64;
|
||||||
import static java.lang.Math.min;
|
import static java.lang.Math.min;
|
||||||
import static java.lang.System.arraycopy;
|
import static java.lang.System.arraycopy;
|
||||||
import static java.util.Arrays.fill;
|
import static java.util.Arrays.fill;
|
||||||
|
|
|
@ -17,14 +17,14 @@
|
||||||
android:translateX="1013.0865"
|
android:translateX="1013.0865"
|
||||||
android:translateY="153.4532">
|
android:translateY="153.4532">
|
||||||
<path
|
<path
|
||||||
android:fillColor="?attr/toolbarTextColor"
|
android:fillColor="#FFED1A5B"
|
||||||
android:pathData="m 0,0 c 19.062,0 35.203,6.594 48.406,19.797 13.188,13.187 19.797,29.328 19.797,48.391 0,19.062 -6.609,35.203 -19.797,48.406 -13.203,13.187 -29.156,19.797 -47.859,19.797 -18.703,0 -34.656,-6.61 -47.844,-19.797 C -60.5,103.391 -67.094,87.25 -67.094,68.188 c 0,-19.063 6.406,-35.204 19.25,-48.391 C -35.016,6.594 -19.062,0 0,0" />
|
android:pathData="m 0,0 c 19.062,0 35.203,6.594 48.406,19.797 13.188,13.187 19.797,29.328 19.797,48.391 0,19.062 -6.609,35.203 -19.797,48.406 -13.203,13.187 -29.156,19.797 -47.859,19.797 -18.703,0 -34.656,-6.61 -47.844,-19.797 C -60.5,103.391 -67.094,87.25 -67.094,68.188 c 0,-19.063 6.406,-35.204 19.25,-48.391 C -35.016,6.594 -19.062,0 0,0" />
|
||||||
</group>
|
</group>
|
||||||
<group
|
<group
|
||||||
android:translateX="1000"
|
android:translateX="1000"
|
||||||
android:translateY="0">
|
android:translateY="0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="?attr/toolbarTextColor"
|
android:fillColor="#FFED1A5B"
|
||||||
android:pathData="m 0,0 c -44.734,44.359 -101.083,66.547 -169.27,66.547 -48.406,0 -91.424,-11.563 -129.19,-34.656 -37.781,-23.094 -67.626,-55.172 -89.626,-96.235 -19.063,42.532 -47.282,74.969 -84.688,97.344 -37.407,22.359 -79.233,33.547 -125.421,33.547 -90.203,0 -155.936,-35.938 -196.936,-107.797 v 98.157 h -101 v -604 h 101 v 340.843 c 0,60.859 14.881,107.062 44.584,138.594 29.703,31.531 70.425,47.312 122.129,47.312 51.687,0 92.073,-15.781 121.417,-47.312 29.328,-31.532 43.87,-77.735 43.87,-138.594 v -340.843 h 99 v 340.843 c 0,60.859 14.983,107.062 44.686,138.594 29.703,31.531 70.288,47.312 121.632,47.312 51.328,0 91.638,-15.781 121.341,-47.312 29.687,-31.532 44.341,-77.735 44.341,-138.594 v -341 l -0.76,-129.797 c 0,-26.406 -5.245,-45.453 -16.605,-56.828 -11.375,-11.359 -30.543,-17.218 -58.418,-17.218 h -43.217 v -82 h 63.03 c 104.125,0 154.97,51.921 154.97,156.046 v 129.797 357.5 C 66.869,-107.625 44.734,-44.375 0,0" />
|
android:pathData="m 0,0 c -44.734,44.359 -101.083,66.547 -169.27,66.547 -48.406,0 -91.424,-11.563 -129.19,-34.656 -37.781,-23.094 -67.626,-55.172 -89.626,-96.235 -19.063,42.532 -47.282,74.969 -84.688,97.344 -37.407,22.359 -79.233,33.547 -125.421,33.547 -90.203,0 -155.936,-35.938 -196.936,-107.797 v 98.157 h -101 v -604 h 101 v 340.843 c 0,60.859 14.881,107.062 44.584,138.594 29.703,31.531 70.425,47.312 122.129,47.312 51.687,0 92.073,-15.781 121.417,-47.312 29.328,-31.532 43.87,-77.735 43.87,-138.594 v -340.843 h 99 v 340.843 c 0,60.859 14.983,107.062 44.686,138.594 29.703,31.531 70.288,47.312 121.632,47.312 51.328,0 91.638,-15.781 121.341,-47.312 29.687,-31.532 44.341,-77.735 44.341,-138.594 v -341 l -0.76,-129.797 c 0,-26.406 -5.245,-45.453 -16.605,-56.828 -11.375,-11.359 -30.543,-17.218 -58.418,-17.218 h -43.217 v -82 h 63.03 c 104.125,0 154.97,51.921 154.97,156.046 v 129.797 357.5 C 66.869,-107.625 44.734,-44.375 0,0" />
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:aapt="http://schemas.android.com/aapt"
|
||||||
|
android:width="128dp"
|
||||||
|
android:height="128dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="128">
|
||||||
|
<path
|
||||||
|
android:pathData="M64,64m-63.05,0a63.05,63.05 0,1 1,126.1 0a63.05,63.05 0,1 1,-126.1 0"
|
||||||
|
android:fillColor="#fff"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M64,64m-58.13,0a58.13,58.13 0,1 1,116.26 0a58.13,58.13 0,1 1,-116.26 0">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:startX="64"
|
||||||
|
android:startY="50.12"
|
||||||
|
android:endX="64"
|
||||||
|
android:endY="98.43"
|
||||||
|
android:type="linear">
|
||||||
|
<item android:offset="0" android:color="#FFF26222"/>
|
||||||
|
<item android:offset="1" android:color="#FFED1A5B"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path
|
||||||
|
android:pathData="M77.06,41.06c-5.34,0 -10.1,2.55 -13.12,6.5 -3.02,-3.95 -7.78,-6.5 -13.12,-6.5 -3.63,0 -6.99,1.18 -9.72,3.17v-2.26h-6.8v41.29h6.8v-25.68c0,-5.36 4.36,-9.72 9.72,-9.72s9.72,4.36 9.72,9.72v25.68h6.8v-25.68c0,-5.36 4.36,-9.72 9.72,-9.72s9.72,4.36 9.72,9.72v25.68c0,5.36 -4.36,9.72 -9.72,9.72v6.8c9.11,0 16.52,-7.41 16.52,-16.52v-27.53h0c-0.92,-8.24 -8.04,-14.67 -16.52,-14.67Z"
|
||||||
|
android:fillColor="#fff"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M90.18,31.73m-3.52,0a3.52,3.52 0,1 1,7.04 0a3.52,3.52 0,1 1,-7.04 0"
|
||||||
|
android:fillColor="#fff"/>
|
||||||
|
</vector>
|
|
@ -1,9 +0,0 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24.0"
|
|
||||||
android:viewportHeight="24.0">
|
|
||||||
<path
|
|
||||||
android:fillColor="?android:textColorSecondary"
|
|
||||||
android:pathData="M20,2L4,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM20,20L4,20L4,4h16v16zM18,6h-5c-1.1,0 -2,0.9 -2,2v2.28c-0.6,0.35 -1,0.98 -1,1.72 0,1.1 0.9,2 2,2s2,-0.9 2,-2c0,-0.74 -0.4,-1.38 -1,-1.72L13,8h3v8L8,16L8,8h2L10,6L6,6v12h12L18,6z" />
|
|
||||||
</vector>
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:tint="#000000"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M9.17,6l2,2H20v10H4V6h5.17M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z" />
|
||||||
|
</vector>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:tint="#000000"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M20,6h-8l-2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM20,18L4,18L4,8h16v10z" />
|
||||||
|
</vector>
|
|
@ -90,8 +90,8 @@
|
||||||
android:id="@+id/cvQrCode"
|
android:id="@+id/cvQrCode"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_above="@id/tvNfc"
|
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:backgroundTint="#ffffffff"
|
android:backgroundTint="#ffffffff"
|
||||||
|
@ -120,18 +120,6 @@
|
||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:src="#fff" />
|
android:src="#fff" />
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvNfc"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:drawablePadding="8dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="@string/nfc_tag_tap"
|
|
||||||
android:visibility="visible"
|
|
||||||
app:drawableStartCompat="@drawable/ic_nfc" />
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -175,7 +175,6 @@
|
||||||
android:inputType="textMultiLine"
|
android:inputType="textMultiLine"
|
||||||
android:textAlignment="textStart" />
|
android:textAlignment="textStart" />
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -203,18 +202,6 @@
|
||||||
android:text="@string/send_qr_hint"
|
android:text="@string/send_qr_hint"
|
||||||
android:textSize="20dp" />
|
android:textSize="20dp" />
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvNfc"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:drawablePadding="8dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="@string/nfc_tag_tap"
|
|
||||||
android:visibility="visible"
|
|
||||||
app:drawableStartCompat="@drawable/ic_nfc" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/header_top_first"
|
android:layout_marginTop="@dimen/header_top_first"
|
||||||
android:transitionName="@string/subaddress_info_transition_name"
|
android:transitionName="@string/subaddress_info_transition_name"
|
||||||
tools:text="#1: 8AioXCmK...aGivEa7C" />
|
tools:text="#1: 83ALRYDTkLULDpDpDYEtWfc8EQxp7z77FNENX43aiJpzGd5pRY1HPLMBpQdXTvvJozePR7UEhYWT3d2H5w9kBgCZ6AtWFd4" />
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/etName"
|
android:id="@+id/etName"
|
||||||
|
|
|
@ -24,17 +24,49 @@
|
||||||
android:layout_margin="8dp"
|
android:layout_margin="8dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ivSynced"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:src="@drawable/ic_done_all"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvProgress"
|
||||||
|
style="@style/MoneroText.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="visible"
|
||||||
|
tools:text="Synced 1 410 674 blocks" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/pbProgress"
|
||||||
|
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:indeterminate="true"
|
||||||
|
android:visibility="invisible" />
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvStreetView"
|
android:id="@+id/tvStreetView"
|
||||||
style="@style/MoneroText.Balance"
|
style="@style/MoneroText.Info"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:text="@string/menu_streetmode"
|
android:gravity="center"
|
||||||
|
android:text="@string/label_streetmode"
|
||||||
android:visibility="invisible" />
|
android:visibility="invisible" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -97,37 +129,6 @@
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
tools:text="+ 0.00 unconfirmed" />
|
tools:text="+ 0.00 unconfirmed" />
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="@dimen/header_top_first"
|
|
||||||
android:gravity="center"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivSynced"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
android:src="@drawable/ic_done_all"
|
|
||||||
android:visibility="gone" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvProgress"
|
|
||||||
style="@style/MoneroText.Medium"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:visibility="visible"
|
|
||||||
tools:text="Synced 1 410 674 blocks" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<ProgressBar
|
|
||||||
android:id="@+id/pbProgress"
|
|
||||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:indeterminate="true"
|
|
||||||
android:visibility="invisible" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
|
@ -12,27 +12,27 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:padding="8dp">
|
android:padding="8dp">
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvName"
|
|
||||||
style="@style/MoneroText.Label.Subaddress"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingStart="8dp"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
tools:text="My First Subaddress" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvAddress"
|
android:id="@+id/tvAddress"
|
||||||
style="@style/MoneroText.Small"
|
style="@style/MoneroText.Small"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvName"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:text="#1: 8AioXCmK...aGivEa7C" />
|
tools:text="#1: 8AioXCmK...aGivEa7C" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvName"
|
||||||
|
style="@style/MoneroText.Label.Subaddress"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:paddingStart="8dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvAddress"
|
||||||
|
tools:text="My First Subaddress" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tx_amount"
|
android:id="@+id/tx_amount"
|
||||||
style="@style/MoneroText.PosAmount"
|
style="@style/MoneroText.PosAmount"
|
||||||
|
|
|
@ -111,14 +111,9 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_weight="6"
|
android:layout_weight="5"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
tools:text="2017-05-22 21:32" />
|
tools:text="2017-05-22 21:32" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:src="@drawable/ic_navigate_next" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
|
@ -305,15 +305,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s adjunt</string>
|
<string name="toast_ledger_attached">%1$s adjunt</string>
|
||||||
<string name="toast_ledger_detached">%1$s separat</string>
|
<string name="toast_ledger_detached">%1$s separat</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Escrivint etiquetatge</string>
|
|
||||||
<string name="nfc_write_failed">Escriptura d\'Etiquetatge fallit!</string>
|
|
||||||
<string name="nfc_write_successful">Escriptura d\'Etiquetatge exitosa</string>
|
|
||||||
<string name="nfc_tag_unsupported">L\'etiquetatge no suporta NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">L\'etiquetatge proporciona %1$d bits, però es necessiten %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">No entenc l\'etiquetatge!</string>
|
|
||||||
<string name="nfc_tag_read_what">No sé què vols!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC Disponible!</string>
|
|
||||||
|
|
||||||
<string name="menu_info">Mostra Secrets!</string>
|
<string name="menu_info">Mostra Secrets!</string>
|
||||||
<string name="menu_streetmode">Mode de Carrer</string>
|
<string name="menu_streetmode">Mode de Carrer</string>
|
||||||
|
|
||||||
|
@ -449,4 +440,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -308,15 +308,6 @@
|
||||||
<string name="send_address_resolve_openalias">Löse OpenAlias auf…</string>
|
<string name="send_address_resolve_openalias">Löse OpenAlias auf…</string>
|
||||||
<string name="send_address_no_dnssec">OpenAlias ohne DNSSEC – Adresse kann gefälscht sein!</string>
|
<string name="send_address_no_dnssec">OpenAlias ohne DNSSEC – Adresse kann gefälscht sein!</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Schreibe Tag</string>
|
|
||||||
<string name="nfc_write_failed">Schreiben des Tags fehlgeschlagen!</string>
|
|
||||||
<string name="nfc_write_successful">Tag erfolgreich geschrieben</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag unterstützt NDEF nicht!</string>
|
|
||||||
<string name="nfc_tag_size">Tag bietet %1$d Bytes, aber wir brauchen %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Ich verstehe den Tag nicht!</string>
|
|
||||||
<string name="nfc_tag_read_what">Ich weiß nicht, was du willst!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC verfügbar!</string>
|
|
||||||
|
|
||||||
<string name="status_wallet_connect_wrongversion">Node Version inkompatibel – bitte updaten!</string>
|
<string name="status_wallet_connect_wrongversion">Node Version inkompatibel – bitte updaten!</string>
|
||||||
|
|
||||||
<string name="menu_info">Zeige Geheimnisse!</string><!--Changed to: Show Secrets!-->
|
<string name="menu_info">Zeige Geheimnisse!</string><!--Changed to: Show Secrets!-->
|
||||||
|
@ -450,4 +441,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -298,15 +298,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s attached</string>
|
<string name="toast_ledger_attached">%1$s attached</string>
|
||||||
<string name="toast_ledger_detached">%1$s detached</string>
|
<string name="toast_ledger_detached">%1$s detached</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Writing Tag</string>
|
|
||||||
<string name="nfc_write_failed">Writing Tag failed!</string>
|
|
||||||
<string name="nfc_write_successful">Writing Tag successful</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag does not support NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag provides %1$d bytes, but we need %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">I don\'t understand the Tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">I don\'t know what you want!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC Available!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Description (optional)</string>
|
<string name="receive_desc_hint">Description (optional)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
||||||
|
@ -451,4 +442,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -305,20 +305,9 @@
|
||||||
<string name="toast_ledger_attached">%1$s kunligita</string>
|
<string name="toast_ledger_attached">%1$s kunligita</string>
|
||||||
<string name="toast_ledger_detached">%1$s malligita</string>
|
<string name="toast_ledger_detached">%1$s malligita</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Skribante etikedon</string>
|
|
||||||
<string name="nfc_write_failed">Etikedsribo malsukcesis!</string>
|
|
||||||
<string name="nfc_write_successful">Etikedskribo sukcesis</string>
|
|
||||||
<string name="nfc_tag_unsupported">Etikedo ne subtenas NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">La etikedo provizas %1$d bajtojn, sed ni bezonas %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Mi ne komprenas la etikedon!</string>
|
|
||||||
<string name="nfc_tag_read_what">Damne, kion vi volas?!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC disponeblas!</string>
|
|
||||||
|
|
||||||
|
|
||||||
<string name="menu_info">Montru sekretojn!</string>
|
<string name="menu_info">Montru sekretojn!</string>
|
||||||
<string name="menu_streetmode">Strata moduso</string>
|
<string name="menu_streetmode">Strata moduso</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="info_nodes_enabled">Node-o-matiC permesiĝas, frapetu por detaloj.</string>
|
<string name="info_nodes_enabled">Node-o-matiC permesiĝas, frapetu por detaloj.</string>
|
||||||
<string name="node_height">Lasta ĝisdatigita bloko: %1$s</string>
|
<string name="node_height">Lasta ĝisdatigita bloko: %1$s</string>
|
||||||
<string name="label_nodes">Nodoj</string>
|
<string name="label_nodes">Nodoj</string>
|
||||||
|
@ -451,4 +440,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -288,15 +288,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s adjunto</string>
|
<string name="toast_ledger_attached">%1$s adjunto</string>
|
||||||
<string name="toast_ledger_detached">%1$s separado</string>
|
<string name="toast_ledger_detached">%1$s separado</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Escribiento Etiqueta</string>
|
|
||||||
<string name="nfc_write_failed">¡Escritura de Etiqueta fallida!</string>
|
|
||||||
<string name="nfc_write_successful">Escritura de Etiqueta exitosa</string>
|
|
||||||
<string name="nfc_tag_unsupported">¡Etiqueta no soporta NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">La etiqueta provee %1$d bytes, pero necesitamos %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">¡No comprendo la etiqueta!</string>
|
|
||||||
<string name="nfc_tag_read_what">¡No sé lo que pides!</string>
|
|
||||||
<string name="nfc_tag_tap">¡NFC disponible!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Descripción (opcional)</string>
|
<string name="receive_desc_hint">Descripción (opcional)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">Dirección OpenAlias no disponible</string>
|
<string name="send_address_not_openalias">Dirección OpenAlias no disponible</string>
|
||||||
|
@ -442,4 +433,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -300,15 +300,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s lisatud</string>
|
<string name="toast_ledger_attached">%1$s lisatud</string>
|
||||||
<string name="toast_ledger_detached">%1$s eemaldatud</string>
|
<string name="toast_ledger_detached">%1$s eemaldatud</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Kirjutan silti</string>
|
|
||||||
<string name="nfc_write_failed">Sildi kirjutamine ebaõnnestus!</string>
|
|
||||||
<string name="nfc_write_successful">Sildi kirjutamine õnnestus</string>
|
|
||||||
<string name="nfc_tag_unsupported">Silt ei toeta NDEF\'i!</string>
|
|
||||||
<string name="nfc_tag_size">Sildil on %1$d baiti, kuid meil on vaja %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Ma ei oska seda silti lugeda!</string>
|
|
||||||
<string name="nfc_tag_read_what">Ma ei tea, mida sa tahad!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC on saadaval!</string>
|
|
||||||
|
|
||||||
<string name="status_wallet_connect_wrongversion">Serveri versioon ei sobi - palun uuenda!</string>
|
<string name="status_wallet_connect_wrongversion">Serveri versioon ei sobi - palun uuenda!</string>
|
||||||
|
|
||||||
<string name="menu_info">Näita salajast infot</string>
|
<string name="menu_info">Näita salajast infot</string>
|
||||||
|
@ -449,4 +440,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -467,28 +467,6 @@
|
||||||
جدا شد
|
جدا شد
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">نوشتن برچسب</string>
|
|
||||||
<string name="nfc_write_failed">نوشتن برچسب شکست خورد!</string>
|
|
||||||
<string name="nfc_write_successful">نوشتن برچسب موفق بود</string>
|
|
||||||
<string name="nfc_tag_unsupported">برچسب از
|
|
||||||
NDEF
|
|
||||||
پشتیبانی نمیکند
|
|
||||||
</string>
|
|
||||||
<string name="nfc_tag_size">
|
|
||||||
برچسب
|
|
||||||
%1$d
|
|
||||||
بایت فراهم کرد، ولی ما
|
|
||||||
%2$d
|
|
||||||
بایت نیاز داریم!
|
|
||||||
</string>
|
|
||||||
<string name="nfc_tag_read_undef">من برچسب را متوجه نمیشوم!</string>
|
|
||||||
<string name="nfc_tag_read_what">نمیدونم از جونم چی میخوای!</string>
|
|
||||||
<string name="nfc_tag_tap">
|
|
||||||
قابلیت
|
|
||||||
NFC
|
|
||||||
دردسترس است!
|
|
||||||
</string>
|
|
||||||
|
|
||||||
<string name="menu_info">نمایش اسرار!</string>
|
<string name="menu_info">نمایش اسرار!</string>
|
||||||
<string name="menu_streetmode">حالت خیابان</string>
|
<string name="menu_streetmode">حالت خیابان</string>
|
||||||
|
|
||||||
|
@ -702,4 +680,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -299,15 +299,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s connecté</string>
|
<string name="toast_ledger_attached">%1$s connecté</string>
|
||||||
<string name="toast_ledger_detached">%1$s déconnecté</string>
|
<string name="toast_ledger_detached">%1$s déconnecté</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Écriture du Tag</string>
|
|
||||||
<string name="nfc_write_failed">Échec de l\'écriture du Tag !</string>
|
|
||||||
<string name="nfc_write_successful">Tag écrit avec succès</string>
|
|
||||||
<string name="nfc_tag_unsupported">le Tag ne supporte pas NDEF !</string>
|
|
||||||
<string name="nfc_tag_size">Le Tag donne %1$d octets, mais il en faut %2$d !</string>
|
|
||||||
<string name="nfc_tag_read_undef">Je ne comprend pas le Tag !</string>
|
|
||||||
<string name="nfc_tag_read_what">Je ne sais pas ce que vous voulez !</string>
|
|
||||||
<string name="nfc_tag_tap">NFC Disponible !</string>
|
|
||||||
|
|
||||||
<string name="menu_language">Langue</string>
|
<string name="menu_language">Langue</string>
|
||||||
<string name="language_system_default">Utiliser la Langue du Système</string>
|
<string name="language_system_default">Utiliser la Langue du Système</string>
|
||||||
|
|
||||||
|
@ -455,4 +446,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -298,15 +298,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s csatlakoztatva</string>
|
<string name="toast_ledger_attached">%1$s csatlakoztatva</string>
|
||||||
<string name="toast_ledger_detached">%1$s leválasztva</string>
|
<string name="toast_ledger_detached">%1$s leválasztva</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Címke írása</string>
|
|
||||||
<string name="nfc_write_failed">Sikertelen címkeírás!</string>
|
|
||||||
<string name="nfc_write_successful">Sikeres címkeírás</string>
|
|
||||||
<string name="nfc_tag_unsupported">A címke nem támogatja az NDEF-et!</string>
|
|
||||||
<string name="nfc_tag_size">A címke %1$d byte-os, de %2$d kellene!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Nem értem a címkét!</string>
|
|
||||||
<string name="nfc_tag_read_what">Nem tudom, mit akarsz!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC elérhető!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Description (optional)</string>
|
<string name="receive_desc_hint">Description (optional)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
||||||
|
@ -453,4 +444,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -301,15 +301,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s allegati</string>
|
<string name="toast_ledger_attached">%1$s allegati</string>
|
||||||
<string name="toast_ledger_detached">%1$s allegati</string>
|
<string name="toast_ledger_detached">%1$s allegati</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Scrivendo tag</string>
|
|
||||||
<string name="nfc_write_failed">Scrittura tag fallita!</string>
|
|
||||||
<string name="nfc_write_successful">Scrittura tag riuscita</string>
|
|
||||||
<string name="nfc_tag_unsupported">La tag non supporta NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">La Tag fornisce %1$d bytes, ma ne servono %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Non capisco la tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">Non capisco cosa mi hai chiesto!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC disponibile!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Descrizione (opzionale)</string>
|
<string name="receive_desc_hint">Descrizione (opzionale)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">Indirizzo OpenAlias non disponibile</string>
|
<string name="send_address_not_openalias">Indirizzo OpenAlias non disponibile</string>
|
||||||
|
@ -454,4 +445,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -304,15 +304,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s が取り付けられました</string>
|
<string name="toast_ledger_attached">%1$s が取り付けられました</string>
|
||||||
<string name="toast_ledger_detached">%1$s が取り外されました</string>
|
<string name="toast_ledger_detached">%1$s が取り外されました</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">タグ書き込み中</string>
|
|
||||||
<string name="nfc_write_failed">タグ書き込みに失敗!</string>
|
|
||||||
<string name="nfc_write_successful">タグ書き込みに成功</string>
|
|
||||||
<string name="nfc_tag_unsupported">タグはNDEFをサポートしていません!</string>
|
|
||||||
<string name="nfc_tag_size">タグは %1$d バイトを提供していますが, 私達は %2$d が必要です!</string>
|
|
||||||
<string name="nfc_tag_read_undef">タグを理解できません!</string>
|
|
||||||
<string name="nfc_tag_read_what">あなたが何をしたいのかわかりません!</string>
|
|
||||||
<string name="nfc_tag_tap">NFCが利用可能です!</string>
|
|
||||||
|
|
||||||
<string name="menu_info">シークレットを見せてください!</string>
|
<string name="menu_info">シークレットを見せてください!</string>
|
||||||
<string name="menu_streetmode">ストリートモード</string>
|
<string name="menu_streetmode">ストリートモード</string>
|
||||||
|
|
||||||
|
@ -454,4 +445,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -298,15 +298,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s attached</string>
|
<string name="toast_ledger_attached">%1$s attached</string>
|
||||||
<string name="toast_ledger_detached">%1$s detached</string>
|
<string name="toast_ledger_detached">%1$s detached</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Writing Tag</string>
|
|
||||||
<string name="nfc_write_failed">Writing Tag failed!</string>
|
|
||||||
<string name="nfc_write_successful">Writing Tag successful</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag does not support NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag provides %1$d bytes, but we need %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">I don\'t understand the Tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">I don\'t know what you want!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC Available!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Description (optional)</string>
|
<string name="receive_desc_hint">Description (optional)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
<string name="send_address_not_openalias">OpenAlias address not available</string>
|
||||||
|
@ -451,4 +442,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -296,15 +296,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s gekoppeld</string>
|
<string name="toast_ledger_attached">%1$s gekoppeld</string>
|
||||||
<string name="toast_ledger_detached">%1$s losgemaakt</string>
|
<string name="toast_ledger_detached">%1$s losgemaakt</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Tag wordt geschreven</string>
|
|
||||||
<string name="nfc_write_failed">Tag schrijven mislukt!</string>
|
|
||||||
<string name="nfc_write_successful">Tag is geschreven</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag ondersteunt NDEF niet!</string>
|
|
||||||
<string name="nfc_tag_size">Tag levert %1$d bytes, maar we hebben er %2$d nodig!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Ik begrijp de Tag niet!</string>
|
|
||||||
<string name="nfc_tag_read_what">Ik weet niet wat je wilt!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC beschikbaar!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Omschrijving (optioneel)</string>
|
<string name="receive_desc_hint">Omschrijving (optioneel)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">OpenAlias-adres niet beschikbaar</string>
|
<string name="send_address_not_openalias">OpenAlias-adres niet beschikbaar</string>
|
||||||
|
@ -451,4 +442,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -297,15 +297,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s conectado</string>
|
<string name="toast_ledger_attached">%1$s conectado</string>
|
||||||
<string name="toast_ledger_detached">%1$s desconectado</string>
|
<string name="toast_ledger_detached">%1$s desconectado</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Escrevendo tag</string>
|
|
||||||
<string name="nfc_write_failed">Erro ao escrever a tag!</string>
|
|
||||||
<string name="nfc_write_successful">Sucesso ao escrever a tag</string>
|
|
||||||
<string name="nfc_tag_unsupported">A tag não suporta NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag disponibiliza %1$d bytes, mas precisamos de %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Não consigo ler a tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">Não sei o que você quer!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC disponível!</string>
|
|
||||||
|
|
||||||
<string name="menu_info">Mostrar Segredos!</string>
|
<string name="menu_info">Mostrar Segredos!</string>
|
||||||
<string name="menu_streetmode">Modo Rua</string>
|
<string name="menu_streetmode">Modo Rua</string>
|
||||||
|
|
||||||
|
@ -444,4 +435,6 @@ aqui.</string>
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -300,15 +300,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s Ligado</string>
|
<string name="toast_ledger_attached">%1$s Ligado</string>
|
||||||
<string name="toast_ledger_detached">%1$s Desligado</string>
|
<string name="toast_ledger_detached">%1$s Desligado</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Escrevendo Tag</string>
|
|
||||||
<string name="nfc_write_failed">A escrita do Tag falhou!</string>
|
|
||||||
<string name="nfc_write_successful">Escrita do Tag bem sucedida</string>
|
|
||||||
<string name="nfc_tag_unsupported">A Tag não suporta NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">A Tag tem %1$d bytes, mas nós precisamos de %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Eu não percebo a Tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">Eu não percebo o que queres fazer!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC Disponivel!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Descrição (opcional)</string>
|
<string name="receive_desc_hint">Descrição (opcional)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">Endereço OpenAlias não disponivel.</string>
|
<string name="send_address_not_openalias">Endereço OpenAlias não disponivel.</string>
|
||||||
|
@ -455,4 +446,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -298,15 +298,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s atașat</string>
|
<string name="toast_ledger_attached">%1$s atașat</string>
|
||||||
<string name="toast_ledger_detached">%1$s detașat</string>
|
<string name="toast_ledger_detached">%1$s detașat</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Se scrie Tag-ul</string>
|
|
||||||
<string name="nfc_write_failed">Scriere Tag eșuată!</string>
|
|
||||||
<string name="nfc_write_successful">Scriere Tag cu succes</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag-ul nu are suport NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag-ul vine cu %1$d biți, dar avem nevoie de %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Nu înțeleg Tag-ul!</string>
|
|
||||||
<string name="nfc_tag_read_what">Nu știu ce vrei!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC disponibil!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Descriere (opțional)</string>
|
<string name="receive_desc_hint">Descriere (opțional)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">Adresă OpenAlias indisponibilă</string>
|
<string name="send_address_not_openalias">Adresă OpenAlias indisponibilă</string>
|
||||||
|
@ -451,4 +442,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -300,15 +300,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s прикреплен</string>
|
<string name="toast_ledger_attached">%1$s прикреплен</string>
|
||||||
<string name="toast_ledger_detached">%1$s откреплён</string>
|
<string name="toast_ledger_detached">%1$s откреплён</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Запись метки</string>
|
|
||||||
<string name="nfc_write_failed">Ошибка записи метки!</string>
|
|
||||||
<string name="nfc_write_successful">Успешная запись метки</string>
|
|
||||||
<string name="nfc_tag_unsupported">Метка не поддерживает NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Метка предоставляет %1$d байт, но нам нужно %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Я не понимаю эту метку!</string>
|
|
||||||
<string name="nfc_tag_read_what">Я не знаю, чего ты хочешь!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC доступен!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Описание (необязательно)</string>
|
<string name="receive_desc_hint">Описание (необязательно)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">Адрес OpenAlias недоступен</string>
|
<string name="send_address_not_openalias">Адрес OpenAlias недоступен</string>
|
||||||
|
@ -455,4 +446,6 @@
|
||||||
<string name="message_qr_failed">Не удалось создать QR!</string>
|
<string name="message_qr_failed">Не удалось создать QR!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -297,15 +297,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s pripojený</string>
|
<string name="toast_ledger_attached">%1$s pripojený</string>
|
||||||
<string name="toast_ledger_detached">%1$s odpojený</string>
|
<string name="toast_ledger_detached">%1$s odpojený</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Zapisujem Tag</string>
|
|
||||||
<string name="nfc_write_failed">Zapísanie Tagu zlyhalo!</string>
|
|
||||||
<string name="nfc_write_successful">Zapísanie Tagu úspešné</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag nepodporuje NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag poskytol %1$d bytes, ale treba %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Neruzumiem Tagu!</string>
|
|
||||||
<string name="nfc_tag_read_what">Neviem čo tým básnik myslel!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC je dostupné!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Popis (voliteľné)</string>
|
<string name="receive_desc_hint">Popis (voliteľné)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">OpenAlias adresa nie je dostupná</string>
|
<string name="send_address_not_openalias">OpenAlias adresa nie je dostupná</string>
|
||||||
|
@ -452,4 +443,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -307,15 +307,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s zakačeno</string>
|
<string name="toast_ledger_attached">%1$s zakačeno</string>
|
||||||
<string name="toast_ledger_detached">%1$s otkačeno</string>
|
<string name="toast_ledger_detached">%1$s otkačeno</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Pisanje taga</string>
|
|
||||||
<string name="nfc_write_failed">Pisanje taga neuspelo!</string>
|
|
||||||
<string name="nfc_write_successful">Pisanje taga uspešno</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag ne podržava NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag omogućava %1$d bajta, međutim nama treba %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Ne razumem tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">Ne znam šta si mislio!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC dostupno!</string>
|
|
||||||
|
|
||||||
<string name="menu_info">Pokaži tajne!</string>
|
<string name="menu_info">Pokaži tajne!</string>
|
||||||
<string name="menu_streetmode">Ulični mod</string>
|
<string name="menu_streetmode">Ulični mod</string>
|
||||||
|
|
||||||
|
@ -450,4 +441,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -289,15 +289,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s ansluten</string>
|
<string name="toast_ledger_attached">%1$s ansluten</string>
|
||||||
<string name="toast_ledger_detached">%1$s frånkopplad</string>
|
<string name="toast_ledger_detached">%1$s frånkopplad</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Skriver tagg</string>
|
|
||||||
<string name="nfc_write_failed">Misslyckades att skriva till tagg!</string>
|
|
||||||
<string name="nfc_write_successful">Skrivning till tagg lyckades</string>
|
|
||||||
<string name="nfc_tag_unsupported">Taggen stöder inte NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Taggen har %1$d bytes, men vi behöver %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Jag förstår inte taggen!</string>
|
|
||||||
<string name="nfc_tag_read_what">Jag vet inte vad du vill!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC tillgängligt!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Beskrivning (valfri)</string>
|
<string name="receive_desc_hint">Beskrivning (valfri)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">OpenAlias-adress ej tillgänglig</string>
|
<string name="send_address_not_openalias">OpenAlias-adress ej tillgänglig</string>
|
||||||
|
@ -443,4 +434,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -309,15 +309,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s இணைக்கப்பட்டது</string>
|
<string name="toast_ledger_attached">%1$s இணைக்கப்பட்டது</string>
|
||||||
<string name="toast_ledger_detached">%1$s பிரிக்கப்பட்டது</string>
|
<string name="toast_ledger_detached">%1$s பிரிக்கப்பட்டது</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">குறிச்சொல்லை எழுதுகிறது</string>
|
|
||||||
<string name="nfc_write_failed">குறிச்சொல் எழுதல் தோல்வியடைந்தது!</string>
|
|
||||||
<string name="nfc_write_successful">குறிச்சொல் எழுதல் வெற்றியடைந்தது</string>
|
|
||||||
<string name="nfc_tag_unsupported">குறிச்சொலானது NDEF ஐ ஆதரிக்கவில்லை!</string>
|
|
||||||
<string name="nfc_tag_size">குறிச்சொல்லானது %1$d எண்ணுன்மிகளை அளிக்கிறது, ஆனால் நமக்கு %2$d தேவை!</string>
|
|
||||||
<string name="nfc_tag_read_undef">இந்த குறிச்சொல் எனக்கு புரியவில்லை!</string>
|
|
||||||
<string name="nfc_tag_read_what">உனக்கு என்ன வேண்டும் என்று எனக்கு தெரியவில்லை!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC கிடைக்கிறது!</string>
|
|
||||||
|
|
||||||
<string name="menu_info">இரகசியங்களை காண்பி!</string>
|
<string name="menu_info">இரகசியங்களை காண்பி!</string>
|
||||||
<string name="menu_streetmode">வீதி பாங்கு</string>
|
<string name="menu_streetmode">வீதி பாங்கு</string>
|
||||||
|
|
||||||
|
@ -449,4 +440,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -300,15 +300,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s підєднаний</string>
|
<string name="toast_ledger_attached">%1$s підєднаний</string>
|
||||||
<string name="toast_ledger_detached">%1$s відєднаний</string>
|
<string name="toast_ledger_detached">%1$s відєднаний</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Запис мітки</string>
|
|
||||||
<string name="nfc_write_failed">Помилка запису мітки!</string>
|
|
||||||
<string name="nfc_write_successful">Успішний запис мітки</string>
|
|
||||||
<string name="nfc_tag_unsupported">Мітка не підтримує NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Мітка надає %1$d байт, але нам потрібно %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">Я не розумію цю мітку!</string>
|
|
||||||
<string name="nfc_tag_read_what">Я не знаю, що ти хочеш!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC доступний!</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">Опис (необов\'язково)</string>
|
<string name="receive_desc_hint">Опис (необов\'язково)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">Адреса OpenAlias недоступна</string>
|
<string name="send_address_not_openalias">Адреса OpenAlias недоступна</string>
|
||||||
|
@ -455,4 +446,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -235,14 +235,6 @@
|
||||||
<string name="accounts_progress_new">账户创建中</string>
|
<string name="accounts_progress_new">账户创建中</string>
|
||||||
<string name="toast_ledger_attached">%1$s 已连接</string>
|
<string name="toast_ledger_attached">%1$s 已连接</string>
|
||||||
<string name="toast_ledger_detached">%1$s 已断开连接</string>
|
<string name="toast_ledger_detached">%1$s 已断开连接</string>
|
||||||
<string name="progress_nfc_write">NFC标签写入中</string>
|
|
||||||
<string name="nfc_write_failed">NFC标签写入失败!</string>
|
|
||||||
<string name="nfc_write_successful">NFC标签写入成功</string>
|
|
||||||
<string name="nfc_tag_unsupported">NFC标签不支持NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">NFC标签提供%1$d字节,但我们需要%2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">我不了解NFC标签!</string>
|
|
||||||
<string name="nfc_tag_read_what">我不知道你想要什么!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC可用!</string>
|
|
||||||
<string name="menu_info">显示私密信息</string>
|
<string name="menu_info">显示私密信息</string>
|
||||||
<string name="menu_streetmode">公共场合模式</string>
|
<string name="menu_streetmode">公共场合模式</string>
|
||||||
<string name="info_nodes_enabled">Node-o-matiC已可用,点此了解更多.</string>
|
<string name="info_nodes_enabled">Node-o-matiC已可用,点此了解更多.</string>
|
||||||
|
@ -375,4 +367,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -296,15 +296,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s 已連接</string>
|
<string name="toast_ledger_attached">%1$s 已連接</string>
|
||||||
<string name="toast_ledger_detached">%1$s 已斷開連接</string>
|
<string name="toast_ledger_detached">%1$s 已斷開連接</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">正在寫入 NFC 標籤</string>
|
|
||||||
<string name="nfc_write_failed">NFC 標籤寫入失敗!</string>
|
|
||||||
<string name="nfc_write_successful">NFC 標籤寫入成功</string>
|
|
||||||
<string name="nfc_tag_unsupported">此 NFC 標籤不支援 NDEF 格式!</string>
|
|
||||||
<string name="nfc_tag_size">此 NFC 標籤可存放 %1$d 位元組,但需要 %2$d 位元組!</string>
|
|
||||||
<string name="nfc_tag_read_undef">無法辨識此 NFC 標籤!</string>
|
|
||||||
<string name="nfc_tag_read_what">無法執行此 NFC 標籤的操作!</string>
|
|
||||||
<string name="nfc_tag_tap">可使用 NFC 標籤</string>
|
|
||||||
|
|
||||||
<string name="receive_desc_hint">附註 (選填)</string>
|
<string name="receive_desc_hint">附註 (選填)</string>
|
||||||
|
|
||||||
<string name="send_address_not_openalias">無法使用這個 OpenAlias</string>
|
<string name="send_address_not_openalias">無法使用這個 OpenAlias</string>
|
||||||
|
@ -450,4 +441,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -311,7 +311,6 @@
|
||||||
<item>PHP</item>
|
<item>PHP</item>
|
||||||
<item>PLN</item>
|
<item>PLN</item>
|
||||||
<item>RON</item>
|
<item>RON</item>
|
||||||
<item>RUB</item>
|
|
||||||
<item>SEK</item>
|
<item>SEK</item>
|
||||||
<item>SGD</item>
|
<item>SGD</item>
|
||||||
<item>THB</item>
|
<item>THB</item>
|
||||||
|
@ -353,15 +352,6 @@
|
||||||
<string name="toast_ledger_attached">%1$s attached</string>
|
<string name="toast_ledger_attached">%1$s attached</string>
|
||||||
<string name="toast_ledger_detached">%1$s detached</string>
|
<string name="toast_ledger_detached">%1$s detached</string>
|
||||||
|
|
||||||
<string name="progress_nfc_write">Writing Tag</string>
|
|
||||||
<string name="nfc_write_failed">Writing Tag failed!</string>
|
|
||||||
<string name="nfc_write_successful">Writing Tag successful</string>
|
|
||||||
<string name="nfc_tag_unsupported">Tag does not support NDEF!</string>
|
|
||||||
<string name="nfc_tag_size">Tag provides %1$d bytes, but we need %2$d!</string>
|
|
||||||
<string name="nfc_tag_read_undef">I don\'t understand the Tag!</string>
|
|
||||||
<string name="nfc_tag_read_what">I don\'t know what you want!</string>
|
|
||||||
<string name="nfc_tag_tap">NFC Available!</string>
|
|
||||||
|
|
||||||
<string name="unknown_amount" translatable="false">\?\?\?</string>
|
<string name="unknown_amount" translatable="false">\?\?\?</string>
|
||||||
|
|
||||||
<string name="menu_info">Show Secrets!</string>
|
<string name="menu_info">Show Secrets!</string>
|
||||||
|
@ -528,4 +518,6 @@
|
||||||
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
<string name="message_qr_failed">Failed to create QR for sharing!</string>
|
||||||
|
|
||||||
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
<string name="tx_locked">Transaction amount locked until block %1$d (in %2$d blocks ≈ %3$,.2f days)</string>
|
||||||
|
|
||||||
|
<string name="label_streetmode">Street Mode enabled\nOnly new transactions will be shown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.ecb;
|
package com.m2049r.xmrwallet.service.exchange.ecb;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
|
||||||
|
@ -38,8 +40,6 @@ import okhttp3.mockwebserver.MockResponse;
|
||||||
import okhttp3.mockwebserver.MockWebServer;
|
import okhttp3.mockwebserver.MockWebServer;
|
||||||
import okhttp3.mockwebserver.RecordedRequest;
|
import okhttp3.mockwebserver.RecordedRequest;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
|
|
||||||
public class ExchangeRateTest {
|
public class ExchangeRateTest {
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.kraken;
|
package com.m2049r.xmrwallet.service.exchange.kraken;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
|
||||||
|
@ -38,8 +40,6 @@ import okhttp3.mockwebserver.MockResponse;
|
||||||
import okhttp3.mockwebserver.MockWebServer;
|
import okhttp3.mockwebserver.MockWebServer;
|
||||||
import okhttp3.mockwebserver.RecordedRequest;
|
import okhttp3.mockwebserver.RecordedRequest;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
|
|
||||||
public class ExchangeRateTest {
|
public class ExchangeRateTest {
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,12 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.shift.sideshift;
|
package com.m2049r.xmrwallet.service.shift.sideshift;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftException;
|
import com.m2049r.xmrwallet.service.shift.ShiftException;
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.api.QueryOrderParameters;
|
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.api.SideShiftApi;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
|
||||||
import com.m2049r.xmrwallet.service.shift.sideshift.network.SideShiftApiImpl;
|
import com.m2049r.xmrwallet.service.shift.sideshift.network.SideShiftApiImpl;
|
||||||
import com.m2049r.xmrwallet.util.NetCipherHelper;
|
import com.m2049r.xmrwallet.util.NetCipherHelper;
|
||||||
|
|
||||||
|
@ -38,8 +40,6 @@ import okhttp3.mockwebserver.MockResponse;
|
||||||
import okhttp3.mockwebserver.MockWebServer;
|
import okhttp3.mockwebserver.MockWebServer;
|
||||||
import okhttp3.mockwebserver.RecordedRequest;
|
import okhttp3.mockwebserver.RecordedRequest;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
public class SideShiftApiOrderParameterTest {
|
public class SideShiftApiOrderParameterTest {
|
||||||
|
|
||||||
private MockWebServer mockWebServer;
|
private MockWebServer mockWebServer;
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.shift.sideshift;
|
package com.m2049r.xmrwallet.service.shift.sideshift;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
import com.m2049r.xmrwallet.service.shift.ShiftCallback;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftError;
|
import com.m2049r.xmrwallet.service.shift.ShiftError;
|
||||||
import com.m2049r.xmrwallet.service.shift.ShiftException;
|
import com.m2049r.xmrwallet.service.shift.ShiftException;
|
||||||
|
@ -40,8 +42,6 @@ import okhttp3.mockwebserver.MockResponse;
|
||||||
import okhttp3.mockwebserver.MockWebServer;
|
import okhttp3.mockwebserver.MockWebServer;
|
||||||
import okhttp3.mockwebserver.RecordedRequest;
|
import okhttp3.mockwebserver.RecordedRequest;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
public class SideShiftApiRequestQuoteTest {
|
public class SideShiftApiRequestQuoteTest {
|
||||||
|
|
||||||
private MockWebServer mockWebServer;
|
private MockWebServer mockWebServer;
|
||||||
|
|
|
@ -16,12 +16,10 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util;
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
public class HelperTest {
|
public class HelperTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -16,7 +16,9 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util;
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.data.BarcodeData;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -24,10 +26,6 @@ import org.junit.rules.ExpectedException;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
public class OpenAliasHelperTest {
|
public class OpenAliasHelperTest {
|
||||||
|
|
||||||
private final static String MONERUJO = "oa1:xmr recipient_address=4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk; recipient_name=Monerujo Development; tx_description=Donation to Monerujo Core Team;";
|
private final static String MONERUJO = "oa1:xmr recipient_address=4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk; recipient_name=Monerujo Development; tx_description=Donation to Monerujo Core Team;";
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util;
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExpectedException;
|
import org.junit.rules.ExpectedException;
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
// all ranges go back 5 days
|
// all ranges go back 5 days
|
||||||
|
|
||||||
public class RestoreHeightTest {
|
public class RestoreHeightTest {
|
||||||
|
|
|
@ -16,14 +16,14 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util;
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
public class UserNoteTest {
|
public class UserNoteTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -16,13 +16,13 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util.ledger;
|
package com.m2049r.xmrwallet.util.ledger;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExpectedException;
|
import org.junit.rules.ExpectedException;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
public class MoneroTest {
|
public class MoneroTest {
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util.validator;
|
package com.m2049r.xmrwallet.util.validator;
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
public class BitcoinAddressValidatorTest {
|
public class BitcoinAddressValidatorTest {
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.util.validator;
|
package com.m2049r.xmrwallet.util.validator;
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
public class EthAddressValidatorTest {
|
public class EthAddressValidatorTest {
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ buildscript {
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.2.0'
|
classpath 'com.android.tools.build:gradle:7.2.2'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue