Updated on 2026-08-14

This commit is contained in:
Tangem 2019-08-30 13:05:04 +03:00
parent 7cf462453b
commit 09a0702485
74 changed files with 682 additions and 728 deletions

View file

@ -43,7 +43,7 @@ public class ConfirmWithFingerprintTask extends AsyncTask<Void, Void, Boolean> {
onCancelled();
if (!success) {
Toast.makeText(pinSaveActivity, R.string.pin_save_fail, Toast.LENGTH_LONG).show();
Toast.makeText(pinSaveActivity, R.string.pin_save_notification_failed, Toast.LENGTH_LONG).show();
} else {
pinSaveActivity.getFingerprintHelper().startAuth(pinSaveActivity.getFingerprintManager(), pinSaveActivity.getCryptoObject());
}

View file

@ -3,13 +3,13 @@ package com.tangem.data.network;
import android.util.Log;
import com.tangem.App;
import com.tangem.wallet.TangemContext;
import com.tangem.data.Blockchain;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.bch.BitcoinCashNode;
import com.tangem.wallet.btc.BitcoinNode;
import com.tangem.wallet.btc.BitcoinNodeTestNet;
import com.tangem.wallet.ltc.LitecoinNode;
import com.tangem.wallet.R;
import java.io.BufferedReader;
import java.io.IOException;
@ -32,7 +32,6 @@ import java.util.Random;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
@ -139,7 +138,7 @@ public class ServerApiElectrum {
requestsCount--;
Log.e(TAG, "requestData " + electrumRequest.getMethod() + " onError " + e.getMessage());
Log.e(TAG, String.format("%d requests left in processing",requestsCount));
electrumRequest.setError(ctx.getString(R.string.cannot_obtain_data_from_blockchain));
electrumRequest.setError(ctx.getString(R.string.loaded_wallet_error_obtaining_blockchain_data));
//setErrorOccurred(e.getMessage());//;
responseListener.onFail(electrumRequest);
}
@ -252,18 +251,18 @@ public class ServerApiElectrum {
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
{
// method unknown error???
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_obtaining_blockchain_data));
electrumRequest.answerData=null;
}
} else {
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_answer));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_empty_answer));
Log.i(TAG, ">> <NULL>");
}
} catch (ConnectException e) {
//e.printStackTrace();
//responseListener.onFail(e.getMessage());
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_connection));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_connection_refused));
Log.e(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " ConnectException " + e.getMessage());
} finally {
Log.i(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " socket.close");
@ -274,13 +273,13 @@ public class ServerApiElectrum {
{
e.printStackTrace();
Log.e(TAG,"Can't close socket");
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_communication_error));
}
}
} catch (IOException e) {
//e.printStackTrace();
//responseListener.onFail(e.getMessage());
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_communication_error));
Log.e(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " IOException " + e.getMessage());
}
}
@ -343,17 +342,17 @@ public class ServerApiElectrum {
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
{
// method unknown error???
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_obtaining_blockchain_data));
electrumRequest.answerData=null;
}
} else {
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_answer));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_empty_answer));
Log.i(TAG, ">> <NULL>");
}
} catch (ConnectException e) {
e.printStackTrace();
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_connection));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_connection_refused));
Log.e(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " ConnectException " + e.getMessage());
} finally {
Log.i(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " socket.close");
@ -362,7 +361,7 @@ public class ServerApiElectrum {
}
catch (Exception e)
{
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_communication_error));
e.printStackTrace();
Log.e(TAG, "Can't close ssl socket");
}
@ -370,11 +369,11 @@ public class ServerApiElectrum {
} catch (IOException e) {
e.printStackTrace();
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_communication_error));
Log.e(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " IOException " + e.getMessage());
}
} catch (NoSuchAlgorithmException | KeyManagementException e) {
electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
electrumRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_obtaining_blockchain_data));
Log.e(TAG, e.getMessage());
}
}

View file

@ -114,7 +114,7 @@ public class ServerApiStellar {
requestsCount--;
LOG.e(TAG, "requestData " + stellarRequest.getClass().getSimpleName() + " onError " + e.getMessage());
LOG.e(TAG, String.format("%d requests left in processing", requestsCount));
stellarRequest.setError(ctx.getString(R.string.cannot_obtain_data_from_blockchain));
stellarRequest.setError(ctx.getString(R.string.loaded_wallet_error_obtaining_blockchain_data));
//setErrorOccurred(e.getMessage());//;
listener.onFail(stellarRequest);
}
@ -161,7 +161,7 @@ public class ServerApiStellar {
}
} catch (Exception e) {
e.printStackTrace();
stellarRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
stellarRequest.setError(App.Companion.getInstance().getString(R.string.loaded_wallet_error_blockchain_communication_error));
throw e;
}
}

View file

@ -13,8 +13,8 @@ import java.util.*
class ToastHelper {
fun showSnackbarUpdateVersion(context: Context, vg: ViewGroup, versionName: String) {
Snackbar.make(vg, String.format(context.getString(R.string.new_app_version), versionName), Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.update) {
Snackbar.make(vg, String.format(context.getString(R.string.main_screen_new_version_toast), versionName), Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.main_screen_btn_update) {
try {
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse(Constant.URL_TANGEM)
@ -29,7 +29,7 @@ class ToastHelper {
val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_INDEFINITE)
val snackView = snackbar.view
snackView.setBackgroundColor(context.resources.getColor(R.color.msg_okay))
snackbar.setAction(R.string.ok) {
snackbar.setAction(R.string.general_ok) {
snackbar.dismiss()
}
snackbar.show()
@ -39,7 +39,7 @@ class ToastHelper {
val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_INDEFINITE)
val snackView = snackbar.view
snackView.setBackgroundColor(context.resources.getColor(R.color.msg_err))
snackbar.setAction(R.string.ok) {
snackbar.setAction(R.string.general_ok) {
snackbar.dismiss()
}
snackbar.show()

View file

@ -14,23 +14,23 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.wallet.TangemContext
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.card_android.android.nfc.NfcDeviceAntennaLocation
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_android.android.reader.NfcReader
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.card_android.data.asBundle
import com.tangem.card_common.reader.CardProtocol
import com.tangem.card_common.tasks.CreateNewWalletTask
import com.tangem.card_common.util.Util
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_create_new_wallet.*
import kotlinx.android.synthetic.main.layout_progress_horizontal.*
import kotlinx.android.synthetic.main.layout_touch_card.*
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
@ -129,7 +129,7 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
progressBar?.visibility = View.INVISIBLE
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_create_wallet))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.nfc_error_cannot_create_wallet))
intent.putExtra(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, cardProtocol.card!!.asBundle)
setResult(Constant.RESULT_INVALID_PIN, intent)
@ -145,7 +145,7 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
NoExtendedLengthSupportDialog().show(supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
}
} else
Toast.makeText(this, R.string.try_to_scan_again, Toast.LENGTH_SHORT).show()
Toast.makeText(this, R.string.general_notification_scan_again, Toast.LENGTH_SHORT).show()
progressBar?.progress = 100
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)

View file

@ -10,33 +10,32 @@ import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.Build
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.text.Html
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.di.Navigator
import com.tangem.wallet.TangemContext
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_android.android.reader.NfcReader
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.card_android.data.asBundle
import com.tangem.card_android.data.loadFromBundle
import com.tangem.card_common.data.TangemCard
import com.tangem.card_common.reader.CardProtocol
import com.tangem.card_common.tasks.VerifyCardTask
import com.tangem.card_common.util.Util
import com.tangem.util.UtilHelper
import com.tangem.di.Navigator
import com.tangem.di.ToastHelper
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_empty_wallet.*
import kotlinx.android.synthetic.main.layout_tangem_card.*
import javax.inject.Inject
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.di.ToastHelper
class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
companion object {
@ -102,7 +101,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
if (cardProtocol != null)
navigator.showVerifyCard(this, ctx)
else
toastHelper.showSingleToast(this, getString(R.string.need_attach_card_again))
toastHelper.showSingleToast(this, getString(R.string.general_notification_scan_again_to_verify))
}
}
@ -191,7 +190,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
if (!NoExtendedLengthSupportDialog.allReadyShowed)
NoExtendedLengthSupportDialog().show(supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
} else
Toast.makeText(this@EmptyWalletActivity, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
Toast.makeText(this@EmptyWalletActivity, R.string.general_notification_scan_again, Toast.LENGTH_LONG).show()
progressBar?.progress = 100
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)

View file

@ -8,9 +8,9 @@ import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.di.Navigator
import com.tangem.wallet.TangemContext
import com.tangem.wallet.BuildConfig
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_logo.*
import javax.inject.Inject
@ -42,15 +42,15 @@ class LogoActivity : AppCompatActivity() {
// set beta version name
if (BuildConfig.DEBUG)
tvAppVersion.text = String.format(getString(R.string.version_name_debug), BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)
tvAppVersion.text = String.format(getString(R.string.splash_version_name_debug), BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)
else
tvAppVersion.text = String.format(getString(R.string.version_name_release), BuildConfig.VERSION_NAME)
tvAppVersion.text = String.format(getString(R.string.splash_version_name_release), BuildConfig.VERSION_NAME)
// set flavor app name
when (BuildConfig.FLAVOR) {
Constant.FLAVOR_TANGEM_CARDANO -> {
tvExtension.visibility = View.VISIBLE
tvExtension.text = getString(R.string.cardano)
tvExtension.text = getString(R.string.splash_cardano)
}
else -> {
tvExtension.visibility = View.GONE

View file

@ -13,25 +13,25 @@ import android.nfc.NfcAdapter
import android.nfc.Tag
import android.os.Build
import android.os.Bundle
import androidx.core.app.ActivityCompat
import androidx.appcompat.app.AppCompatActivity
import android.text.TextUtils
import android.util.Log
import android.view.View
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import com.tangem.Constant
import com.tangem.data.fingerprint.StartFingerprintReaderTask
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.data.fingerprint.FingerprintHelper
import com.tangem.wallet.TangemContext
import com.tangem.card_android.android.data.PINStorage
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.data.loadFromBundle
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.card_android.data.loadFromBundle
import com.tangem.card_common.data.TangemCard
import com.tangem.data.fingerprint.FingerprintHelper
import com.tangem.data.fingerprint.StartFingerprintReaderTask
import com.tangem.util.LOG
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_pin_request.*
import kotlinx.android.synthetic.main.layout_pin_buttons.*
import java.io.IOException
@ -108,25 +108,25 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
if (mode == Mode.RequestNewPIN)
if (PINStorage.haveEncryptedPIN()) {
allowFingerprint = true
tvPinPrompt.setText(R.string.enter_new_pin_or_use_fingerprint_scanner)
tvPinPrompt.setText(R.string.pin_request_enter_new_pin_or_use_fingerprint_scanner)
} else
tvPinPrompt.setText(R.string.enter_new_pin)
tvPinPrompt.setText(R.string.pin_request_enter_new_pin)
else if (mode == Mode.ConfirmNewPIN)
tvPinPrompt.setText(R.string.confirm_new_pin)
tvPinPrompt.setText(R.string.pin_request_confirm_new_pin)
else if (mode == Mode.RequestPIN)
if (PINStorage.haveEncryptedPIN()) {
allowFingerprint = true
tvPinPrompt.setText(R.string.enter_pin_or_use_fingerprint_scanner)
tvPinPrompt.setText(R.string.pin_request_enter_pin_or_use_fingerprint_scanner)
} else
tvPinPrompt.setText(R.string.enter_pin)
tvPinPrompt.setText(R.string.pin_request_enter_pin)
else if (mode == Mode.RequestNewPIN2)
if (PINStorage.haveEncryptedPIN2()) {
allowFingerprint = true
tvPinPrompt.setText(R.string.enter_new_pin_2_or_use_fingerprint_scanner)
tvPinPrompt.setText(R.string.pin_request_prompt_new_pin_2_or_fingerprint)
} else
tvPinPrompt.setText(R.string.enter_new_pin_2)
tvPinPrompt.setText(R.string.pin_request_new_pin_2)
else if (mode == Mode.ConfirmNewPIN2)
tvPinPrompt.setText(R.string.confirm_new_pin_2)
tvPinPrompt.setText(R.string.pin_request_confirm_new_pin_2)
else if (mode == Mode.RequestPIN2) {
val uid = intent.getStringExtra(EXTRA_TANGEM_CARD_UID)
val card = TangemCard(uid)
@ -142,9 +142,9 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
if (PINStorage.haveEncryptedPIN2()) {
allowFingerprint = true
tvPinPrompt.setText(R.string.enter_pin_2_or_use_fingerprint_scanner)
tvPinPrompt.setText(R.string.pin_request_enter_pin_2_or_use_fingerprint_scanner)
} else
tvPinPrompt.setText(R.string.enter_pin_2)
tvPinPrompt.setText(R.string.pin_request_prompt_enter_pin_2)
}
if (!allowFingerprint)
@ -298,13 +298,13 @@ class PinRequestActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Finge
if (mode == Mode.ConfirmNewPIN) {
if (pin != intent.getStringExtra(Constant.EXTRA_NEW_PIN)) {
tvPin!!.error = getString(R.string.error_pin_confirmation_failed)
tvPin!!.error = getString(R.string.pin_request_error_pin_confirmation_failed)
focusView = tvPin
cancel = true
}
} else if (mode == Mode.ConfirmNewPIN2) {
if (pin != intent.getStringExtra(Constant.EXTRA_NEW_PIN_2)) {
tvPin!!.error = getString(R.string.error_pin_confirmation_failed)
tvPin!!.error = getString(R.string.pin_request_error_pin_confirmation_failed)
focusView = tvPin
cancel = true
}

View file

@ -14,16 +14,16 @@ import android.os.Bundle
import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyPermanentlyInvalidatedException
import android.security.keystore.KeyProperties
import androidx.core.app.ActivityCompat
import androidx.appcompat.app.AppCompatActivity
import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import com.tangem.Constant
import com.tangem.card_android.android.data.PINStorage
import com.tangem.data.fingerprint.ConfirmWithFingerprintTask
import com.tangem.data.fingerprint.FingerprintHelper
import com.tangem.card_android.android.data.PINStorage
import com.tangem.wallet.R
import kotlinx.android.synthetic.main.activity_pin_save.*
import kotlinx.android.synthetic.main.layout_pin_buttons.*
@ -70,9 +70,9 @@ class PinSaveActivity : AppCompatActivity(), FingerprintHelper.FingerprintHelper
usePIN2 = intent.getBooleanExtra(Constant.EXTRA_PIN2, false)
if (usePIN2)
tvPinPrompt.text = getString(R.string.enter_pin2_and_use_fingerprint_to_save_it)
tvPinPrompt.text = getString(R.string.pin_save_title_enter_pin2_and_save)
else
tvPinPrompt.text = getString(R.string.enter_pin_and_use_fingerprint_to_save_it)
tvPinPrompt.text = getString(R.string.pin_save_title_enter_pin_and_save)
if (usePIN2) {
cbUseFingerprint.isChecked = true
@ -358,17 +358,17 @@ class PinSaveActivity : AppCompatActivity(), FingerprintHelper.FingerprintHelper
fingerprintManager = getSystemService(Context.FINGERPRINT_SERVICE) as FingerprintManager
if (!keyguardManager.isKeyguardSecure) {
Toast.makeText(baseContext, R.string.user_has_not_enabled_lock_screen, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.pin_save_toast_lock_screen_not_enabled, Toast.LENGTH_LONG).show()
return false
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(baseContext, R.string.user_has_not_granted_permission_to_use_fingerprint, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.pin_save_toast_no_permission_to_use_fingerprint, Toast.LENGTH_LONG).show()
return false
}
if (!fingerprintManager!!.hasEnrolledFingerprints()) {
Toast.makeText(baseContext, R.string.user_has_not_registered_any_fingerprints, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.pin_save_toast_no_fingerprints_registered, Toast.LENGTH_LONG).show()
return false
}

View file

@ -9,27 +9,27 @@ import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.IsoDep
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.View
import android.widget.ProgressBar
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_android.android.reader.NfcReader
import com.tangem.card_android.data.*
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.card_android.data.asBundle
import com.tangem.card_android.data.loadFromBundle
import com.tangem.card_common.data.TangemCard
import com.tangem.card_common.reader.CardProtocol
import com.tangem.card_common.tasks.SwapPINTask
import com.tangem.card_common.util.Util
import com.tangem.util.LOG
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.wallet.R
import kotlinx.android.synthetic.main.activity_pin_swap.*
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
class PinSwapActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
companion object {
@ -152,7 +152,7 @@ class PinSwapActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProt
NoExtendedLengthSupportDialog().show(supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
}
} else {
Toast.makeText(baseContext, R.string.try_to_scan_again, Toast.LENGTH_SHORT).show()
Toast.makeText(baseContext, R.string.general_notification_scan_again, Toast.LENGTH_SHORT).show()
}
progressBar!!.progress = 100
progressBar!!.progressTintList = ColorStateList.valueOf(Color.RED)

View file

@ -7,18 +7,18 @@ import android.graphics.Color
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.data.Blockchain
import com.tangem.data.network.CryptonitOtherApi
import com.tangem.di.Navigator
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_prepare_cryptonit_other_api_withdrawal.*
import java.io.IOException
import javax.inject.Inject
@ -77,7 +77,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
cryptonit!!.requestCryptoWithdrawal(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
}
//Toast.makeText(this, strAmount, Toast.LENGTH_LONG).show()

View file

@ -6,20 +6,20 @@ import android.graphics.Color
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.text.InputFilter
import android.view.View
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.Toast
import com.tangem.data.network.Cryptonit
import androidx.appcompat.app.AppCompatActivity
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.data.Blockchain
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.data.network.Cryptonit
import com.tangem.util.DecimalDigitsInputFilter
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_prepare_cryptonit_withdrawal.*
import java.io.IOException
@ -99,7 +99,7 @@ class PrepareCryptonitWithdrawalActivity : AppCompatActivity(), NfcAdapter.Reade
cryptonit!!.requestWithdrawCoins(ctx.blockchain.currency, dblAmount, ctx.coinData!!.wallet)
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
}
}

View file

@ -10,21 +10,21 @@ import android.graphics.Color
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.View
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.data.network.Kraken
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.data.Blockchain
import com.tangem.data.network.Kraken
import com.tangem.di.Navigator
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_prepare_kraken_withdrawal.*
import java.io.IOException
import java.math.BigDecimal
@ -95,7 +95,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
kraken!!.requestWithdrawInfo(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
}
}
@ -170,7 +170,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
val builder = AlertDialog.Builder(this)
// Set a title for alert dialog
builder.setTitle(R.string.please_confirm_withdraw)
builder.setTitle(R.string.kraken_please_confirm_withdraw)
// Set a message for alert dialog
builder.setMessage(String.format("Continue with fee %s %s?", fee!!.toString().trimEnd('0'), ctx.blockchain.currency))
@ -191,20 +191,20 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
kraken!!.requestWithdraw(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
}
}
DialogInterface.BUTTON_NEGATIVE -> {
Toast.makeText(this, R.string.operation_canceled, Toast.LENGTH_LONG).show()
Toast.makeText(this, R.string.kraken_operation_canceled, Toast.LENGTH_LONG).show()
}
}
}
// Set the alert dialog positive/yes button
builder.setPositiveButton(R.string.yes, dialogClickListener)
builder.setPositiveButton(R.string.general_yes, dialogClickListener)
// Set the alert dialog negative/no button
builder.setNegativeButton(R.string.no, dialogClickListener)
builder.setNegativeButton(R.string.general_no, dialogClickListener)
// Initialize the AlertDialog using builder object

View file

@ -15,26 +15,26 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.wallet.TangemContext
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialogNew
import com.tangem.ui.event.DeletingWalletFinish
import com.tangem.card_android.android.nfc.NfcDeviceAntennaLocation
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_android.android.reader.NfcReader
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.card_android.data.asBundle
import com.tangem.card_common.reader.CardProtocol
import com.tangem.card_common.tasks.PurgeTask
import com.tangem.card_common.util.Util
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialogNew
import com.tangem.ui.event.DeletingWalletFinish
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.activity_purge.*
import kotlinx.android.synthetic.main.layout_touch_card.*
import org.greenrobot.eventbus.EventBus
import javax.inject.Inject
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
companion object {
@ -175,7 +175,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc
val intent = Intent()
intent.putExtra(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_erase_wallet))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.nfc_error_cannot_erase_wallet))
setResult(RESULT_INVALID_PIN, intent)
finish()
} catch (e: Exception) {
@ -188,7 +188,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc
if (!NoExtendedLengthSupportDialog.allReadyShowed)
NoExtendedLengthSupportDialog().show(supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
} else
Toast.makeText(baseContext, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.general_notification_scan_again_to_verify, Toast.LENGTH_LONG).show()
progressBar?.progress = 100
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)

View file

@ -4,21 +4,21 @@ import android.content.Intent
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.KeyEvent
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.wallet.CoinEngine
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.ui.event.TransactionFinishWithError
import com.tangem.ui.event.TransactionFinishWithSuccess
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_common.util.Util
import com.tangem.ui.event.TransactionFinishWithError
import com.tangem.ui.event.TransactionFinishWithSuccess
import com.tangem.util.UtilHelper
import com.tangem.wallet.CoinEngine
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import org.greenrobot.eventbus.EventBus
import java.io.IOException
@ -65,7 +65,7 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
when (keyCode) {
KeyEvent.KEYCODE_BACK -> {
Toast.makeText(this, R.string.please_wait, Toast.LENGTH_LONG).show()
Toast.makeText(this, R.string.send_transaction_notification_wait, Toast.LENGTH_LONG).show()
return true
}
}
@ -82,22 +82,22 @@ class SendTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback {
private fun finishWithSuccess() {
val transactionFinishWithSuccess = TransactionFinishWithSuccess()
transactionFinishWithSuccess.message = getString(R.string.transaction_has_been_successfully_signed)
transactionFinishWithSuccess.message = getString(R.string.send_transaction_success)
EventBus.getDefault().post(transactionFinishWithSuccess)
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.transaction_has_been_successfully_signed))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_success))
setResult(RESULT_OK, intent)
finish()
}
private fun finishWithError(message: String) {
val transactionFinishWithError = TransactionFinishWithError()
transactionFinishWithError.message = String.format(getString(R.string.try_again_failed_to_send_transaction), message)
transactionFinishWithError.message = String.format(getString(R.string.send_transaction_error_failed_to_send), message)
EventBus.getDefault().post(transactionFinishWithError)
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, String.format(getString(R.string.try_again_failed_to_send_transaction), message))
intent.putExtra(Constant.EXTRA_MESSAGE, String.format(getString(R.string.send_transaction_error_failed_to_send), message))
setResult(RESULT_CANCELED, intent)
finish()
}

View file

@ -21,7 +21,7 @@ class SettingsActivity : AppCompatActivity() {
private fun initToolbar() {
val toolbar = findViewById<Toolbar>(R.id.toolbar)
toolbar.setTitle(R.string.settings)
toolbar.setTitle(R.string.settings_title)
toolbar.setNavigationIcon(android.R.drawable.ic_menu_close_clear_cancel)
setSupportActionBar(toolbar)
toolbar.setNavigationOnClickListener { finish() }

View file

@ -18,9 +18,9 @@ class NoExtendedLengthSupportDialog : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return AlertDialog.Builder(activity)
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle(R.string.warning)
.setTitle(R.string.dialog_warning)
.setMessage(message)
.setPositiveButton(R.string.got_it) { _, _ -> NoExtendedLengthSupportDialog.allReadyShowed = false }
.setPositiveButton(R.string.dialog_btn_got_it) { _, _ -> NoExtendedLengthSupportDialog.allReadyShowed = false }
.create()
}

View file

@ -38,11 +38,11 @@ public class PINSwapWarningDialog extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle(R.string.your_money_is_at_risk)
.setTitle(R.string.dialog_title_money_is_at_risk)
.setMessage(message)
.setCancelable(true)
.setNegativeButton(R.string.cancel, (dialog, which) -> dismiss())
.setPositiveButton(R.string.contin, (dialog, whichButton) -> mOnPositiveButton.onRefresh())
.setNegativeButton(R.string.general_cancel, (dialog, which) -> dismiss())
.setPositiveButton(R.string.general_continue, (dialog, whichButton) -> mOnPositiveButton.onRefresh())
.create();
}

View file

@ -16,9 +16,9 @@ class RootFoundDialog : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return AlertDialog.Builder(activity)
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle(R.string.device_is_rooted)
.setTitle(R.string.dialog_device_is_rooted)
.setCancelable(false)
.setPositiveButton(R.string.got_it, null)
.setPositiveButton(R.string.dialog_btn_got_it, null)
.create()
}

View file

@ -11,12 +11,12 @@ import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import com.tangem.util.UtilHelper;
import com.tangem.wallet.R;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import com.tangem.util.UtilHelper;
import com.tangem.wallet.R;
/**
* Created by dvol on 06.03.2018.
*/
@ -49,9 +49,9 @@ public class ShowQRCodeDialog extends DialogFragment {
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle(R.string.show_wallet_qr_code)
.setTitle(R.string.loaded_wallet_dialog_show_qr)
.setView(v)
.setPositiveButton(R.string.ok, (dialog,which)->dismiss() )
.setPositiveButton(R.string.general_ok, (dialog, which)->dismiss() )
.create();
}

View file

@ -10,17 +10,17 @@ import android.view.View;
import android.view.WindowManager;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import com.tangem.card_common.util.Log;
import com.tangem.wallet.R;
import java.util.Timer;
import java.util.TimerTask;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
/**
* Created by dvol on 06.03.2018.
*/
@ -67,7 +67,7 @@ public class WaitSecurityDelayDialog extends DialogFragment {
}, 1000, 1000);
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle(R.string.security_delay)
.setTitle(R.string.dialog_security_delay)
.setView(v)
.setCancelable(false)
.create();

View file

@ -4,8 +4,8 @@ import android.annotation.SuppressLint
import android.app.AlertDialog
import android.app.Dialog
import android.os.Bundle
import androidx.appcompat.app.AppCompatDialogFragment
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatDialogFragment
import com.tangem.ui.event.ReadAfterRequest
import com.tangem.ui.event.ReadBeforeRequest
import com.tangem.ui.event.ReadWait
@ -54,7 +54,7 @@ class WaitSecurityDelayDialogNew : AppCompatDialogFragment() {
return AlertDialog.Builder(activity)
.setIcon(R.drawable.tangem_logo_small_new)
.setTitle(R.string.security_delay)
.setTitle(R.string.dialog_security_delay)
.setView(v)
.setCancelable(false)
.create()

View file

@ -149,36 +149,36 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
btnCopy.setOnClickListener { doShareWallet(false) }
btnLoad.setOnClickListener {
val items = arrayOf<CharSequence>(getString(R.string.in_app), getString(R.string.load_via_share_address), getString(R.string.load_via_qr))//, getString(R.string.via_cryptonit), getString(R.string.via_kraken))
val items = arrayOf<CharSequence>(getString(R.string.loaded_wallet_load_via_app), getString(R.string.loaded_wallet_load_via_share_address), getString(R.string.loaded_wallet_load_via_qr))//, getString(R.string.via_cryptonit), getString(R.string.via_kraken))
val cw = android.view.ContextThemeWrapper(activity, R.style.AlertDialogTheme)
val dialog = AlertDialog.Builder(cw).setItems(items
) { _, which ->
when (items[which]) {
getString(R.string.in_app) -> {
getString(R.string.loaded_wallet_load_via_app) -> {
try {
val intent = Intent(Intent.ACTION_VIEW, engine.shareWalletUri)
intent.addCategory(Intent.CATEGORY_DEFAULT)
startActivity(intent)
} catch (e: ActivityNotFoundException) {
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.no_compatible_wallet))
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.loaded_wallet_no_compatible_wallet))
}
}
getString(R.string.load_via_share_address) -> {
getString(R.string.loaded_wallet_load_via_share_address) -> {
doShareWallet(true)
}
getString(R.string.load_via_qr) -> {
getString(R.string.loaded_wallet_load_via_qr) -> {
ShowQRCodeDialog.show(activity as AppCompatActivity?, engine.shareWalletUri.toString())
}
getString(R.string.via_cryptonit) -> {
getString(R.string.loaded_wallet_load_via_cryptonit) -> {
val intent = Intent(activity, PrepareCryptonitWithdrawalActivity::class.java)
ctx.saveToIntent(intent)
startActivityForResult(intent, Constant.REQUEST_CODE_RECEIVE_TRANSACTION)
}
getString(R.string.via_kraken) -> {
getString(R.string.loaded_wallet_load_via_kraken) -> {
val intent = Intent(activity, PrepareKrakenWithdrawalActivity::class.java)
ctx.saveToIntent(intent)
startActivityForResult(intent, Constant.REQUEST_CODE_RECEIVE_TRANSACTION)
@ -198,18 +198,18 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
if (!engine.isExtractPossible)
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, ctx.message)
else if (ctx.card!!.remainingSignatures == 0)
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.card_has_no_remaining_signature))
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.loaded_wallet_warning_no_signature))
else
(activity as LoadedWalletActivity).navigator.showPrepareTransaction(context as Activity, ctx)
else
Toast.makeText(activity, getString(R.string.no_connection), Toast.LENGTH_SHORT).show()
Toast.makeText(activity, getString(R.string.general_error_no_connection), Toast.LENGTH_SHORT).show()
}
btnDetails.setOnClickListener {
if (cardProtocol != null)
(activity as LoadedWalletActivity).navigator.showVerifyCard(context as Activity, ctx)
else
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.need_attach_card_again))
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.general_notification_scan_again_to_verify))
}
btnNewScan.setOnClickListener { (activity as LoadedWalletActivity).navigator.showMain(context as Activity) }
@ -371,9 +371,9 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
pinSwapWarningDialog.setOnRefreshPage { (activity as LoadedWalletActivity).navigator.showPinSwap(context as Activity, newPIN, newPIN2) }
val bundle = Bundle()
if (!CardProtocol.isDefaultPIN(newPIN) || !CardProtocol.isDefaultPIN2(newPIN2))
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.if_you_forget))
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.loaded_wallet_warning_dont_forget_pin))
else
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.if_you_use_default))
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.loaded_wallet_warning_default_pin))
pinSwapWarningDialog.arguments = bundle
activity?.supportFragmentManager?.let { pinSwapWarningDialog.show(it, PINSwapWarningDialog.TAG) }
}
@ -491,7 +491,7 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
if (!NoExtendedLengthSupportDialog.allReadyShowed)
activity?.supportFragmentManager?.let { NoExtendedLengthSupportDialog().show(it, NoExtendedLengthSupportDialog.TAG) }
else
Toast.makeText(activity, R.string.try_to_scan_again, Toast.LENGTH_SHORT).show()
Toast.makeText(activity, R.string.general_notification_scan_again, Toast.LENGTH_SHORT).show()
}
}
}
@ -573,7 +573,7 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
if (srl.isRefreshing) {
tvBalanceLine1.setTextColor(resources.getColor(R.color.primary))
tvBalanceLine1.text = getString(R.string.verifying_in_blockchain)
tvBalanceLine1.text = getString(R.string.loaded_wallet_verifying_in_blockchain)
tvBalanceLine2.text = ""
tvBalance.text = ""
tvBalanceEquivalent.text = ""
@ -707,7 +707,7 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
}
)
} else {
ctx.error = getString(R.string.no_connection)
ctx.error = getString(R.string.general_error_no_connection)
updateViews()
}
}
@ -715,9 +715,9 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
private fun showWarningIfPendingTransactionIsPossible() {
if (ctx.card.signedHashes > 0 && isNewCid(ctx.card.cidDescription)) {
AlertDialog.Builder(context)
.setTitle(R.string.warning)
.setMessage(R.string.card_signed_transactions_warning)
.setPositiveButton(R.string.ok) { _, _ -> }
.setTitle(R.string.dialog_warning)
.setMessage(R.string.loaded_wallet_warning_card_signed_transactions)
.setPositiveButton(R.string.general_ok) { _, _ -> }
.create()
.show()
}
@ -734,7 +734,7 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
serverApiTangem.cardVerifyAndGetInfo(ctx.card)
}
} else {
ctx.error = getString(R.string.no_connection)
ctx.error = getString(R.string.general_error_no_connection)
updateViews()
}
}
@ -776,7 +776,7 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
if (isIntentSafe) {
// create intent to show chooser
val chooser = Intent.createChooser(intent, getString(R.string.share_wallet_address_with))
val chooser = Intent.createChooser(intent, getString(R.string.loaded_wallet_chooser_share))
// verify the intent will resolve to at least one activity
if (intent.resolveActivity(activity!!.packageManager) != null) {
@ -785,13 +785,13 @@ class LoadedWalletFragment : androidx.fragment.app.Fragment(), NfcAdapter.Reader
} else {
val clipboard = activity?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
clipboard.primaryClip = ClipData.newPlainText(txtShare, txtShare)
Toast.makeText(activity, R.string.copied_clipboard, Toast.LENGTH_LONG).show()
Toast.makeText(activity, R.string.loaded_wallet_toast_copied, Toast.LENGTH_LONG).show()
}
} else {
val txtShare = ctx.coinData.wallet
val clipboard = activity?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
clipboard.primaryClip = ClipData.newPlainText(txtShare, txtShare)
Toast.makeText(activity, R.string.copied_clipboard, Toast.LENGTH_LONG).show()
Toast.makeText(activity, R.string.loaded_wallet_toast_copied, Toast.LENGTH_LONG).show()
}
}

View file

@ -28,7 +28,6 @@ import com.tangem.card_common.reader.CardProtocol
import com.tangem.card_common.tasks.CustomReadCardTask
import com.tangem.card_common.tasks.ReadCardInfoTask
import com.tangem.data.Logger
import com.tangem.data.network.ServerApiCommon
import com.tangem.ui.activity.MainActivity
import com.tangem.ui.activity.PinRequestActivity
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
@ -81,9 +80,9 @@ class MainFragment : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
// set phone name
if (nfcDeviceAntenna.fullName != "")
tvNFCHint.text = String.format(getString(R.string.scan_banknote), nfcDeviceAntenna.fullName)
tvNFCHint.text = String.format(getString(R.string.main_screen_scan_banknote), nfcDeviceAntenna.fullName)
else
tvNFCHint.text = String.format(getString(R.string.scan_banknote), getString(R.string.phone))
tvNFCHint.text = String.format(getString(R.string.main_screen_scan_banknote), getString(R.string.main_screen_phone))
// set listeners
fab.setOnClickListener { showMenu(it) }
@ -183,8 +182,8 @@ class MainFragment : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
}
}
card.status == TangemCard.Status.Empty -> (activity as MainActivity).navigator.showEmptyWallet(activity!!, ctx)
card.status == TangemCard.Status.Purged -> Toast.makeText(context, R.string.erased_wallet, Toast.LENGTH_SHORT).show()
card.status == TangemCard.Status.NotPersonalized -> Toast.makeText(context, R.string.not_personalized, Toast.LENGTH_SHORT).show()
card.status == TangemCard.Status.Purged -> Toast.makeText(context, R.string.main_screen_erased_wallet, Toast.LENGTH_SHORT).show()
card.status == TangemCard.Status.NotPersonalized -> Toast.makeText(context, R.string.main_screen_not_personalized, Toast.LENGTH_SHORT).show()
else -> {
// val bundle = Bundle()
@ -200,7 +199,7 @@ class MainFragment : Fragment(), NfcAdapter.ReaderCallback, CardProtocol.Notific
} else {
// remove last UIDs because of error and no card read
rlProgressBar.post {
Toast.makeText(context, R.string.try_to_scan_again, Toast.LENGTH_SHORT).show()
Toast.makeText(context, R.string.general_notification_scan_again, Toast.LENGTH_SHORT).show()
unsuccessReadCount++
if (cardProtocol.error is CardProtocol.TangemException_InvalidPIN)

View file

@ -25,14 +25,14 @@ import com.tangem.card_android.data.loadFromBundle
import com.tangem.card_common.data.TangemCard
import com.tangem.card_common.reader.CardProtocol
import com.tangem.data.Blockchain
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.ui.activity.PinRequestActivity
import com.tangem.ui.activity.VerifyCardActivity
import com.tangem.ui.dialog.PINSwapWarningDialog
import com.tangem.ui.event.DeletingWalletFinish
import com.tangem.wallet.BuildConfig
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.fr_verify_card.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
@ -75,7 +75,7 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
btnOk.setOnClickListener {
val data = prepareResultIntent()
data.putExtra(Constant.EXTRA_MODIFICATION, getString(R.string.update))
data.putExtra(Constant.EXTRA_MODIFICATION, getString(R.string.main_screen_btn_update))
activity?.finish()
}
}
@ -142,9 +142,9 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
pinSwapWarningDialog.setOnRefreshPage { (activity as VerifyCardActivity).navigator.showPinSwap(context as Activity, newPIN, newPIN2) }
val bundle = Bundle()
if (!CardProtocol.isDefaultPIN(newPIN) || !CardProtocol.isDefaultPIN2(newPIN2))
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.if_you_forget))
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.loaded_wallet_warning_dont_forget_pin))
else
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.if_you_use_default))
bundle.putString(Constant.EXTRA_MESSAGE, getString(R.string.loaded_wallet_warning_default_pin))
pinSwapWarningDialog.arguments = bundle
activity?.supportFragmentManager?.let { pinSwapWarningDialog.show(it, PINSwapWarningDialog.TAG) }
}
@ -237,11 +237,11 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
tvManufacturerInfo.text = ctx.card!!.manufacturer.officialName
if (ctx.card!!.isManufacturerConfirmed && ctx.card!!.isCardPublicKeyValid) {
tvCardIdentity.setText(R.string.attested)
tvCardIdentity.setText(R.string.details_attested)
tvCardIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
} else {
tvCardIdentity.setText(R.string.not_confirmed)
tvCardIdentity.setText(R.string.details_not_confirmed)
tvCardIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
}
@ -264,9 +264,9 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
ivBlockchain.setImageResource(Blockchain.getLogoImageResource(ctx.card!!.blockchainID, ctx.card!!.tokenSymbol))
if (ctx.card!!.isReusable!!)
tvReusable.setText(R.string.reusable)
tvReusable.setText(R.string.details_reusable)
else
tvReusable.setText(R.string.one_off_banknote)
tvReusable.setText(R.string.details_one_off_banknote)
var s=""
for(signingM in ctx.card!!.allowedSigningMethod) {
@ -289,15 +289,15 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
when {
ctx.card!!.remainingSignatures == 0 -> {
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
tvRemainingSignatures.setText(R.string.none)
tvRemainingSignatures.setText(R.string.details_none)
}
ctx.card!!.remainingSignatures == 1 -> {
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
tvRemainingSignatures.setText(R.string.last_one)
tvRemainingSignatures.setText(R.string.details_last_one)
}
ctx.card!!.remainingSignatures > 1000 -> {
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
tvRemainingSignatures.setText(R.string.unlimited)
tvRemainingSignatures.setText(R.string.details_unlimited)
}
else -> {
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
@ -348,41 +348,41 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
if (ctx.card!!.useDefaultPIN1()) {
imgPIN.setImageResource(R.drawable.unlock_pin1)
imgPIN.setOnClickListener { Toast.makeText(context, R.string.this_banknote_protected_default_PIN1_code, Toast.LENGTH_LONG).show() }
imgPIN.setOnClickListener { Toast.makeText(context, R.string.details_protected_by_default_pin_1, Toast.LENGTH_LONG).show() }
} else {
imgPIN.setImageResource(R.drawable.lock_pin1)
imgPIN.setOnClickListener { Toast.makeText(context, R.string.this_banknote_protected_user_PIN1_code, Toast.LENGTH_LONG).show() }
imgPIN.setOnClickListener { Toast.makeText(context, R.string.details_protected_by_user_pin_1, Toast.LENGTH_LONG).show() }
}
if (ctx.card!!.pauseBeforePIN2 > 0 && (ctx.card!!.useDefaultPIN2()!! || !ctx.card!!.useSmartSecurityDelay())) {
imgPIN2orSecurityDelay.setImageResource(R.drawable.timer)
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(context, String.format(getString(R.string.this_banknote_will_enforce), ctx.card!!.pauseBeforePIN2 / 1000.0), Toast.LENGTH_LONG).show() }
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(context, String.format(getString(R.string.details_security_delay), ctx.card!!.pauseBeforePIN2 / 1000.0), Toast.LENGTH_LONG).show() }
} else if (ctx.card!!.useDefaultPIN2()!!) {
imgPIN2orSecurityDelay.setImageResource(R.drawable.unlock_pin2)
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(context, R.string.this_banknote_protected_default_PIN2_code, Toast.LENGTH_LONG).show() }
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(context, R.string.details_protected_by_default_pin_2, Toast.LENGTH_LONG).show() }
} else {
imgPIN2orSecurityDelay.setImageResource(R.drawable.lock_pin2)
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(context, R.string.this_banknote_protected_user_PIN2_code, Toast.LENGTH_LONG).show() }
imgPIN2orSecurityDelay.setOnClickListener { Toast.makeText(context, R.string.details_protected_by_user_pin_2, Toast.LENGTH_LONG).show() }
}
if (ctx.card!!.useDevelopersFirmware()!!) {
imgDeveloperVersion.setImageResource(R.drawable.ic_developer_version)
imgDeveloperVersion.visibility = View.VISIBLE
imgDeveloperVersion.setOnClickListener { Toast.makeText(context, R.string.unlocked_banknote_only_development_use, Toast.LENGTH_LONG).show() }
imgDeveloperVersion.setOnClickListener { Toast.makeText(context, R.string.details_unlocked_banknote, Toast.LENGTH_LONG).show() }
} else
imgDeveloperVersion.visibility = View.INVISIBLE
if (ctx.card!!.status == TangemCard.Status.Loaded) {
tvWallet.text = ctx.coinData!!.shortWalletString
if (ctx.card!!.isWalletPublicKeyValid) {
tvWalletIdentity.setText(R.string.possession_proved)
tvWalletIdentity.setText(R.string.details_possession_proved)
tvWalletIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
} else {
tvWalletIdentity.setText(R.string.possession_not_proved)
tvWalletIdentity.setText(R.string.details_possession_not_proved)
tvWalletIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
}
} else {
tvWallet!!.setText(R.string.not_available)
tvWallet!!.setText(R.string.details_not_available)
tvWalletIdentity.setText(R.string.no_data_string)
}
} catch (e: Exception) {
@ -444,7 +444,7 @@ class VerifyCard : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback {
if (!engine!!.hasBalanceInfo()) {
return
} else if (engine.isBalanceNotZero) {
Toast.makeText(context, R.string.cannot_erase_wallet_with_non_zero_balance, Toast.LENGTH_LONG).show()
Toast.makeText(context, R.string.general_error_cannot_erase_wallet_with_non_zero_balance, Toast.LENGTH_LONG).show()
return
}

View file

@ -4,25 +4,25 @@ import android.net.Uri;
import android.text.InputFilter;
import android.util.Log;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.reader.CardProtocol;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.card_common.util.Util;
import com.tangem.data.network.ElectrumRequest;
import com.tangem.data.network.ServerApiElectrum;
import com.tangem.wallet.BCHUtils;
import com.tangem.wallet.BTCUtils;
import com.tangem.card_common.reader.CardProtocol;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.CoinEngine;
import com.tangem.card_common.data.TangemCard;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.util.DerEncodingUtil;
import com.tangem.card_common.util.Util;
import com.tangem.wallet.BCHUtils;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import org.json.JSONArray;
import org.json.JSONException;
@ -105,13 +105,13 @@ public class BtcCashEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (coinData.getUnspentTransactions().size() == 0) {
ctx.setMessage(R.string.please_wait_for_confirmation);
ctx.setMessage(R.string.loaded_wallet_message_refresh);
} else {
return true;
}

View file

@ -124,11 +124,11 @@ public class BinanceEngine extends CoinEngine {
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else {
return true;
}

View file

@ -117,13 +117,13 @@ public class BtcEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (coinData.getUnspentTransactions().size() == 0) {
ctx.setMessage(R.string.please_wait_for_confirmation);
ctx.setMessage(R.string.loaded_wallet_message_refresh);
} else {
return true;
}

View file

@ -7,24 +7,24 @@ import android.util.Log;
import com.tangem.App;
import com.tangem.Constant;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.card_common.util.Util;
import com.tangem.data.local.PendingTransactionsStorage;
import com.tangem.data.network.ServerApiAdalite;
import com.tangem.data.network.model.AdaliteResponse;
import com.tangem.data.network.model.AdaliteResponseUtxo;
import com.tangem.data.network.model.AdaliteTxData;
import com.tangem.data.network.model.AdaliteUtxoData;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.Base58;
import com.tangem.wallet.BuildConfig;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.TangemContext;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.card_common.util.Util;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.BuildConfig;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import org.spongycastle.crypto.Digest;
import org.spongycastle.crypto.util.DigestFactory;
@ -119,13 +119,13 @@ public class CardanoEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (coinData.getUnspentOutputs().size() == 0) {
ctx.setMessage(R.string.please_wait_for_confirmation);
ctx.setMessage(R.string.loaded_wallet_message_refresh);
} else {
return true;
}

View file

@ -4,25 +4,25 @@ import android.net.Uri;
import android.text.InputFilter;
import android.util.Log;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.reader.CardProtocol;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.card_common.util.Util;
import com.tangem.data.network.ServerApiInsight;
import com.tangem.data.network.model.InsightResponse;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.util.DerEncodingUtil;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.Base58;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.btc.BtcEngine;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.reader.CardProtocol;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.card_common.util.Util;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.util.DerEncodingUtil;
import com.tangem.wallet.R;
import java.io.ByteArrayOutputStream;
import java.math.BigDecimal;
@ -102,13 +102,13 @@ public class DucatusEngine extends BtcEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (coinData.getUnspentTransactions().size() == 0) {
ctx.setMessage(R.string.please_wait_for_confirmation);
ctx.setMessage(R.string.loaded_wallet_message_refresh);
} else {
return true;
}

View file

@ -5,7 +5,6 @@ import android.text.InputFilter;
import android.util.Log;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.primitives.Bytes;
import com.google.gson.Gson;
import com.tangem.Constant;
import com.tangem.card_common.data.TangemCard;
@ -16,7 +15,6 @@ import com.tangem.data.Blockchain;
import com.tangem.data.network.ServerApiEos;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.util.DerEncodingUtil;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.BuildConfig;
@ -24,7 +22,6 @@ import com.tangem.wallet.CoinData;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.eos.utilities.EOSFormatter;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
@ -230,11 +227,11 @@ public class EosEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else {
return true;
}

View file

@ -5,23 +5,23 @@ import android.text.InputFilter;
import android.util.Log;
import com.tangem.Constant;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.data.Blockchain;
import com.tangem.data.network.ServerApiInfura;
import com.tangem.data.network.model.InfuraResponse;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.BuildConfig;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.ECDSASignatureETH;
import com.tangem.wallet.EthTransaction;
import com.tangem.wallet.Keccak256;
import com.tangem.wallet.TangemContext;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.BuildConfig;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import org.bitcoinj.core.ECKey;
@ -241,11 +241,11 @@ public class EthEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else {
return true;
}
@ -560,7 +560,7 @@ public class EthEngine extends CoinEngine {
@Override
public void onFail(String method, String message) {
ctx.setError(ctx.getContext().getString(R.string.cannot_calculate_fee_wrong_data_received_from_node));
ctx.setError(ctx.getContext().getString(R.string.confirm_transaction_error_cannot_calculate_fee));
blockchainRequestsCallbacks.onComplete(false);
}
};

View file

@ -3,15 +3,6 @@ package com.tangem.wallet.ltc;
import android.net.Uri;
import android.text.InputFilter;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.Base58;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.btc.BtcEngine;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.reader.CardProtocol;
import com.tangem.card_common.tasks.SignTask;
@ -19,7 +10,16 @@ import com.tangem.card_common.util.Util;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.util.DerEncodingUtil;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.Base58;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.Transaction;
import com.tangem.wallet.UnspentOutputInfo;
import com.tangem.wallet.btc.BtcData;
import com.tangem.wallet.btc.BtcEngine;
import java.io.ByteArrayOutputStream;
import java.math.BigDecimal;
@ -98,13 +98,13 @@ public class LtcEngine extends BtcEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (coinData.getUnspentTransactions().size() == 0) {
ctx.setMessage(R.string.please_wait_for_confirmation);
ctx.setMessage(R.string.loaded_wallet_message_refresh);
} else {
return true;
}

View file

@ -1,7 +1,6 @@
package com.tangem.wallet.matic;
import android.net.Uri;
import android.util.Log;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.data.Blockchain;
@ -74,11 +73,11 @@ public class MaticTokenEngine extends TokenEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else {
return true;
}

View file

@ -9,9 +9,9 @@ import com.tangem.data.network.model.InfuraResponse;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.EthTransaction;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.eth.EthEngine;
import com.tangem.wallet.R;
import java.math.BigInteger;
@ -162,7 +162,7 @@ public class RskEngine extends EthEngine {
@Override
public void onFail(String method, String message) {
ctx.setError(ctx.getContext().getString(R.string.cannot_calculate_fee_wrong_data_received_from_node));
ctx.setError(ctx.getContext().getString(R.string.confirm_transaction_error_cannot_calculate_fee));
blockchainRequestsCallbacks.onComplete(false);
}
};

View file

@ -9,9 +9,9 @@ import com.tangem.data.network.model.InfuraResponse;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.EthTransaction;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.token.TokenEngine;
import com.tangem.wallet.R;
import java.math.BigInteger;
@ -50,13 +50,13 @@ public class RskTokenEngine extends TokenEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (!isBalanceAlterNotZero()) {
ctx.setMessage(ctx.getString(R.string.not_enough_rbtc_for_fee));
ctx.setMessage(ctx.getString(R.string.confirm_transaction_error_not_enough_rbtc_for_fee));
} else {
return true;
}

View file

@ -6,9 +6,13 @@ import android.text.InputFilter;
import android.util.Log;
import com.google.common.base.Strings;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.data.Blockchain;
import com.tangem.data.network.ServerApiInfura;
import com.tangem.data.network.model.InfuraResponse;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.CoinData;
@ -16,13 +20,9 @@ import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.ECDSASignatureETH;
import com.tangem.wallet.EthTransaction;
import com.tangem.wallet.Keccak256;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import com.tangem.wallet.eth.EthData;
import com.tangem.card_common.data.TangemCard;
import com.tangem.card_common.tasks.SignTask;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.R;
import org.bitcoinj.core.ECKey;
@ -308,13 +308,13 @@ public class TokenEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else if (!isBalanceAlterNotZero()) {
ctx.setMessage(ctx.getString(R.string.not_enough_eth_for_fee));
ctx.setMessage(ctx.getString(R.string.confirm_transaction_error_not_enough_eth_for_fee));
} else {
return true;
}

View file

@ -105,11 +105,11 @@ public class XlmEngine extends CoinEngine {
@Override
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else {
return true;
}

View file

@ -15,14 +15,14 @@ import com.tangem.card_common.tasks.SignTask;
import com.tangem.card_common.util.Util;
import com.tangem.data.network.ServerApiRipple;
import com.tangem.data.network.model.RippleResponse;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.BTCUtils;
import com.tangem.wallet.BalanceValidator;
import com.tangem.wallet.CoinData;
import com.tangem.wallet.CoinEngine;
import com.tangem.wallet.TangemContext;
import com.tangem.util.CryptoUtil;
import com.tangem.util.DecimalDigitsInputFilter;
import com.tangem.wallet.R;
import com.tangem.wallet.TangemContext;
import java.math.BigDecimal;
import java.math.BigInteger;
@ -94,11 +94,11 @@ public class XrpEngine extends CoinEngine {
public boolean isExtractPossible() {
if (!hasBalanceInfo()) {
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
} else if (!isBalanceNotZero()) {
ctx.setMessage(R.string.wallet_empty);
ctx.setMessage(R.string.general_wallet_empty);
} else if (awaitingConfirmation()) {
ctx.setMessage(R.string.please_wait_while_previous);
ctx.setMessage(R.string.loaded_wallet_message_wait);
} else {
return true;
}

View file

@ -32,7 +32,7 @@
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:gravity="center_vertical"
android:text="@string/wallet_has_not_been_yet_created"
android:text="@string/empty_wallet_not_created"
android:textAlignment="center"
android:textSize="@dimen/text_size_1_small"
app:layout_constraintBottom_toTopOf="@+id/btnNewWallet"
@ -48,7 +48,7 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/create_wallet"
android:text="@string/empty_wallet_btn_create"
android:textSize="@dimen/text_size_large"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -83,7 +83,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
android:fontFamily="@font/maax"
android:text="@string/blockchain"
android:text="@string/general_blockchain"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small" />
@ -115,7 +115,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
android:fontFamily="@font/maax"
android:text="@string/issuer"
android:text="@string/details_category_issuer"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small" />
@ -160,7 +160,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/scan_again_to_verify_the_card"
android:text="@string/general_notification_scan_again_to_verify"
android:textAlignment="center"
android:textColor="@android:color/darker_gray"
android:textSize="@dimen/text_size_small" />

View file

@ -23,7 +23,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ivLogo"
tools:text="@string/cardano"
tools:text="@string/splash_cardano"
tools:visibility="visible" />
<ImageView
@ -44,7 +44,7 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:fontFamily="@font/maax"
android:text="@string/beta"
android:text="@string/splash_version_name_release"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@android:color/holo_red_light"
@ -58,7 +58,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:fontFamily="@font/maax"
android:text="@string/tangem_ag"
android:text="@string/general_tangem"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textSize="@dimen/text_size_small"
app:layout_constraintBottom_toBottomOf="parent"

View file

@ -33,7 +33,7 @@
android:ems="10"
android:fontFamily="@font/maax"
android:padding="5dp"
android:text="@string/enter_pin_or_use_fingerprint_scanner"
android:text="@string/pin_request_enter_pin_or_use_fingerprint_scanner"
android:textAlignment="center"
android:textSize="@dimen/text_size_medium" />
@ -53,7 +53,7 @@
android:layout_alignParentStart="true"
android:layout_gravity="bottom"
android:layout_marginBottom="16dp"
android:text="@string/ok" />
android:text="@string/general_ok" />
</RelativeLayout>

View file

@ -26,7 +26,7 @@
android:fontFamily="@font/maax"
android:paddingBottom="16dp"
android:paddingTop="16dp"
android:text="@string/enter_pin_and_use_fingerprint_to_save_it"
android:text="@string/pin_save_title_enter_pin_and_save"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
@ -52,7 +52,7 @@
android:layout_marginBottom="4dp"
android:drawableEnd="@mipmap/ic_fp"
android:drawablePadding="8dp"
android:text="@string/protect_with_fingerprint" />
android:text="@string/pin_save_checkbox_protect_with_fingerprint" />
<LinearLayout
android:layout_width="match_parent"
@ -65,7 +65,7 @@
style="@style/AppTheme.RoundedCornerMaterialButton"
android:layout_width="wrap_content"
android:layout_weight="1"
android:text="@string/save"
android:text="@string/pin_save_btn_save"
android:textColor="@color/white" />
<Button
@ -73,7 +73,7 @@
style="@style/AppTheme.RoundedCornerMaterialButton"
android:layout_width="wrap_content"
android:layout_weight="1"
android:text="@string/delete"
android:text="@string/pin_save_btn_delete"
android:textColor="@color/white" />
</LinearLayout>

View file

@ -176,7 +176,7 @@
android:layout_gravity="center"
android:layout_marginStart="7dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -235,7 +235,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -270,7 +270,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/on_banknote"
android:text="@string/general_on_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -303,7 +303,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="2dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -317,7 +317,7 @@
android:layout_marginBottom="1dp"
android:layout_marginStart="4dp"
android:fontFamily="@font/maax"
android:text="@string/including_fee"
android:text="@string/confirm_transaction_including_fee"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_1_small"
app:layout_constraintBottom_toBottomOf="@+id/textView3"
@ -335,7 +335,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:inputType="numberDecimal"
android:padding="12dp"
android:textColor="@color/colorPrimaryDark"
@ -353,7 +353,7 @@
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -370,7 +370,7 @@
android:layout_marginEnd="8dp"
android:padding="2dp"
android:fontFamily="@font/maax"
android:text="@string/error"
android:text="@string/general_error"
android:textColor="@color/white"
android:textAlignment="center"
android:background="@color/bg_err"
@ -385,7 +385,7 @@
android:layout_height="50dp"
android:layout_marginBottom="16dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/btn_load"
android:text="@string/loaded_wallet_btn_load"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

View file

@ -129,7 +129,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:inputType="numberDecimal"
android:imeOptions="actionNext"
android:padding="12dp"
@ -148,7 +148,7 @@
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -169,7 +169,7 @@
android:layout_gravity="center"
android:layout_marginStart="7dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -228,7 +228,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -263,7 +263,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/on_banknote"
android:text="@string/general_on_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -296,7 +296,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="2dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -317,7 +317,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:inputType="numberDecimal"
android:padding="12dp"
android:textColor="@color/colorPrimaryDark"
@ -336,7 +336,7 @@
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -355,7 +355,7 @@
android:background="@color/bg_err"
android:fontFamily="@font/maax"
android:padding="2dp"
android:text="@string/error"
android:text="@string/general_error"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="@dimen/text_size_medium" />
@ -369,7 +369,7 @@
android:layout_height="50dp"
android:layout_marginBottom="16dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/btn_load"
android:text="@string/loaded_wallet_btn_load"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

View file

@ -134,7 +134,7 @@
android:layout_gravity="center"
android:layout_marginStart="7dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -193,7 +193,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -228,7 +228,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/on_banknote"
android:text="@string/general_on_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -262,7 +262,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="2dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -282,7 +282,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:inputType="numberDecimal"
android:imeOptions="actionDone"
android:padding="12dp"
@ -301,7 +301,7 @@
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -319,7 +319,7 @@
android:background="@color/bg_err"
android:fontFamily="@font/maax"
android:padding="2dp"
android:text="@string/error"
android:text="@string/general_error"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="@dimen/text_size_medium" />
@ -333,7 +333,7 @@
android:layout_height="50dp"
android:layout_marginBottom="16dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/btn_load"
android:text="@string/loaded_wallet_btn_load"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

View file

@ -60,7 +60,7 @@
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:fontFamily="@font/maax"
android:text="@string/by_tapping_the_card"
android:text="@string/nfc_purge_warning"
android:textAlignment="center"
android:textColor="@android:color/holo_red_light"
android:textSize="@dimen/text_size_medium" />

View file

@ -33,7 +33,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/maax"
android:text="@string/please_wait"
android:text="@string/send_transaction_notification_wait"
android:textAlignment="center"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"

View file

@ -17,7 +17,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="16dp"
android:text="@string/touch_fingerprint_scanner_to_confirm"
android:text="@string/pin_save_dialog_touch_fingerprint_scanner"
android:textAlignment="center"
android:textSize="@dimen/text_size_medium" />

View file

@ -13,7 +13,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:fontFamily="@font/maax"
android:text="@string/this_banknote_has_enforced_security_delay"
android:text="@string/dialog_this_banknote_has_enforced_security_delay"
android:textAlignment="center"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_1_small"
@ -29,7 +29,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:fontFamily="@font/maax"
android:text="@string/please_hold_banknote"
android:text="@string/dialog_hold_banknote"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="@dimen/text_size_medium"
@ -63,7 +63,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:fontFamily="@font/maax"
android:text="@string/you_may_be_required_to_repeat"
android:text="@string/dialog_you_may_be_required_to_repeat"
android:textAlignment="center"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_small"

View file

@ -170,7 +170,7 @@
android:fontFamily="@font/saira_condensed_bold"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="@string/btn_explore"
android:text="@string/loaded_wallet_btn_explore"
android:textColor="@color/primary_dark" />
<androidx.appcompat.widget.AppCompatButton
@ -187,7 +187,7 @@
android:fontFamily="@font/saira_condensed_bold"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="@string/btn_copy"
android:text="@string/loaded_wallet_btn_copy"
android:textColor="@color/primary_dark" />
</LinearLayout>
@ -256,7 +256,7 @@
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/btn_load"
android:text="@string/loaded_wallet_btn_load"
android:textSize="@dimen/text_size_large" />
<androidx.appcompat.widget.AppCompatButton
@ -269,7 +269,7 @@
android:layout_weight="1"
android:enabled="false"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/btn_extract"
android:text="@string/loaded_wallet_btn_extract"
android:textSize="@dimen/text_size_large" />
</LinearLayout>
@ -296,7 +296,7 @@
android:fontFamily="@font/saira_condensed_bold"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="@string/btn_new_scan"
android:text="@string/loaded_wallet_btn_new_scan"
android:textColor="@color/primary_dark" />
</LinearLayout>

View file

@ -47,7 +47,7 @@
android:layout_marginTop="8dp"
android:layout_marginBottom="24dp"
android:fontFamily="@font/maaxmedium"
android:text="@string/card_id"
android:text="@string/details_title_card_id"
android:textAlignment="center"
android:textSize="@dimen/text_size_medium" />
@ -85,7 +85,7 @@
android:layout_width="@dimen/verify_card_left_col_width"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/issuer"
android:text="@string/details_category_issuer"
android:textSize="@dimen/text_size_medium" />
<TextView
@ -93,7 +93,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/tangem_ag"
android:text="@string/general_tangem"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_medium"
android:textStyle="normal|bold" />
@ -110,7 +110,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/blockchain"
android:text="@string/general_blockchain"
android:textSize="@dimen/text_size_1_small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -121,7 +121,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/blockchain"
android:text="@string/general_blockchain"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold"
@ -150,7 +150,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/signing_method"
android:text="@string/details_signing_method"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -175,7 +175,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/this_card_is"
android:text="@string/details_is_card_reusable"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -200,7 +200,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/signed_transactions"
android:text="@string/details_signed_transactions"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -225,7 +225,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/remaining_signatures"
android:text="@string/details_remaining_signatures"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -250,7 +250,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/time_of_last_signing"
android:text="@string/details_time_of_last_signing"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -276,7 +276,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/features"
android:text="@string/details_features"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -309,7 +309,7 @@
android:layout_width="@dimen/verify_card_left_col_width"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/manufacturer"
android:text="@string/details_category_manufacturer"
android:textSize="@dimen/text_size_medium" />
<TextView
@ -317,7 +317,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/tangem_ag"
android:text="@string/general_tangem"
android:textColor="@color/primary_dark"
android:textSize="@dimen/text_size_medium"
android:textStyle="normal|bold" />
@ -342,7 +342,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/card_identity"
android:text="@string/details_card_identity"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -350,7 +350,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/attested"
android:text="@string/details_attested"
android:textColor="@color/confirmed"
android:textSize="@dimen/text_size_1_small"
android:textStyle="normal|bold" />
@ -367,7 +367,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/firmware"
android:text="@string/details_firmware"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -391,7 +391,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/registration_date"
android:text="@string/details_registration_date"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -424,7 +424,7 @@
android:layout_width="@dimen/verify_card_left_col_width"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/wallet"
android:text="@string/details_category_wallet"
android:textSize="@dimen/text_size_medium" />
<TextView
@ -451,7 +451,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/private_key"
android:text="@string/details_private_key"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -476,7 +476,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/validation_node"
android:text="@string/details_validation_node"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -502,7 +502,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:fontFamily="@font/maax"
android:text="@string/unspents"
android:text="@string/details_unspents"
android:textSize="@dimen/text_size_1_small" />
<TextView
@ -619,7 +619,7 @@
android:layout_height="50dp"
android:layout_margin="10dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/ok"
android:text="@string/general_ok"
android:textSize="@dimen/text_size_large" />
</LinearLayout>

View file

@ -13,6 +13,6 @@
android:fontFamily="@font/saira_condensed_bold"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="@string/btn_details"
android:text="@string/loaded_wallet_btn_details"
android:textColor="@color/primary_dark"
tools:showIn="@layout/fr_loaded_wallet" />

View file

@ -40,7 +40,7 @@
android:layout_centerInParent="true"
android:alpha="1"
android:fontFamily="@font/maaxmedium"
android:text="@string/verifying"
android:text="@string/loaded_wallet_status_verifying"
android:textColor="@color/colorPrimary"
android:textSize="12dp"
android:textStyle="bold" />

View file

@ -90,7 +90,7 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:alpha="1"
android:text="@string/reading"
android:text="@string/general_status_reading"
android:textColor="@color/colorPrimary"
android:textSize="12dp"
android:textStyle="bold" />

View file

@ -36,7 +36,7 @@
android:paddingTop="20dp"
android:paddingRight="20dp"
android:paddingBottom="20dp"
android:text="@string/tap_tangem_card"
android:text="@string/main_screen_tap_card"
android:textAlignment="center"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"

View file

@ -8,42 +8,42 @@
android:id="@+id/action_set_PIN1"
android:enabled="false"
android:orderInCategory="100"
android:title="@string/set_pin_1"
android:title="@string/menu_loaded_wallet_set_pin_1"
app:showAsAction="never"/>
<item
android:id="@+id/action_set_PIN2"
android:enabled="false"
android:orderInCategory="200"
android:title="@string/set_pin_2"
android:title="@string/menu_loaded_wallet_set_pin_2"
app:showAsAction="never"/>
<item
android:id="@+id/action_reset_PIN1"
android:enabled="false"
android:orderInCategory="300"
android:title="@string/reset_pin_1_to_default"
android:title="@string/menu_loaded_wallet_reset_pin_1"
app:showAsAction="never"/>
<item
android:id="@+id/action_reset_PIN2"
android:enabled="false"
android:orderInCategory="400"
android:title="@string/reset_pin_2_to_default"
android:title="@string/menu_loaded_wallet_reset_pin_2"
app:showAsAction="never"/>
<item
android:id="@+id/action_reset_PINs"
android:enabled="false"
android:orderInCategory="500"
android:title="@string/reset_pins_to_default"
android:title="@string/menu_loaded_wallet_reset_pins"
app:showAsAction="never"/>
<item
android:id="@+id/action_purge"
android:enabled="true"
android:orderInCategory="600"
android:title="@string/erase_wallet"
android:title="@string/menu_loaded_wallet_erase_wallet"
app:showAsAction="never"/>
</menu>

View file

@ -4,21 +4,21 @@
<item
android:id="@+id/managePIN"
android:enabled="false"
android:title="@string/manage_user_pin_1" />
android:title="@string/main_menu_manage_pin_1" />
<item
android:id="@+id/managePIN2"
android:enabled="false"
android:title="@string/manage_user_pin_2" />
android:title="@string/main_menu_manage_pin_2" />
<item
android:id="@+id/sendLogs"
android:title="@string/send_logs"
android:title="@string/main_menu_debug_send_logs"
android:visible="false" />
<item
android:id="@+id/settings"
android:title="@string/settings" />
android:title="@string/settings_title" />
<item
android:id="@+id/about"
android:title="@string/about" />
android:title="@string/main_menu_about" />
</menu>

View file

@ -1,268 +1,229 @@
<resources>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<string name="yes">Yes</string>
<string name="no">No</string>
<string name="no_connection">No connection with blockchain nodes</string>
<string name="contin">Continue</string>
<string name="not_found">Not found</string>
<string name="msgCardMustBeLoaded">Card must be loaded first!</string>
<string name="tag_lost_err">Tag lost!</string>
<string name="cmd_suffix">command</string>
<string name="rsp_suffix">response</string>
<string name="section_format">Hello World from section: %1$d</string>
<string name="fingerprint_authenticate_success">Successfully authenticated!</string>
<string name="pin_save_success">Successfully saved!</string>
<string name="pin_save_fail">Saving pin failed</string>
<string name="general_cancel">Cancel</string>
<string name="general_yes">Yes</string>
<string name="general_no">No</string>
<string name="general_error">Error!</string>
<string name="general_error_no_connection">No connection with blockchain nodes</string>
<string name="general_continue">Continue</string>
<string name="error_empty_pin">PIN is empty</string>
<string name="error_pin_confirmation_failed">Please enter the PIN for confirmation!</string>
<string name="enter_pin_and_use_fingerprint_to_save_it">Enter PIN and save it</string>
<string name="enter_pin2_and_use_fingerprint_to_save_it">Enter PIN2 and save it</string>
<string name="bcBitcoin">Bitcoin</string>
<string name="bcEtherium">Etherium</string>
<array name="blockchains">
<item>@string/bcBitcoin</item>
<item>@string/bcEtherium</item>
</array>
<string name="title_activity_settings_feature">Settings</string>
<string name="balance">Balance</string>
<string name="verified_offline">verified offline</string>
<string name="blockchain">Blockchain</string>
<string name="last_withdrawal">Last withdrawal</string>
<string name="try_to_scan_again">Try to scan again</string>
<string name="cannot_erase_wallet_with_non_zero_balance">Cannot erase wallet with non-zero balance</string>
<string name="send_transaction">Send payment</string>
<string name="from_banknote">From banknote</string>
<string name="on_banknote">on banknote</string>
<string name="with_balance">with balance</string>
<string name="send_to_wallet">Send to wallet</string>
<string name="amount">Amount</string>
<string name="m_btc">BTC</string>
<string name="scan_again_to_verify_the_card">Scan again to verify the card</string>
<string name="tangem_ag">Tangem AG</string>
<string name="wallet">Wallet</string>
<string name="need_attach_card_again">Scan again to verify the card</string>
<string name="reading">READING…</string>
<string name="verifying">VERIFYING…</string>
<string name="debug_settings">Дебаг</string>
<string name="select_loading_method">Select loading method</string>
<string name="via_cryptonit">via CRYPTONIT</string>
<string name="via_cryptonit2">via CRYPTONIT2</string>
<string name="via_kraken">via KRAKEN</string>
<string name="in_app">Another wallet app</string>
<string name="load_via_share_address">Share address</string>
<string name="load_via_qr">Show QR-code</string>
<string name="show_wallet_qr_code">LOAD</string>
<string name="beta">BETA</string>
<string name="cardano">Cardano</string>
<string name="general_blockchain">Blockchain</string>
<string name="general_notification_scan_again">Try to scan again</string>
<string name="general_error_cannot_erase_wallet_with_non_zero_balance">Cannot erase wallet with non-zero balance</string>
<string name="general_send_transaction">Send payment</string>
<string name="general_from_banknote">From banknote</string>
<string name="general_on_banknote">on banknote</string>
<string name="general_balance">with balance</string>
<string name="general_send_to_wallet">Send to wallet</string>
<string name="general_amount">Amount</string>
<string name="general_btc">BTC</string>
<string name="general_tangem" translatable="false">Tangem AG</string>
<string name="general_notification_scan_again_to_verify">Scan again to verify the card</string>
<string name="general_status_reading">READING…</string>
<string name="general_wallet_empty">The wallet is empty</string>
<!-- SettingsActivity -->
<string name="сommon">Common</string>
<string name="manual_editing_fee">Manual editing Fee</string>
<string name="settings">Settings</string>
<string name="encryption_modes">Encryption modes</string>
<string-array name="encryption_modes_entries">
<!-- Settings -->
<string name="settings_title">Settings</string>
<string name="settings_category_сommon">Common</string>
<string name="settings_option_manual_editing_fee">Manual editing Fee</string>
<string name="settings_option_encryption_modes">Encryption modes</string>
<string-array name="settings_encryption_modes_entries">
<item>None</item>
<item>Fast</item>
<item>Strong</item>
</string-array>
<string-array name="encryption_mode_values">
<string-array name="settings_encryption_mode_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string name="select_nodes">Select nodes</string>
<string name="settings_option_select_nodes">Select nodes</string>
<!-- dialogs -->
<string name="device_is_rooted">Your Android device is rooted. Security at risk!</string>
<string name="got_it">Got it</string>
<string name="warning">Warning</string>
<string name="security_delay">Security delay</string>
<string name="the_nfc_adapter_length_apdu">Oops.. It seems your smartphone does not support such long NFC packets.</string>
<string name="the_nfc_adapter_length_apdu_advice">Try sending smaller amount or use a smartphone with full NFC support.</string>
<string name="your_money_is_at_risk">Your money is at risk!</string>
<string name="this_banknote_has_enforced_security_delay">This banknote has enforced security delay</string>
<string name="please_hold_banknote">Please hold the banknote firmly\n until the operation is completed…</string>
<string name="you_may_be_required_to_repeat">You may be required to repeat this operation a few times depending on the NFC performance of your smartphone.\n This is made for safety of your funds.</string>
<string name="dialog_device_is_rooted">Your Android device is rooted. Security at risk!</string>
<string name="dialog_btn_got_it">Got it</string>
<string name="dialog_warning">Warning</string>
<string name="dialog_security_delay">Security delay</string>
<string name="dialog_the_nfc_adapter_length_apdu">Oops.. It seems your smartphone does not support such long NFC packets.</string>
<string name="dialog_the_nfc_adapter_length_apdu_advice">Try sending smaller amount or use a smartphone with full NFC support.</string>
<string name="dialog_title_money_is_at_risk">Your money is at risk!</string>
<string name="dialog_this_banknote_has_enforced_security_delay">This banknote has enforced security delay</string>
<string name="dialog_hold_banknote">Please hold the banknote firmly\n until the operation is completed…</string>
<string name="dialog_you_may_be_required_to_repeat">You may be required to repeat this operation a few times depending on the NFC performance of your smartphone.\n This is made for safety of your funds.</string>
<!-- menu main -->
<string name="clean_up">Clean up</string>
<string name="manage_user_pin_1">Manage user PIN1…</string>
<string name="manage_user_pin_2">Manage user PIN2…</string>
<string name="send_logs">Send logs…</string>
<string name="about">About…</string>
<string name="main_menu_manage_pin_1">Manage user PIN1…</string>
<string name="main_menu_manage_pin_2">Manage user PIN2…</string>
<string name="main_menu_debug_send_logs">Send logs…</string>
<string name="main_menu_about">About…</string>
<!-- menu loaded wallet -->
<string name="set_pin_1">Set PIN1</string>
<string name="set_pin_2">Set PIN2</string>
<string name="reset_pin_1_to_default">Reset PIN1 to default</string>
<string name="reset_pin_2_to_default">Reset PIN2 to default</string>
<string name="reset_pins_to_default">Reset PINs to default</string>
<string name="erase_wallet">Erase wallet</string>
<string name="menu_loaded_wallet_set_pin_1">Set PIN1</string>
<string name="menu_loaded_wallet_set_pin_2">Set PIN2</string>
<string name="menu_loaded_wallet_reset_pin_1">Reset PIN1 to default</string>
<string name="menu_loaded_wallet_reset_pin_2">Reset PIN2 to default</string>
<string name="menu_loaded_wallet_reset_pins">Reset PINs to default</string>
<string name="menu_loaded_wallet_erase_wallet">Erase wallet</string>
<!-- LogoActivity -->
<string name="version_name_debug">BETA v.%1$s \n dev \n build %2$s</string>
<string name="version_name_release">BETA v.%1$s</string>
<!-- Splash Screen -->
<string name="splash_version_name_debug">BETA v.%1$s \n dev \n build %2$s</string>
<string name="splash_version_name_release">BETA v.%1$s</string>
<string name="splash_cardano">Cardano</string>
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
<!-- MainActivity -->
<string name="tap_tangem_card">Tap Tangem card with your smartphone</string>
<string name="scan_banknote">Scan a banknote with your \n %1$s \n as shown above</string>
<string name="phone">phone</string>
<string name="last_unspent">Last unspent</string>
<string name="erased_wallet">Wallet was erased</string>
<string name="not_personalized">Not personalized</string>
<string name="new_app_version">There is a new application version: %1$s</string>
<string name="update">Update</string>
<!-- Main -->
<string name="main_screen_tap_card">Tap Tangem card with your smartphone</string>
<string name="main_screen_scan_banknote">Scan a banknote with your \n %1$s \n as shown above</string>
<string name="main_screen_phone">phone</string>
<string name="main_screen_erased_wallet">Wallet was erased</string>
<string name="main_screen_not_personalized">Not personalized</string>
<string name="main_screen_new_version_toast">There is a new application version: %1$s</string>
<string name="main_screen_btn_update">Update</string>
<!-- LoadedWalletActivity, LoadedWalletFragment -->
<string name="wallet_empty">The wallet is empty</string>
<string name="no_compatible_wallet">No compatible wallets installed</string>
<string name="please_wait_while_previous">Please wait while previous transaction is confirmed in blockchain</string>
<string name="please_wait_for_confirmation">Could not obtain all inputs. Swipe down to refresh.</string>
<string name="card_has_no_remaining_signature">Card has no remaining signature!</string>
<string name="explore_in_blockchain">EXPLORE</string>
<string name="swipe_down_to_refresh_data">Swipe down to refresh data</string>
<string name="message">Message!</string>
<string name="error">Error!</string>
<string name="btn_send">Send</string>
<string name="if_you_forget">If you forget your new PIN you will lose your money forever!</string>
<string name="if_you_use_default">If you use default PIN someone can steal your money!</string>
<string name="cannot_obtain_data_from_blockchain">Cannot obtain data from blockchain</string>
<string name="cannot_obtain_data_from_blockchain_no_connection">Cannot obtain data from blockchain (connection refused)</string>
<string name="cannot_obtain_data_from_blockchain_no_answer">Cannot obtain data from blockchain (empty answer received)</string>
<string name="cannot_obtain_data_from_blockchain_communication_error">Cannot obtain data from blockchain (communication error)</string>
<string name="sending_cached_transaction">Sending cached transaction…</string>
<string name="not_implemented">NOT IMPLEMENTED</string>
<string name="this_banknote_protected_default_PIN1_code">This banknote is protected by default PIN1 code</string>
<string name="this_banknote_protected_user_PIN1_code">This banknote is protected by user\'s PIN1 code</string>
<string name="this_banknote_protected_default_PIN2_code">This banknote is protected by default PIN2 code</string>
<string name="this_banknote_protected_user_PIN2_code">This banknote is protected by user\'s PIN2 code</string>
<string name="unlocked_banknote_only_development_use">Unlocked banknote, only for development use</string>
<string name="this_banknote_will_enforce">This banknote will enforce %.0f seconds security delay for all operations requiring PIN2 code</string>
<string name="share_wallet_address_with">Share wallet address with:</string>
<string name="copied_clipboard">Copied to clipboard</string>
<string name="btn_extract">Extract</string>
<string name="btn_load">Load</string>
<string name="btn_explore">Explore</string>
<string name="btn_copy">Copy</string>
<string name="btn_details">Details</string>
<string name="btn_new_scan">New scan</string>
<string name="verifying_in_blockchain">Verifying in blockchain…</string>
<string name="card_signed_transactions_warning">Warning: This card has been already topped up and signed transactions in the past.
<!-- LoadedWallet -->
<string name="loaded_wallet_no_compatible_wallet">No compatible wallets installed</string>
<string name="loaded_wallet_message_wait">Please wait while previous transaction is confirmed in blockchain</string>
<string name="loaded_wallet_message_refresh">Could not obtain all inputs. Swipe down to refresh.</string>
<string name="loaded_wallet_warning_no_signature">Card has no remaining signature!</string>
<string name="loaded_wallet_warning_dont_forget_pin">If you forget your new PIN you will lose your money forever!</string>
<string name="loaded_wallet_warning_default_pin">If you use default PIN someone can steal your money!</string>
<string name="loaded_wallet_error_obtaining_blockchain_data">Cannot obtain data from blockchain</string>
<string name="loaded_wallet_error_blockchain_connection_refused">Cannot obtain data from blockchain (connection refused)</string>
<string name="loaded_wallet_error_blockchain_empty_answer">Cannot obtain data from blockchain (empty answer received)</string>
<string name="loaded_wallet_error_blockchain_communication_error">Cannot obtain data from blockchain (communication error)</string>
<string name="loaded_wallet_chooser_share">Share wallet address with:</string>
<string name="loaded_wallet_toast_copied">Copied to clipboard</string>
<string name="loaded_wallet_btn_extract">Extract</string>
<string name="loaded_wallet_btn_load">Load</string>
<string name="loaded_wallet_btn_explore">Explore</string>
<string name="loaded_wallet_btn_copy">Copy</string>
<string name="loaded_wallet_btn_details">Details</string>
<string name="loaded_wallet_btn_new_scan">New scan</string>
<string name="loaded_wallet_verifying_in_blockchain">Verifying in blockchain…</string>
<string name="loaded_wallet_warning_card_signed_transactions">Warning: This card has been already topped up and signed transactions in the past.
Consider immediate withdrawal of all funds if you have received this card from an untrusted source.</string>
<string name="loaded_wallet_status_verifying">VERIFYING…</string>
<string name="loaded_wallet_load_via_cryptonit">via CRYPTONIT</string>
<string name="loaded_wallet_load_via_cryptonit2">via CRYPTONIT2</string>
<string name="loaded_wallet_load_via_kraken">via KRAKEN</string>
<string name="loaded_wallet_load_via_app">Another wallet app</string>
<string name="loaded_wallet_load_via_share_address">Share address</string>
<string name="loaded_wallet_load_via_qr">Show QR-code</string>
<string name="loaded_wallet_dialog_show_qr">LOAD</string>
<!-- CreateNewWalletActivity, PurgeActivity, SignTransactionActivity -->
<!-- CreateNewWallet, Purge, SignTransaction -->
<string name="now_touch_the_banknote_with_id">Now touch the banknote with ID</string>
<string name="to_create_the_wallet">to create the wallet</string>
<string name="to_erase_the_wallet">to erase the wallet</string>
<string name="to_sign_the_transaction">to sign the payment</string>
<string name="to_change_pin_codes">to change PIN/PIN2 codes</string>
<string name="by_tapping_the_card">By tapping the card, you will permanently remove the blockchain wallet. Ensure there will be no further incoming transactions</string>
<string name="cannot_erase_wallet">Cannot erase wallet. Make sure you enter correct PIN2!</string>
<string name="cannot_create_wallet">Cannot create wallet. Make sure you enter correct PIN2!</string>
<string name="nfc_purge_warning">By tapping the card, you will permanently remove the blockchain wallet. Ensure there will be no further incoming transactions</string>
<string name="nfc_error_cannot_erase_wallet">Cannot erase wallet. Make sure you enter correct PIN2!</string>
<string name="nfc_error_cannot_create_wallet">Cannot create wallet. Make sure you enter correct PIN2!</string>
<!-- PrepareTransactionActivity -->
<string name="enter_wallet_address">enter wallet address</string>
<string name="enter_amount">enter amount</string>
<string name="verify">Verify</string>
<string name="wallet_address_empty">Wallet address is empty</string>
<string name="amount_empty">Amount is empty</string>
<!-- PinRequest -->
<string name="pin_request_enter_new_pin_or_use_fingerprint_scanner">Enter new PIN or use fingerprint scanner</string>
<string name="pin_request_enter_new_pin">Enter new PIN</string>
<string name="pin_request_enter_pin_or_use_fingerprint_scanner">Enter PIN or use fingerprint scanner</string>
<string name="pin_request_enter_pin_2_or_use_fingerprint_scanner">Enter PIN2 or use fingerprint scanner</string>
<string name="pin_request_confirm_new_pin">Confirm new PIN</string>
<string name="pin_request_confirm_new_pin_2">Confirm new PIN2</string>
<string name="pin_request_enter_pin">Enter PIN</string>
<string name="pin_request_prompt_enter_pin_2">Enter PIN2</string>
<string name="pin_request_prompt_new_pin_2_or_fingerprint">Enter new PIN2 or use fingerprint scanner</string>
<string name="pin_request_new_pin_2">Enter new PIN2</string>
<string name="pin_request_error_pin_confirmation_failed">Please enter the PIN for confirmation!</string>
<!-- PinRequestActivity -->
<string name="enter_new_pin_or_use_fingerprint_scanner">Enter new PIN or use fingerprint scanner</string>
<string name="enter_new_pin">Enter new PIN</string>
<string name="enter_pin_or_use_fingerprint_scanner">Enter PIN or use fingerprint scanner</string>
<string name="enter_pin_2_or_use_fingerprint_scanner">Enter PIN2 or use fingerprint scanner</string>
<string name="confirm_new_pin">Confirm new PIN</string>
<string name="confirm_new_pin_2">Confirm new PIN2</string>
<string name="enter_pin">Enter PIN</string>
<string name="enter_pin_2">Enter PIN2</string>
<string name="enter_new_pin_2_or_use_fingerprint_scanner">Enter new PIN2 or use fingerprint scanner</string>
<string name="enter_new_pin_2">Enter new PIN2</string>
<!-- SendTransactionActivity -->
<string name="please_wait">Please wait while the payment is sent…</string>
<string name="transaction_has_been_successfully_signed">Transaction has been successfully signed and sent to blockchain node. Wallet balance will be updated in a while</string>
<string name="try_again_failed_to_send_transaction">Try again. Failed to send transaction (%s)</string>
<string name="cannot_sign_transaction_make_sure_you_enter_correct_pin_2">Cannot sign transaction. Make sure you enter correct PIN2!</string>
<string name="cannot_sign_transaction_wrong_amount">Amount and fee exceed total wallet balance!</string>
<!-- SendTransaction-->
<string name="send_transaction_notification_wait">Please wait while the payment is sent…</string>
<string name="send_transaction_success">Transaction has been successfully signed and sent to blockchain node. Wallet balance will be updated in a while</string>
<string name="send_transaction_error_failed_to_send">Try again. Failed to send transaction (%s)</string>
<string name="send_transaction_error_cannot_sign">Cannot sign transaction. Make sure you enter correct PIN2!</string>
<string name="send_transaction_error_wrong_amount">Amount and fee exceed total wallet balance!</string>
<!-- PrepareTransactionActivity -->
<string name="not_enough_funds_on_your_card">Not enough funds</string>
<string name="unknown_amount_format">Unknown amount format</string>
<string name="incorrect_destination_wallet_address">Incorrect destination wallet address</string>
<string name="destination_wallet_address_equal_source_address">Destination wallet address equal source address</string>
<!-- PrepareTransaction -->
<string name="prepare_transaction_hint_enter_address">enter wallet address</string>
<string name="prepare_transaction_hint_enter_amount">enter amount</string>
<string name="prepare_transaction_btn_verify">Verify</string>
<string name="prepare_transaction_error_not_enough_funds">Not enough funds</string>
<string name="prepare_transaction_error_unknown_amount_format">Unknown amount format</string>
<string name="prepare_transaction_error_incorrect_destination">Incorrect destination wallet address</string>
<string name="prepare_transaction_error_same_address">Destination wallet address equal source address</string>
<string name="prepare_transaction_error_amount_empty">Amount is empty</string>
<!-- ConfirmTransactionActivity -->
<string name="target_wallet_address">target wallet address</string>
<string name="payment_amount">payment amount</string>
<string name="fee_amount">fee amount</string>
<string name="fee">Fee</string>
<string name="send_1">Send</string>
<string name="minimal">Minimal</string>
<string name="normal">Normal</string>
<string name="priority">Priority</string>
<string name="including_fee_">Including fee</string>
<string name="not_including_fee_">Not including fee</string>
<string name="including_fee">(including fee)</string>
<string name="not_including_fee">(not including fee)</string>
<string name="the_obtained_data_is_outdated_try_again">The obtained data is outdated! Try again</string>
<string name="cannot_reach_current_active_blockchain_node_try_again">Cannot reach current active blockchain node. Try again</string>
<string name="cannot_check_balance_no_connection_with_blockchain_nodes">Cannot check balance! No connection with blockchain nodes</string>
<string name="cannot_calculate_fee_tx_length_unknown">Cannot calculate fee! Tx length unknown</string>
<string name="cannot_calculate_fee_wrong_data_received_from_node">Cannot calculate fee! Wrong data received from the node</string>
<string name="the_wallet_is_empty">The wallet is empty</string>
<string name="please_wait_for_confirmation_of_incoming_transaction">Please wait for confirmation of incoming transaction</string>
<string name="not_enough_eth_for_fee">Not enough ETH funds for fee</string>
<string name="not_enough_rbtc_for_fee">Not enough RBTC funds for fee</string>
<string name="pin_2_is_required_to_sign_the_transaction">PIN2 is required to sign the payment</string>
<string name="not_enough_funds">Not enough funds</string>
<string name="service_unavailable">Service unavailable</string>
<string name="risk_delaying">You have a risk of delaying transaction</string>
<!-- ConfirmTransaction -->
<string name="confirm_transaction_hint_target_address">target wallet address</string>
<string name="confirm_transaction_hint_fee_amount">fee amount</string>
<string name="confirm_transaction_fee">Fee</string>
<string name="confirm_transaction_btn_send">Send</string>
<string name="confirm_transaction_btn_fee_minimal">Minimal</string>
<string name="confirm_transaction_btn_fee_normal">Normal</string>
<string name="confirm_transaction_btn_fee_priority">Priority</string>
<string name="confirm_transaction_btn_including_fee">Including fee</string>
<string name="confirm_transaction_btn_not_including_fee">Not including fee</string>
<string name="confirm_transaction_including_fee">(including fee)</string>
<string name="confirm_transaction_not_including_fee">(not including fee)</string>
<string name="confirm_transaction_error_data_is_outdated">The obtained data is outdated! Try again</string>
<string name="confirm_transaction_error_cannot_reach_node">Cannot reach current active blockchain node. Try again</string>
<string name="confirm_transaction_error_cannot_check_balance">Cannot check balance! No connection with blockchain nodes</string>
<string name="confirm_transaction_error_cannot_calculate_fee">Cannot calculate fee! Wrong data received from the node</string>
<string name="confirm_transaction_error_incoming_transaction_unconfirmed">Please wait for confirmation of incoming transaction</string>
<string name="confirm_transaction_error_not_enough_eth_for_fee">Not enough ETH funds for fee</string>
<string name="confirm_transaction_error_not_enough_rbtc_for_fee">Not enough RBTC funds for fee</string>
<string name="confirm_transaction_error_pin_2_is_required">PIN2 is required to sign the payment</string>
<string name="confirm_transaction_error_service_unavailable">Service unavailable</string>
<string name="confirm_transaction_warning_risk_delaying">You have a risk of delaying transaction</string>
<!-- EmptyWalletActivity -->
<string name="wallet_has_not_been_yet_created">Wallet hasn\'t been yet created</string>
<string name="create_wallet">Create Wallet</string>
<!-- EmptyWallet -->
<string name="empty_wallet_not_created">Wallet hasn\'t been yet created</string>
<string name="empty_wallet_btn_create">Create Wallet</string>
<!-- VerifyCardActivity -->
<string name="card_id">Card ID</string>
<string name="signing_method">Signing method</string>
<string name="this_card_is">This card is</string>
<string name="signed_transactions">Signed transactions</string>
<string name="remaining_signatures">Remaining signatures</string>
<string name="time_of_last_signing">Time of last signing</string>
<string name="features">Features</string>
<string name="manufacturer">Manufacturer</string>
<string name="card_identity">Card identity</string>
<string name="attested">Attested</string>
<string name="not_confirmed">Not confirmed</string>
<string name="reusable">Reusable</string>
<string name="none">None</string>
<string name="last_one">Last one!</string>
<string name="unlimited">Unlimited</string>
<string name="one_off_banknote">One-off banknote</string>
<string name="firmware">Firmware</string>
<string name="registration_date">Registration date</string>
<string name="possession_proved">Possession proved</string>
<string name="possession_not_proved">Possession NOT proved</string>
<string name="not_available">not available</string>
<string name="issuer">Issuer</string>
<string name="private_key">Private key</string>
<string name="validation_node">Validation node</string>
<string name="issuer_data">Issuer Data</string>
<string name="unspents">Unspents</string>
<!-- VerifyCard -->
<string name="details_title_card_id">Card ID</string>
<string name="details_signing_method">Signing method</string>
<string name="details_is_card_reusable">This card is</string>
<string name="details_signed_transactions">Signed transactions</string>
<string name="details_remaining_signatures">Remaining signatures</string>
<string name="details_time_of_last_signing">Time of last signing</string>
<string name="details_features">Features</string>
<string name="details_category_manufacturer">Manufacturer</string>
<string name="details_category_wallet">Wallet</string>
<string name="details_card_identity">Card identity</string>
<string name="details_attested">Attested</string>
<string name="details_not_confirmed">Not confirmed</string>
<string name="details_reusable">Reusable</string>
<string name="details_none">None</string>
<string name="details_last_one">Last one!</string>
<string name="details_unlimited">Unlimited</string>
<string name="details_one_off_banknote">One-off banknote</string>
<string name="details_firmware">Firmware</string>
<string name="details_registration_date">Registration date</string>
<string name="details_possession_proved">Possession proved</string>
<string name="details_possession_not_proved">Possession NOT proved</string>
<string name="details_not_available">not available</string>
<string name="details_category_issuer">Issuer</string>
<string name="details_private_key">Private key</string>
<string name="details_validation_node">Validation node</string>
<string name="details_unspents">Unspents</string>
<string name="details_protected_by_default_pin_1">This banknote is protected by default PIN1 code</string>
<string name="details_protected_by_user_pin_1">This banknote is protected by user\'s PIN1 code</string>
<string name="details_protected_by_default_pin_2">This banknote is protected by default PIN2 code</string>
<string name="details_protected_by_user_pin_2">This banknote is protected by user\'s PIN2 code</string>
<string name="details_unlocked_banknote">Unlocked banknote, only for development use</string>
<string name="details_security_delay">This banknote will enforce %.0f seconds security delay for all operations requiring PIN2 code</string>
<!-- PinSaveActivity -->
<string name="save">Save</string>
<string name="delete">Delete</string>
<string name="protect_with_fingerprint">Protect with fingerprint</string>
<string name="touch_fingerprint_scanner_to_confirm">Touch fingerprint scanner to confirm</string>
<string name="user_has_not_enabled_lock_screen">User hasn\'t enabled Lock Screen</string>
<string name="user_has_not_granted_permission_to_use_fingerprint">User hasn\'t granted permission to use Fingerprint</string>
<string name="user_has_not_registered_any_fingerprints">User hasn\'t registered any fingerprints</string>
<!-- PinSave -->
<string name="pin_save_btn_save">Save</string>
<string name="pin_save_btn_delete">Delete</string>
<string name="pin_save_checkbox_protect_with_fingerprint">Protect with fingerprint</string>
<string name="pin_save_dialog_touch_fingerprint_scanner">Touch fingerprint scanner to confirm</string>
<string name="pin_save_toast_lock_screen_not_enabled">User hasn\'t enabled Lock Screen</string>
<string name="pin_save_toast_no_permission_to_use_fingerprint">User hasn\'t granted permission to use Fingerprint</string>
<string name="pin_save_toast_no_fingerprints_registered">User hasn\'t registered any fingerprints</string>
<string name="pin_save_notification_failed">Saving pin failed</string>
<string name="pin_save_title_enter_pin_and_save">Enter PIN and save it</string>
<string name="pin_save_title_enter_pin2_and_save">Enter PIN2 and save it</string>
<!-- PrepareCryptonitWithdrawal -->
<string name="cryptonit_payment">CRYPTONIT payment</string>
@ -287,7 +248,7 @@
<string name="kraken_not_enough_account_data">Please enter account data</string>
<string name="kraken_request_balance">Get balance</string>
<string name="kraken_request_withdrawal">Withdrawal</string>
<string name="operation_canceled">Operation canceled!</string>
<string name="please_confirm_withdraw">Please confirm withdraw</string>
<string name="kraken_operation_canceled">Operation canceled!</string>
<string name="kraken_please_confirm_withdraw">Please confirm withdraw</string>
</resources>

View file

@ -2,23 +2,23 @@
<PreferenceCategory
android:key="@string/pref_category_common"
android:title="@string/сommon">
android:title="@string/settings_category_сommon">
<CheckBoxPreference
android:defaultValue="false"
android:key="@string/pref_manual_editing_fee"
android:title="@string/manual_editing_fee" />
android:title="@string/settings_option_manual_editing_fee" />
<Preference
android:key="@string/pref_select_nodes"
android:title="@string/select_nodes" />
android:title="@string/settings_option_select_nodes" />
<ListPreference
android:defaultValue="0"
android:entries="@array/encryption_modes_entries"
android:entryValues="@array/encryption_mode_values"
android:entries="@array/settings_encryption_modes_entries"
android:entryValues="@array/settings_encryption_mode_values"
android:key="@string/pref_encryption_modes"
android:title="@string/encryption_modes" />
android:title="@string/settings_option_encryption_modes" />
</PreferenceCategory>

View file

@ -78,9 +78,9 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
isIncludeFee = intent.getBooleanExtra(Constant.EXTRA_FEE_INCLUDED, true)
if (isIncludeFee)
tvIncFee.setText(R.string.including_fee)
tvIncFee.setText(R.string.confirm_transaction_including_fee)
else
tvIncFee.setText(R.string.not_including_fee)
tvIncFee.setText(R.string.confirm_transaction_not_including_fee)
amount = CoinEngine.Amount(intent.getStringExtra(Constant.EXTRA_AMOUNT), intent.getStringExtra(Constant.EXTRA_AMOUNT_CURRENCY))
@ -123,14 +123,14 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
tvFeeEquivalent.text = eqFee
if (!ctx.coinData!!.amountEquivalentDescriptionAvailable) {
tvFeeEquivalent.error = getString(R.string.service_unavailable)
tvFeeEquivalent.error = getString(R.string.confirm_transaction_error_service_unavailable)
tvCurrency2.visibility = View.GONE
tvFeeEquivalent.visibility = View.GONE
} else
tvFeeEquivalent.error = null
if (sp.getBoolean(getString(R.string.pref_manual_editing_fee), false))
toastHelper.showSingleToast(this@ConfirmTransactionActivity, getString(R.string.risk_delaying))
toastHelper.showSingleToast(this@ConfirmTransactionActivity, getString(R.string.confirm_transaction_warning_risk_delaying))
} catch (e: Exception) {
e.printStackTrace()
@ -148,14 +148,14 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
calendar.add(Calendar.MINUTE, -1)
if (dtVerified == null || dtVerified!!.before(calendar.time)) {
finishWithError(Activity.RESULT_CANCELED, getString(R.string.the_obtained_data_is_outdated_try_again))
finishWithError(Activity.RESULT_CANCELED, getString(R.string.confirm_transaction_error_data_is_outdated))
return@setOnClickListener
}
val engineCoin = CoinEngineFactory.create(ctx)
if (engineCoin!!.isNeedCheckNode && !nodeCheck) {
Toast.makeText(baseContext, getString(R.string.cannot_reach_current_active_blockchain_node_try_again), Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, getString(R.string.confirm_transaction_error_cannot_reach_node), Toast.LENGTH_LONG).show()
return@setOnClickListener
}
@ -163,20 +163,20 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
val txAmount = engineCoin.convertToAmount(etAmount.text.toString(), tvCurrency.text.toString())
if (!engineCoin.hasBalanceInfo()) {
finishWithError(Activity.RESULT_CANCELED, getString(R.string.cannot_check_balance_no_connection_with_blockchain_nodes))
finishWithError(Activity.RESULT_CANCELED, getString(R.string.confirm_transaction_error_cannot_check_balance))
return@setOnClickListener
} else if (!engineCoin.isBalanceNotZero) {
finishWithError(Activity.RESULT_CANCELED, getString(R.string.the_wallet_is_empty))
finishWithError(Activity.RESULT_CANCELED, getString(R.string.general_wallet_empty))
return@setOnClickListener
} else if (!engineCoin.isExtractPossible) {
finishWithError(Activity.RESULT_CANCELED, getString(R.string.please_wait_for_confirmation_of_incoming_transaction))
finishWithError(Activity.RESULT_CANCELED, getString(R.string.confirm_transaction_error_incoming_transaction_unconfirmed))
return@setOnClickListener
}
if (!engineCoin.checkNewTransactionAmountAndFee(txAmount, txFee, isIncludeFee)) {
finishWithError(Activity.RESULT_CANCELED, getString(R.string.not_enough_funds_on_your_card))
finishWithError(Activity.RESULT_CANCELED, getString(R.string.prepare_transaction_error_not_enough_funds))
return@setOnClickListener
}
@ -187,7 +187,7 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
intent.putExtra(Constant.EXTRA_FEE_INCLUDED, isIncludeFee)
startActivityForResult(intent, Constant.REQUEST_CODE_REQUEST_PIN2_)
} else
Toast.makeText(this, getString(R.string.no_connection), Toast.LENGTH_SHORT).show()
Toast.makeText(this, getString(R.string.general_error_no_connection), Toast.LENGTH_SHORT).show()
}
val coinEngine = CoinEngineFactory.create(ctx)
@ -253,7 +253,7 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
intent.putExtra(Constant.EXTRA_FEE_INCLUDED, isIncludeFee)
startActivityForResult(intent, Constant.REQUEST_CODE_SIGN_TRANSACTION)
} else
Toast.makeText(baseContext, R.string.pin_2_is_required_to_sign_the_transaction, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.confirm_transaction_error_pin_2_is_required, Toast.LENGTH_LONG).show()
}
}

View file

@ -15,14 +15,14 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.tangem.App
import com.tangem.Constant
import com.tangem.data.Blockchain
import com.tangem.di.Navigator
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.data.Blockchain
import com.tangem.di.Navigator
import com.tangem.util.UtilHelper
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.tangemAccess.activity_prepare_transaction.*
import java.io.IOException
import javax.inject.Inject
@ -92,7 +92,7 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
btnVerify.setOnClickListener {
if (!UtilHelper.isOnline(this)) {
Toast.makeText(this, R.string.no_connection, Toast.LENGTH_LONG).show()
Toast.makeText(this, R.string.general_error_no_connection, Toast.LENGTH_LONG).show()
return@setOnClickListener
}
@ -102,22 +102,22 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
try {
if (!engine.checkNewTransactionAmount(amount))
etAmount.error = getString(R.string.not_enough_funds_on_your_card)
etAmount.error = getString(R.string.prepare_transaction_error_not_enough_funds)
else
etAmount.error = null
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
}
// check wallet address
if (!engine1.validateAddress(etWallet.text.toString())) {
etWallet.error = getString(R.string.incorrect_destination_wallet_address)
etWallet.error = getString(R.string.prepare_transaction_error_incorrect_destination)
return@setOnClickListener
} else
etWallet.error = null
if (etWallet.text.toString() == ctx.coinData!!.wallet) {
etWallet.error = getString(R.string.destination_wallet_address_equal_source_address)
etWallet.error = getString(R.string.prepare_transaction_error_same_address)
return@setOnClickListener
}

View file

@ -19,21 +19,21 @@ import com.tangem.card_android.android.nfc.NfcDeviceAntennaLocation
import com.tangem.card_android.android.nfc.NfcLifecycleObserver
import com.tangem.card_android.android.reader.NfcManager
import com.tangem.card_android.android.reader.NfcReader
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import com.tangem.card_android.data.asBundle
import com.tangem.card_common.reader.CardProtocol
import com.tangem.card_common.tasks.SignTask
import com.tangem.card_common.util.Util
import com.tangem.wallet.CoinEngine
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.TangemContext
import com.tangem.ui.dialog.NoExtendedLengthSupportDialog
import com.tangem.ui.dialog.WaitSecurityDelayDialog
import com.tangem.util.LOG
import com.tangem.wallet.CoinEngine
import com.tangem.wallet.CoinEngineFactory
import com.tangem.wallet.R
import com.tangem.wallet.TangemContext
import kotlinx.android.synthetic.main.layout_progress_horizontal.*
import kotlinx.android.synthetic.main.layout_touch_card.*
import com.tangem.card_android.data.asBundle
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
import kotlinx.android.synthetic.tangemAccess.activity_prepare_transaction.*
@ -145,7 +145,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
} catch (e: CardProtocol.TangemException_WrongAmount) {
try {
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
intent.putExtra(EXTRA_TANGEM_CARD_UID, ctx.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, ctx.card.asBundle)
setResult(Activity.RESULT_CANCELED, intent)
@ -196,7 +196,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
progressBar?.visibility = View.INVISIBLE
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_make_sure_you_enter_correct_pin_2))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_cannot_sign))
intent.putExtra(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
setResult(Constant.RESULT_INVALID_PIN_, intent)
@ -209,7 +209,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
if (cardProtocol.error is CardProtocol.TangemException_WrongAmount) {
try {
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
intent.putExtra(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
setResult(Activity.RESULT_CANCELED, intent)
@ -221,11 +221,11 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar?.post {
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
if (!NoExtendedLengthSupportDialog.allReadyShowed) {
NoExtendedLengthSupportDialog.message = getText(R.string.the_nfc_adapter_length_apdu).toString() + "\n" + getText(R.string.the_nfc_adapter_length_apdu_advice).toString()
NoExtendedLengthSupportDialog.message = getText(R.string.dialog_the_nfc_adapter_length_apdu).toString() + "\n" + getText(R.string.dialog_the_nfc_adapter_length_apdu_advice).toString()
NoExtendedLengthSupportDialog().show(supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
}
} else {
Toast.makeText(baseContext, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.general_notification_scan_again, Toast.LENGTH_LONG).show()
}
progressBar?.progress = 100
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)

View file

@ -15,7 +15,7 @@
android:fontFamily="@font/maax"
android:paddingTop="8dp"
android:paddingBottom="4dp"
android:text="@string/send_transaction"
android:text="@string/general_send_transaction"
android:textAlignment="center"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
@ -42,7 +42,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/from_banknote"
android:text="@string/general_from_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -63,7 +63,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -91,7 +91,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -106,7 +106,7 @@
android:layout_height="wrap_content"
android:enabled="false"
android:fontFamily="@font/maax"
android:hint="@string/target_wallet_address"
android:hint="@string/confirm_transaction_hint_target_address"
android:inputType="textMultiLine"
android:maxLines="2"
android:padding="12dp"
@ -125,7 +125,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -157,7 +157,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:padding="12dp"
@ -177,7 +177,7 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_1_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -209,7 +209,7 @@
android:layout_marginTop="16dp"
android:layout_marginBottom="4dp"
android:fontFamily="@font/maax"
android:text="@string/fee"
android:text="@string/confirm_transaction_fee"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -234,7 +234,7 @@
android:layout_width="100dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/minimal"
android:text="@string/confirm_transaction_btn_fee_minimal"
android:textSize="@dimen/text_size_medium" />
<RadioButton
@ -243,7 +243,7 @@
android:layout_width="100dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/normal"
android:text="@string/confirm_transaction_btn_fee_normal"
android:textSize="@dimen/text_size_medium" />
<RadioButton
@ -252,7 +252,7 @@
android:layout_width="100dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/priority"
android:text="@string/confirm_transaction_btn_fee_priority"
android:textSize="@dimen/text_size_medium" />
</info.hoang8f.android.segmented.SegmentedGroup>
@ -269,7 +269,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:fontFamily="@font/maax"
android:hint="@string/fee_amount"
android:hint="@string/confirm_transaction_hint_fee_amount"
android:inputType="numberDecimal"
android:padding="12dp"
android:textColor="@color/black"
@ -288,7 +288,7 @@
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/etFee"
@ -318,7 +318,7 @@
android:layout_height="50dp"
android:layout_marginBottom="16dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/send_1"
android:text="@string/confirm_transaction_btn_send"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

View file

@ -14,7 +14,7 @@
android:fontFamily="@font/maax"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@string/send_transaction"
android:text="@string/general_send_transaction"
android:textAlignment="center"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
@ -43,7 +43,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/maax"
android:text="@string/from_banknote"
android:text="@string/general_from_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -65,7 +65,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="12dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -114,7 +114,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -140,7 +140,7 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:fontFamily="@font/maax"
android:hint="@string/enter_wallet_address"
android:hint="@string/prepare_transaction_hint_enter_address"
android:imeOptions="actionNext"
android:inputType="text|textMultiLine|textNoSuggestions"
android:padding="12dp"
@ -164,7 +164,7 @@
android:layout_marginTop="24dp"
android:layout_marginBottom="8dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -185,7 +185,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:padding="12dp"
@ -205,7 +205,7 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_1_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -234,7 +234,7 @@
android:layout_width="150dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/including_fee_"
android:text="@string/confirm_transaction_btn_including_fee"
android:textSize="@dimen/text_size_medium" />
<RadioButton
@ -243,7 +243,7 @@
android:layout_width="150dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/not_including_fee_"
android:text="@string/confirm_transaction_btn_not_including_fee"
android:textSize="@dimen/text_size_medium" />
</info.hoang8f.android.segmented.SegmentedGroup>
@ -257,7 +257,7 @@
android:layout_height="50dp"
android:layout_marginBottom="16dp"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/verify"
android:text="@string/prepare_transaction_btn_verify"
android:textSize="@dimen/text_size_large"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Tangem Access</string>
<string name="app_name" translatable="false">Tangem Access</string>
</resources>

View file

@ -64,9 +64,9 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
isIncludeFee = intent.getBooleanExtra(Constant.EXTRA_FEE_INCLUDED, true)
if (isIncludeFee)
tvIncFee.setText(R.string.including_fee)
tvIncFee.setText(R.string.confirm_transaction_including_fee)
else
tvIncFee.setText(R.string.not_including_fee)
tvIncFee.setText(R.string.confirm_transaction_not_including_fee)
amount = CoinEngine.Amount(intent.getStringExtra(Constant.EXTRA_AMOUNT), intent.getStringExtra(Constant.EXTRA_AMOUNT_CURRENCY))
@ -107,7 +107,7 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
tvFeeEquivalent.text = eqFee
if (!ctx.coinData!!.amountEquivalentDescriptionAvailable) {
tvFeeEquivalent.error = getString(R.string.service_unavailable)
tvFeeEquivalent.error = getString(R.string.confirm_transaction_error_service_unavailable)
tvCurrency2.visibility = View.GONE
tvFeeEquivalent.visibility = View.GONE
} else
@ -129,14 +129,14 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
calendar.add(Calendar.MINUTE, -1)
if (dtVerified == null || dtVerified!!.before(calendar.time)) {
finishWithError(Activity.RESULT_CANCELED, getString(R.string.the_obtained_data_is_outdated_try_again))
finishWithError(Activity.RESULT_CANCELED, getString(R.string.confirm_transaction_error_data_is_outdated))
return@setOnClickListener
}
val engineCoin = CoinEngineFactory.createCardano(ctx)
if (engineCoin!!.isNeedCheckNode && !nodeCheck) {
Toast.makeText(baseContext, getString(R.string.cannot_reach_current_active_blockchain_node_try_again), Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, getString(R.string.confirm_transaction_error_cannot_reach_node), Toast.LENGTH_LONG).show()
return@setOnClickListener
}
@ -181,7 +181,7 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
startActivityForResult(intent, Constant.REQUEST_CODE_SIGN_TRANSACTION)
} else
Toast.makeText(this, getString(R.string.no_connection), Toast.LENGTH_SHORT).show()
Toast.makeText(this, getString(R.string.general_error_no_connection), Toast.LENGTH_SHORT).show()
}
progressBar.visibility = View.VISIBLE
@ -245,7 +245,7 @@ class ConfirmTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
intent.putExtra(Constant.EXTRA_FEE_INCLUDED, isIncludeFee)
startActivityForResult(intent, Constant.REQUEST_CODE_SIGN_TRANSACTION)
} else
Toast.makeText(baseContext, R.string.pin_2_is_required_to_sign_the_transaction, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.confirm_transaction_error_pin_2_is_required, Toast.LENGTH_LONG).show()
}
}

View file

@ -97,19 +97,19 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
btnVerify.setOnClickListener {
if (!UtilHelper.isOnline(this)) {
Toast.makeText(this, R.string.no_connection, Toast.LENGTH_LONG).show()
Toast.makeText(this, R.string.general_error_no_connection, Toast.LENGTH_LONG).show()
return@setOnClickListener
}
// check on empty wallet address
if (etWallet.text.toString() == "") {
etWallet.error = getString(R.string.wallet_address_empty)
etWallet.error = getString(R.string.general_wallet_empty)
return@setOnClickListener
}
// check on empty amount
if (etAmount.text.toString() == "") {
etAmount.error = getString(R.string.amount_empty)
etAmount.error = getString(R.string.prepare_transaction_error_amount_empty)
return@setOnClickListener
}
@ -119,16 +119,16 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
// check amount
try {
if (!engine.checkNewTransactionAmount(amount))
etAmount.error = getString(R.string.not_enough_funds_on_your_card)
etAmount.error = getString(R.string.prepare_transaction_error_not_enough_funds)
else
etAmount.error = null
} catch (e: Exception) {
etAmount.error = getString(R.string.unknown_amount_format)
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
}
// check wallet address
if (!engine.validateAddress(etWallet.text.toString())) {
etWallet.error = getString(R.string.incorrect_destination_wallet_address)
etWallet.error = getString(R.string.prepare_transaction_error_incorrect_destination)
return@setOnClickListener
} else
etWallet.error = null

View file

@ -226,7 +226,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
} catch (e: CardProtocol.TangemException_WrongAmount) {
try {
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
intent.putExtra(EXTRA_TANGEM_CARD_UID, ctx.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, ctx.card.asBundle)
setResult(Activity.RESULT_CANCELED, intent)
@ -277,7 +277,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
progressBar?.visibility = View.INVISIBLE
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_make_sure_you_enter_correct_pin_2))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_cannot_sign))
intent.putExtra(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
setResult(Constant.RESULT_INVALID_PIN_, intent)
@ -290,7 +290,7 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
if (cardProtocol.error is CardProtocol.TangemException_WrongAmount) {
try {
val intent = Intent()
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
intent.putExtra(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
intent.putExtra(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
intent.putExtra(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
setResult(Activity.RESULT_CANCELED, intent)
@ -302,11 +302,11 @@ class SignTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar?.post {
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
if (!NoExtendedLengthSupportDialog.allReadyShowed) {
NoExtendedLengthSupportDialog.message = getText(R.string.the_nfc_adapter_length_apdu).toString() + "\n" + getText(R.string.the_nfc_adapter_length_apdu_advice).toString()
NoExtendedLengthSupportDialog.message = getText(R.string.dialog_the_nfc_adapter_length_apdu).toString() + "\n" + getText(R.string.dialog_the_nfc_adapter_length_apdu_advice).toString()
NoExtendedLengthSupportDialog().show(supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
}
} else {
Toast.makeText(baseContext, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
Toast.makeText(baseContext, R.string.general_notification_scan_again, Toast.LENGTH_LONG).show()
}
progressBar?.progress = 100
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)

View file

@ -14,7 +14,7 @@
android:fontFamily="@font/maax"
android:paddingTop="8dp"
android:paddingBottom="4dp"
android:text="@string/send_transaction"
android:text="@string/general_send_transaction"
android:textAlignment="center"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
@ -41,7 +41,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/maax"
android:text="@string/from_banknote"
android:text="@string/general_from_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
android:visibility="gone" />
@ -64,7 +64,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
android:visibility="gone" />
@ -94,7 +94,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -109,7 +109,7 @@
android:layout_height="wrap_content"
android:enabled="false"
android:fontFamily="@font/maax"
android:hint="@string/target_wallet_address"
android:hint="@string/confirm_transaction_hint_target_address"
android:inputType="textMultiLine"
android:maxLines="2"
android:padding="12dp"
@ -128,7 +128,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -160,7 +160,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:padding="12dp"
@ -180,7 +180,7 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_1_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -212,7 +212,7 @@
android:layout_marginTop="16dp"
android:layout_marginBottom="4dp"
android:fontFamily="@font/maax"
android:text="@string/fee"
android:text="@string/confirm_transaction_fee"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -237,7 +237,7 @@
android:layout_width="100dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/minimal"
android:text="@string/confirm_transaction_btn_fee_minimal"
android:textSize="@dimen/text_size_medium" />
<RadioButton
@ -246,7 +246,7 @@
android:layout_width="100dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/normal"
android:text="@string/confirm_transaction_btn_fee_normal"
android:textSize="@dimen/text_size_medium" />
<RadioButton
@ -255,7 +255,7 @@
android:layout_width="100dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/priority"
android:text="@string/confirm_transaction_btn_fee_priority"
android:textSize="@dimen/text_size_medium" />
</info.hoang8f.android.segmented.SegmentedGroup>
@ -273,7 +273,7 @@
android:layout_marginBottom="4dp"
android:enabled="false"
android:fontFamily="@font/maax"
android:hint="@string/fee_amount"
android:hint="@string/confirm_transaction_hint_fee_amount"
android:inputType="numberDecimal"
android:padding="12dp"
android:textColor="@color/black"
@ -292,7 +292,7 @@
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/etFee"

View file

@ -15,7 +15,7 @@
android:fontFamily="@font/maax"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@string/send_transaction"
android:text="@string/general_send_transaction"
android:textAlignment="center"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_large"
@ -45,7 +45,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/maax"
android:text="@string/from_banknote"
android:text="@string/general_from_banknote"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -67,7 +67,7 @@
android:layout_marginStart="7dp"
android:layout_marginTop="12dp"
android:fontFamily="@font/maax"
android:text="@string/with_balance"
android:text="@string/general_balance"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium" />
@ -116,7 +116,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:fontFamily="@font/maax"
android:text="@string/send_to_wallet"
android:text="@string/general_send_to_wallet"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -143,7 +143,7 @@
android:layout_marginEnd="8dp"
android:drawableEnd="@android:drawable/ic_menu_close_clear_cancel"
android:fontFamily="@font/maax"
android:hint="@string/enter_wallet_address"
android:hint="@string/prepare_transaction_hint_enter_address"
android:imeOptions="actionNext"
android:inputType="text|textMultiLine|textNoSuggestions"
android:padding="12dp"
@ -167,7 +167,7 @@
android:layout_marginTop="24dp"
android:layout_marginBottom="8dp"
android:fontFamily="@font/maax"
android:text="@string/amount"
android:text="@string/general_amount"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_medium"
app:layout_constraintBottom_toBottomOf="parent"
@ -187,7 +187,7 @@
android:layout_height="wrap_content"
android:digits="0123456789.,"
android:fontFamily="@font/maax"
android:hint="@string/enter_amount"
android:hint="@string/prepare_transaction_hint_enter_amount"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:padding="12dp"
@ -207,7 +207,7 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:fontFamily="@font/maax"
android:text="@string/m_btc"
android:text="@string/general_btc"
android:textColor="@color/primary"
android:textSize="@dimen/text_size_1_large"
app:layout_constraintBottom_toBottomOf="parent"
@ -236,7 +236,7 @@
android:layout_width="150dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/including_fee_"
android:text="@string/confirm_transaction_btn_including_fee"
android:textSize="@dimen/text_size_medium" />
<RadioButton
@ -245,7 +245,7 @@
android:layout_width="150dp"
android:layout_height="wrap_content"
android:fontFamily="@font/saira_condensed_bold"
android:text="@string/not_including_fee_"
android:text="@string/confirm_transaction_btn_not_including_fee"
android:textSize="@dimen/text_size_medium" />
</info.hoang8f.android.segmented.SegmentedGroup>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Cardano</string>
<string name="app_name" translatable="false">Cardano</string>
<string name="verify">Confirm</string>
<string name="send_1">Checkout</string>

View file

@ -19,9 +19,9 @@ class NfcEnableDialog : DialogFragment() {
val builder = context?.let { AlertDialog.Builder(it) }
builder?.setCancelable(false)
?.setIcon(R.drawable.ic_action_nfc_gray)
?.setTitle(R.string.nfc_disabled)
?.setMessage(R.string.enable_nfc)
?.setPositiveButton(R.string.dialog_ok
?.setTitle(R.string.dialog_nfc_enable_title)
?.setMessage(R.string.dialog_nfc_enable_text)
?.setPositiveButton(R.string.general_ok
) { _, _ ->
activity?.startActivity(Intent(Settings.ACTION_NFC_SETTINGS))
}

View file

@ -1,9 +1,9 @@
<resources>
<string name="app_name">tangemcard</string>
<string name="dialog_ok">OK</string>
<string name="general_ok">OK</string>
<string name="dialog_quit">Quit</string>
<string name="nfc_disabled">Enable NFC?</string>
<string name="enable_nfc">This app is useless when NFC is disabled. Reader mode depends on it. Hit OK to go to Settings, where you can enable NFC.</string>
<string name="dialog_nfc_enable_title">Enable NFC?</string>
<string name="dialog_nfc_enable_text">This app is useless when NFC is disabled. Reader mode depends on it. Hit OK to go to Settings, where you can enable NFC.</string>
</resources>