Updated on 2026-08-14
This commit is contained in:
parent
858f609667
commit
9bb8931709
84 changed files with 619 additions and 659 deletions
2
.idea/navEditor.xml
generated
2
.idea/navEditor.xml
generated
|
|
@ -313,7 +313,7 @@
|
||||||
</option>
|
</option>
|
||||||
<option name="myPositions">
|
<option name="myPositions">
|
||||||
<map>
|
<map>
|
||||||
<entry key="action_purgeFragment_to_loadedWalletFragment">
|
<entry key="action_purgeFragment_to_mainFragment">
|
||||||
<value>
|
<value>
|
||||||
<LayoutPositions />
|
<LayoutPositions />
|
||||||
</value>
|
</value>
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public class ConfirmWithFingerprintTask extends AsyncTask<Void, Void, Boolean> {
|
||||||
onCancelled();
|
onCancelled();
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
Toast.makeText(pinSaveFragment.getContext(), R.string.pin_save_fail, Toast.LENGTH_LONG).show();
|
Toast.makeText(pinSaveFragment.getContext(), R.string.pin_save_notification_failed, Toast.LENGTH_LONG).show();
|
||||||
} else {
|
} else {
|
||||||
pinSaveFragment.getFingerprintHelper().startAuth(pinSaveFragment.getFingerprintManager(), pinSaveFragment.getCryptoObject());
|
pinSaveFragment.getFingerprintHelper().startAuth(pinSaveFragment.getFingerprintManager(), pinSaveFragment.getCryptoObject());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ package com.tangem.data.network;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.tangem.App;
|
import com.tangem.App;
|
||||||
import com.tangem.wallet.TangemContext;
|
|
||||||
import com.tangem.data.Blockchain;
|
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.bch.BitcoinCashNode;
|
||||||
import com.tangem.wallet.btc.BitcoinNode;
|
import com.tangem.wallet.btc.BitcoinNode;
|
||||||
import com.tangem.wallet.btc.BitcoinNodeTestNet;
|
import com.tangem.wallet.btc.BitcoinNodeTestNet;
|
||||||
import com.tangem.wallet.ltc.LitecoinNode;
|
import com.tangem.wallet.ltc.LitecoinNode;
|
||||||
import com.tangem.wallet.R;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
@ -32,7 +32,6 @@ import java.util.Random;
|
||||||
import javax.net.ssl.HostnameVerifier;
|
import javax.net.ssl.HostnameVerifier;
|
||||||
import javax.net.ssl.HttpsURLConnection;
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
import javax.net.ssl.SSLSocket;
|
|
||||||
import javax.net.ssl.SSLSocketFactory;
|
import javax.net.ssl.SSLSocketFactory;
|
||||||
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.TrustManager;
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
|
@ -139,7 +138,7 @@ public class ServerApiElectrum {
|
||||||
requestsCount--;
|
requestsCount--;
|
||||||
Log.e(TAG, "requestData " + electrumRequest.getMethod() + " onError " + e.getMessage());
|
Log.e(TAG, "requestData " + electrumRequest.getMethod() + " onError " + e.getMessage());
|
||||||
Log.e(TAG, String.format("%d requests left in processing",requestsCount));
|
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());//;
|
//setErrorOccurred(e.getMessage());//;
|
||||||
responseListener.onFail(electrumRequest);
|
responseListener.onFail(electrumRequest);
|
||||||
}
|
}
|
||||||
|
|
@ -252,18 +251,18 @@ public class ServerApiElectrum {
|
||||||
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
|
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
|
||||||
{
|
{
|
||||||
// method unknown error???
|
// 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;
|
electrumRequest.answerData=null;
|
||||||
}
|
}
|
||||||
} else {
|
} 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>");
|
Log.i(TAG, ">> <NULL>");
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (ConnectException e) {
|
} catch (ConnectException e) {
|
||||||
//e.printStackTrace();
|
//e.printStackTrace();
|
||||||
//responseListener.onFail(e.getMessage());
|
//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());
|
Log.e(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " ConnectException " + e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
Log.i(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " socket.close");
|
Log.i(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " socket.close");
|
||||||
|
|
@ -274,13 +273,13 @@ public class ServerApiElectrum {
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Log.e(TAG,"Can't close socket");
|
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) {
|
} catch (IOException e) {
|
||||||
//e.printStackTrace();
|
//e.printStackTrace();
|
||||||
//responseListener.onFail(e.getMessage());
|
//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());
|
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)) )
|
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
|
||||||
{
|
{
|
||||||
// method unknown error???
|
// 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;
|
electrumRequest.answerData=null;
|
||||||
}
|
}
|
||||||
} else {
|
} 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>");
|
Log.i(TAG, ">> <NULL>");
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (ConnectException e) {
|
} catch (ConnectException e) {
|
||||||
e.printStackTrace();
|
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());
|
Log.e(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " ConnectException " + e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
Log.i(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " socket.close");
|
Log.i(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " socket.close");
|
||||||
|
|
@ -362,7 +361,7 @@ public class ServerApiElectrum {
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
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();
|
e.printStackTrace();
|
||||||
Log.e(TAG, "Can't close ssl socket");
|
Log.e(TAG, "Can't close ssl socket");
|
||||||
}
|
}
|
||||||
|
|
@ -370,11 +369,11 @@ public class ServerApiElectrum {
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
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());
|
Log.e(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " IOException " + e.getMessage());
|
||||||
}
|
}
|
||||||
} catch (NoSuchAlgorithmException | KeyManagementException e) {
|
} 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());
|
Log.e(TAG, e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ public class ServerApiStellar {
|
||||||
requestsCount--;
|
requestsCount--;
|
||||||
LOG.e(TAG, "requestData " + stellarRequest.getClass().getSimpleName() + " onError " + e.getMessage());
|
LOG.e(TAG, "requestData " + stellarRequest.getClass().getSimpleName() + " onError " + e.getMessage());
|
||||||
LOG.e(TAG, String.format("%d requests left in processing", requestsCount));
|
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());//;
|
//setErrorOccurred(e.getMessage());//;
|
||||||
listener.onFail(stellarRequest);
|
listener.onFail(stellarRequest);
|
||||||
}
|
}
|
||||||
|
|
@ -161,7 +161,7 @@ public class ServerApiStellar {
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
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;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ import java.util.*
|
||||||
|
|
||||||
class ToastHelper {
|
class ToastHelper {
|
||||||
fun showSnackbarUpdateVersion(context: Context, vg: ViewGroup, versionName: String) {
|
fun showSnackbarUpdateVersion(context: Context, vg: ViewGroup, versionName: String) {
|
||||||
Snackbar.make(vg, String.format(context.getString(R.string.new_app_version), versionName), Snackbar.LENGTH_INDEFINITE)
|
Snackbar.make(vg, String.format(context.getString(R.string.main_screen_new_version_toast), versionName), Snackbar.LENGTH_INDEFINITE)
|
||||||
.setAction(R.string.update) {
|
.setAction(R.string.main_screen_btn_update) {
|
||||||
try {
|
try {
|
||||||
val intent = Intent(Intent.ACTION_VIEW)
|
val intent = Intent(Intent.ACTION_VIEW)
|
||||||
intent.data = Uri.parse(Constant.URL_TANGEM)
|
intent.data = Uri.parse(Constant.URL_TANGEM)
|
||||||
|
|
@ -29,7 +29,7 @@ class ToastHelper {
|
||||||
val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_INDEFINITE)
|
val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_INDEFINITE)
|
||||||
val snackView = snackbar.view
|
val snackView = snackbar.view
|
||||||
snackView.setBackgroundColor(context.resources.getColor(R.color.msg_okay))
|
snackView.setBackgroundColor(context.resources.getColor(R.color.msg_okay))
|
||||||
snackbar.setAction(R.string.ok) {
|
snackbar.setAction(R.string.general_ok) {
|
||||||
snackbar.dismiss()
|
snackbar.dismiss()
|
||||||
}
|
}
|
||||||
snackbar.show()
|
snackbar.show()
|
||||||
|
|
@ -39,7 +39,7 @@ class ToastHelper {
|
||||||
val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_INDEFINITE)
|
val snackbar = Snackbar.make(vg, message, Snackbar.LENGTH_INDEFINITE)
|
||||||
val snackView = snackbar.view
|
val snackView = snackbar.view
|
||||||
snackView.setBackgroundColor(context.resources.getColor(R.color.msg_err))
|
snackView.setBackgroundColor(context.resources.getColor(R.color.msg_err))
|
||||||
snackbar.setAction(R.string.ok) {
|
snackbar.setAction(R.string.general_ok) {
|
||||||
snackbar.dismiss()
|
snackbar.dismiss()
|
||||||
}
|
}
|
||||||
snackbar.show()
|
snackbar.show()
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,9 @@ class NoExtendedLengthSupportDialog : DialogFragment() {
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
return AlertDialog.Builder(activity)
|
return AlertDialog.Builder(activity)
|
||||||
.setIcon(R.drawable.tangem_logo_small_new)
|
.setIcon(R.drawable.tangem_logo_small_new)
|
||||||
.setTitle(R.string.warning)
|
.setTitle(R.string.dialog_warning)
|
||||||
.setMessage(message)
|
.setMessage(message)
|
||||||
.setPositiveButton(R.string.got_it) { _, _ -> NoExtendedLengthSupportDialog.allReadyShowed = false }
|
.setPositiveButton(R.string.dialog_btn_got_it) { _, _ -> NoExtendedLengthSupportDialog.allReadyShowed = false }
|
||||||
.create()
|
.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,11 @@ public class PINSwapWarningDialog extends DialogFragment {
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
return new AlertDialog.Builder(getActivity())
|
return new AlertDialog.Builder(getActivity())
|
||||||
.setIcon(R.drawable.tangem_logo_small_new)
|
.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)
|
.setMessage(message)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setNegativeButton(R.string.cancel, (dialog, which) -> dismiss())
|
.setNegativeButton(R.string.general_cancel, (dialog, which) -> dismiss())
|
||||||
.setPositiveButton(R.string.contin, (dialog, whichButton) -> mOnPositiveButton.onRefresh())
|
.setPositiveButton(R.string.general_continue, (dialog, whichButton) -> mOnPositiveButton.onRefresh())
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,9 @@ class RootFoundDialog : DialogFragment() {
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
return AlertDialog.Builder(activity)
|
return AlertDialog.Builder(activity)
|
||||||
.setIcon(R.drawable.tangem_logo_small_new)
|
.setIcon(R.drawable.tangem_logo_small_new)
|
||||||
.setTitle(R.string.device_is_rooted)
|
.setTitle(R.string.dialog_device_is_rooted)
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.setPositiveButton(R.string.got_it, null)
|
.setPositiveButton(R.string.dialog_btn_got_it, null)
|
||||||
.create()
|
.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,12 @@ import android.view.WindowManager;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.tangem.util.UtilHelper;
|
|
||||||
import com.tangem.wallet.R;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
|
||||||
|
import com.tangem.util.UtilHelper;
|
||||||
|
import com.tangem.wallet.R;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by dvol on 06.03.2018.
|
* Created by dvol on 06.03.2018.
|
||||||
*/
|
*/
|
||||||
|
|
@ -49,9 +49,9 @@ public class ShowQRCodeDialog extends DialogFragment {
|
||||||
|
|
||||||
return new AlertDialog.Builder(getActivity())
|
return new AlertDialog.Builder(getActivity())
|
||||||
.setIcon(R.drawable.tangem_logo_small_new)
|
.setIcon(R.drawable.tangem_logo_small_new)
|
||||||
.setTitle(R.string.show_wallet_qr_code)
|
.setTitle(R.string.loaded_wallet_dialog_show_qr)
|
||||||
.setView(v)
|
.setView(v)
|
||||||
.setPositiveButton(R.string.ok, (dialog,which)->dismiss() )
|
.setPositiveButton(R.string.general_ok, (dialog, which)->dismiss() )
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ public class WaitSecurityDelayDialog extends DialogFragment {
|
||||||
}, 1000, 1000);
|
}, 1000, 1000);
|
||||||
return new AlertDialog.Builder(getActivity())
|
return new AlertDialog.Builder(getActivity())
|
||||||
.setIcon(R.drawable.tangem_logo_small_new)
|
.setIcon(R.drawable.tangem_logo_small_new)
|
||||||
.setTitle(R.string.security_delay)
|
.setTitle(R.string.dialog_security_delay)
|
||||||
.setView(v)
|
.setView(v)
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.create();
|
.create();
|
||||||
|
|
@ -79,6 +79,9 @@ public class WaitSecurityDelayDialog extends DialogFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onReadBeforeRequest(final FragmentActivity activity, final int timeout) {
|
public static void onReadBeforeRequest(final FragmentActivity activity, final int timeout) {
|
||||||
|
if (activity == null) return;
|
||||||
|
|
||||||
|
Log.e(TAG, "onReadBeforeRequest callback(" + timeout + ")");
|
||||||
activity.runOnUiThread(() -> {
|
activity.runOnUiThread(() -> {
|
||||||
if (timerToShowDelayDialog != null || timeout < delayBeforeShowDialog + minRemainingDelayToShowDialog)
|
if (timerToShowDelayDialog != null || timeout < delayBeforeShowDialog + minRemainingDelayToShowDialog)
|
||||||
return;
|
return;
|
||||||
|
|
@ -98,45 +101,32 @@ public class WaitSecurityDelayDialog extends DialogFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onReadAfterRequest(final Activity activity) {
|
public static void onReadAfterRequest(final Activity activity) {
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
if (timerToShowDelayDialog == null) return;
|
if (timerToShowDelayDialog == null) return;
|
||||||
timerToShowDelayDialog.cancel();
|
timerToShowDelayDialog.cancel();
|
||||||
timerToShowDelayDialog = null;
|
timerToShowDelayDialog = null;
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onReadWait(final FragmentActivity activity, final int msec) {
|
public static void onReadWait(final FragmentActivity activity, final int msec) {
|
||||||
Log.e(TAG, "onReadWait callback(" + msec + ")");
|
Log.e(TAG, "onReadWait callback(" + msec + ")");
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
Log.e(TAG, "onReadWait on ui thread(" + msec + ")");
|
|
||||||
if (timerToShowDelayDialog != null) {
|
if (timerToShowDelayDialog != null) {
|
||||||
timerToShowDelayDialog.cancel();
|
timerToShowDelayDialog.cancel();
|
||||||
timerToShowDelayDialog = null;
|
timerToShowDelayDialog = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msec == 0) {
|
if (msec == 0 && instance != null) {
|
||||||
if (instance != null) {
|
|
||||||
if (instance.isAdded()) {
|
|
||||||
instance.dismissAllowingStateLoss();
|
|
||||||
instance = null;
|
|
||||||
} else {
|
|
||||||
Log.e(TAG, "onReadWait(0) with not added dialog");
|
|
||||||
// instance.progressBar.postDelayed(() -> {
|
|
||||||
// Log.e(TAG, "onReadWait(0) dismiss delayed");
|
|
||||||
try {
|
try {
|
||||||
instance.dismissAllowingStateLoss();
|
instance.dismissAllowingStateLoss();
|
||||||
instance = null;
|
instance = null;
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
// }, 10000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (activity == null) return;
|
||||||
|
|
||||||
|
activity.runOnUiThread(() -> {
|
||||||
|
Log.e(TAG, "onReadWait on ui thread(" + msec + ")");
|
||||||
|
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
if (msec > delayBeforeShowDialog + minRemainingDelayToShowDialog) {
|
if (msec > delayBeforeShowDialog + minRemainingDelayToShowDialog) {
|
||||||
instance = new WaitSecurityDelayDialog();
|
instance = new WaitSecurityDelayDialog();
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ import android.annotation.SuppressLint
|
||||||
import android.app.AlertDialog
|
import android.app.AlertDialog
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.appcompat.app.AppCompatDialogFragment
|
|
||||||
import android.widget.ProgressBar
|
import android.widget.ProgressBar
|
||||||
|
import androidx.appcompat.app.AppCompatDialogFragment
|
||||||
import com.tangem.ui.event.ReadAfterRequest
|
import com.tangem.ui.event.ReadAfterRequest
|
||||||
import com.tangem.ui.event.ReadBeforeRequest
|
import com.tangem.ui.event.ReadBeforeRequest
|
||||||
import com.tangem.ui.event.ReadWait
|
import com.tangem.ui.event.ReadWait
|
||||||
|
|
@ -54,7 +54,7 @@ class WaitSecurityDelayDialogNew : AppCompatDialogFragment() {
|
||||||
|
|
||||||
return AlertDialog.Builder(activity)
|
return AlertDialog.Builder(activity)
|
||||||
.setIcon(R.drawable.tangem_logo_small_new)
|
.setIcon(R.drawable.tangem_logo_small_new)
|
||||||
.setTitle(R.string.security_delay)
|
.setTitle(R.string.dialog_security_delay)
|
||||||
.setView(v)
|
.setView(v)
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.create()
|
.create()
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,8 @@ abstract class BaseFragment : Fragment() {
|
||||||
findNavController(this).navigate(destination, data)
|
findNavController(this).navigate(destination, data)
|
||||||
} catch (e: IllegalArgumentException) {
|
} catch (e: IllegalArgumentException) {
|
||||||
Log.w(this::class.java.simpleName, e.message)
|
Log.w(this::class.java.simpleName, e.message)
|
||||||
|
} catch (e: IllegalStateException) {
|
||||||
|
Log.w(this::class.java.simpleName, e.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,15 @@ class LogoFragment : BaseFragment() {
|
||||||
clLogoContainer.setOnClickListener { hide() }
|
clLogoContainer.setOnClickListener { hide() }
|
||||||
// set beta version name
|
// set beta version name
|
||||||
if (BuildConfig.DEBUG)
|
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
|
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
|
// set flavor app name
|
||||||
when (BuildConfig.FLAVOR) {
|
when (BuildConfig.FLAVOR) {
|
||||||
Constant.FLAVOR_TANGEM_CARDANO -> {
|
Constant.FLAVOR_TANGEM_CARDANO -> {
|
||||||
tvExtension.visibility = View.VISIBLE
|
tvExtension.visibility = View.VISIBLE
|
||||||
tvExtension.text = getString(R.string.cardano)
|
tvExtension.text = getString(R.string.splash_cardano)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
tvExtension.visibility = View.GONE
|
tvExtension.visibility = View.GONE
|
||||||
|
|
|
||||||
|
|
@ -74,9 +74,9 @@ class MainFragment : BaseFragment(), NavigationResultListener, NfcAdapter.Reader
|
||||||
|
|
||||||
// set phone name
|
// set phone name
|
||||||
if (nfcDeviceAntenna.fullName != "")
|
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
|
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
|
// set listeners
|
||||||
fab.setOnClickListener { showMenu(it) }
|
fab.setOnClickListener { showMenu(it) }
|
||||||
|
|
@ -162,17 +162,13 @@ class MainFragment : BaseFragment(), NavigationResultListener, NfcAdapter.Reader
|
||||||
cardInfo.getBundle(EXTRA_TANGEM_CARD)?.let { card.loadFromBundle(it) }
|
cardInfo.getBundle(EXTRA_TANGEM_CARD)?.let { card.loadFromBundle(it) }
|
||||||
|
|
||||||
val ctx = TangemContext(card)
|
val ctx = TangemContext(card)
|
||||||
|
|
||||||
when {
|
when {
|
||||||
card.status == TangemCard.Status.Loaded -> lastTag?.let {
|
card.status == TangemCard.Status.Loaded -> lastTag?.let {
|
||||||
val engineCoin = CoinEngineFactory.create(ctx)
|
val engineCoin = CoinEngineFactory.create(ctx)
|
||||||
if (engineCoin != null) {
|
if (engineCoin != null) {
|
||||||
engineCoin.defineWallet()
|
engineCoin.defineWallet()
|
||||||
|
|
||||||
// val bundle = Bundle()
|
|
||||||
// bundle.putParcelable(Constant.EXTRA_LAST_DISCOVERED_TAG, lastTag)
|
|
||||||
// ctx.saveToBundle(bundle)
|
|
||||||
// (activity as MainActivity).navController.navigate(R.id.loadedWallet, bundle)
|
|
||||||
|
|
||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
bundle.putParcelable(Constant.EXTRA_LAST_DISCOVERED_TAG, lastTag)
|
bundle.putParcelable(Constant.EXTRA_LAST_DISCOVERED_TAG, lastTag)
|
||||||
ctx.saveToBundle(bundle)
|
ctx.saveToBundle(bundle)
|
||||||
|
|
@ -185,8 +181,8 @@ class MainFragment : BaseFragment(), NavigationResultListener, NfcAdapter.Reader
|
||||||
val bundle = Bundle().apply { ctx.saveToBundle(this) }
|
val bundle = Bundle().apply { ctx.saveToBundle(this) }
|
||||||
navigateToDestination(R.id.action_main_to_emptyWalletFragment, bundle)
|
navigateToDestination(R.id.action_main_to_emptyWalletFragment, bundle)
|
||||||
}
|
}
|
||||||
card.status == TangemCard.Status.Purged -> Toast.makeText(context, R.string.erased_wallet, 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.not_personalized, Toast.LENGTH_SHORT).show()
|
card.status == TangemCard.Status.NotPersonalized -> Toast.makeText(context, R.string.main_screen_not_personalized, Toast.LENGTH_SHORT).show()
|
||||||
else -> {
|
else -> {
|
||||||
|
|
||||||
// val bundle = Bundle()
|
// val bundle = Bundle()
|
||||||
|
|
@ -202,7 +198,7 @@ class MainFragment : BaseFragment(), NavigationResultListener, NfcAdapter.Reader
|
||||||
} else {
|
} else {
|
||||||
// remove last UIDs because of error and no card read
|
// remove last UIDs because of error and no card read
|
||||||
rlProgressBar.post {
|
rlProgressBar.post {
|
||||||
Toast.makeText(context, R.string.try_to_scan_again, Toast.LENGTH_SHORT).show()
|
context?.let { Toast.makeText(it, R.string.general_notification_scan_again, Toast.LENGTH_SHORT).show() }
|
||||||
unsuccessReadCount++
|
unsuccessReadCount++
|
||||||
|
|
||||||
if (cardProtocol.error is CardProtocol.TangemException_InvalidPIN) {
|
if (cardProtocol.error is CardProtocol.TangemException_InvalidPIN) {
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ class PurgeFragment : BaseFragment(), NfcAdapter.ReaderCallback, CardProtocol.No
|
||||||
val data = bundleOf(
|
val data = bundleOf(
|
||||||
EXTRA_TANGEM_CARD_UID to cardProtocol.card.uid,
|
EXTRA_TANGEM_CARD_UID to cardProtocol.card.uid,
|
||||||
EXTRA_TANGEM_CARD to cardProtocol.card.asBundle,
|
EXTRA_TANGEM_CARD to cardProtocol.card.asBundle,
|
||||||
Constant.EXTRA_MESSAGE to getString(R.string.cannot_erase_wallet)
|
Constant.EXTRA_MESSAGE to getString(R.string.nfc_error_cannot_erase_wallet)
|
||||||
)
|
)
|
||||||
navigateBackWithResult(RESULT_INVALID_PIN, data)
|
navigateBackWithResult(RESULT_INVALID_PIN, data)
|
||||||
return@postDelayed
|
return@postDelayed
|
||||||
|
|
@ -179,7 +179,7 @@ class PurgeFragment : BaseFragment(), NfcAdapter.ReaderCallback, CardProtocol.No
|
||||||
if (!NoExtendedLengthSupportDialog.allReadyShowed)
|
if (!NoExtendedLengthSupportDialog.allReadyShowed)
|
||||||
NoExtendedLengthSupportDialog().show(activity!!.supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
|
NoExtendedLengthSupportDialog().show(activity!!.supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
|
||||||
} else
|
} else
|
||||||
Toast.makeText(context, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.general_notification_scan_again_to_verify, Toast.LENGTH_LONG).show()
|
||||||
|
|
||||||
progressBar?.progress = 100
|
progressBar?.progress = 100
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class SendTransactionFragment : BaseFragment(), NfcAdapter.ReaderCallback {
|
||||||
|
|
||||||
val callback = object : OnBackPressedCallback(true) {
|
val callback = object : OnBackPressedCallback(true) {
|
||||||
override fun handleOnBackPressed() {
|
override fun handleOnBackPressed() {
|
||||||
Toast.makeText(context, R.string.please_wait, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.send_transaction_notification_wait, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -76,13 +76,13 @@ class SendTransactionFragment : BaseFragment(), NfcAdapter.ReaderCallback {
|
||||||
EventBus.getDefault().post(transactionFinishWithSuccess)
|
EventBus.getDefault().post(transactionFinishWithSuccess)
|
||||||
|
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.transaction_has_been_successfully_signed))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_success))
|
||||||
navigateBackWithResult(Activity.RESULT_OK, data, R.id.loadedWalletFragment)
|
navigateBackWithResult(Activity.RESULT_OK, data, R.id.loadedWalletFragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun finishWithError(message: String) {
|
private fun finishWithError(message: String) {
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, String.format(getString(R.string.try_again_failed_to_send_transaction), message))
|
data.putString(Constant.EXTRA_MESSAGE, String.format(getString(R.string.send_transaction_error_failed_to_send), message))
|
||||||
navigateBackWithResult(Activity.RESULT_CANCELED, data, R.id.loadedWalletFragment)
|
navigateBackWithResult(Activity.RESULT_CANCELED, data, R.id.loadedWalletFragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initToolbar() {
|
private fun initToolbar() {
|
||||||
toolbar?.setTitle(R.string.settings)
|
toolbar?.setTitle(R.string.settings_title)
|
||||||
toolbar?.setNavigationIcon(android.R.drawable.ic_menu_close_clear_cancel)
|
toolbar?.setNavigationIcon(android.R.drawable.ic_menu_close_clear_cancel)
|
||||||
(activity as AppCompatActivity).setSupportActionBar(toolbar)
|
(activity as AppCompatActivity).setSupportActionBar(toolbar)
|
||||||
toolbar?.setNavigationOnClickListener {
|
toolbar?.setNavigationOnClickListener {
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
val callback = object : OnBackPressedCallback(true) {
|
val callback = object : OnBackPressedCallback(true) {
|
||||||
override fun handleOnBackPressed() {
|
override fun handleOnBackPressed() {
|
||||||
val data = prepareResultIntent()
|
val data = prepareResultIntent()
|
||||||
data.putExtra(Constant.EXTRA_MODIFICATION, getString(R.string.update))
|
data.putExtra(Constant.EXTRA_MODIFICATION, getString(R.string.main_screen_btn_update))
|
||||||
navigateUp()
|
navigateUp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -76,7 +76,7 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
|
|
||||||
btnOk.setOnClickListener {
|
btnOk.setOnClickListener {
|
||||||
val data = prepareResultIntent()
|
val data = prepareResultIntent()
|
||||||
data.putExtra(Constant.EXTRA_MODIFICATION, getString(R.string.update))
|
data.putExtra(Constant.EXTRA_MODIFICATION, getString(R.string.main_screen_btn_update))
|
||||||
navigateUp()
|
navigateUp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -154,9 +154,9 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
}
|
}
|
||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
if (!CardProtocol.isDefaultPIN(newPIN) || !CardProtocol.isDefaultPIN2(newPIN2))
|
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
|
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
|
pinSwapWarningDialog.arguments = bundle
|
||||||
activity?.supportFragmentManager?.let { pinSwapWarningDialog.show(it, PINSwapWarningDialog.TAG) }
|
activity?.supportFragmentManager?.let { pinSwapWarningDialog.show(it, PINSwapWarningDialog.TAG) }
|
||||||
}
|
}
|
||||||
|
|
@ -254,11 +254,11 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
tvManufacturerInfo.text = ctx.card!!.manufacturer.officialName
|
tvManufacturerInfo.text = ctx.card!!.manufacturer.officialName
|
||||||
|
|
||||||
if (ctx.card!!.isManufacturerConfirmed && ctx.card!!.isCardPublicKeyValid) {
|
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))
|
tvCardIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
tvCardIdentity.setText(R.string.not_confirmed)
|
tvCardIdentity.setText(R.string.details_not_confirmed)
|
||||||
tvCardIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
|
tvCardIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -281,9 +281,9 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
ivBlockchain.setImageResource(Blockchain.getLogoImageResource(ctx.card!!.blockchainID, ctx.card!!.tokenSymbol))
|
ivBlockchain.setImageResource(Blockchain.getLogoImageResource(ctx.card!!.blockchainID, ctx.card!!.tokenSymbol))
|
||||||
|
|
||||||
if (ctx.card!!.isReusable!!)
|
if (ctx.card!!.isReusable!!)
|
||||||
tvReusable.setText(R.string.reusable)
|
tvReusable.setText(R.string.details_reusable)
|
||||||
else
|
else
|
||||||
tvReusable.setText(R.string.one_off_banknote)
|
tvReusable.setText(R.string.details_one_off_banknote)
|
||||||
|
|
||||||
var s = ""
|
var s = ""
|
||||||
for (signingM in ctx.card!!.allowedSigningMethod) {
|
for (signingM in ctx.card!!.allowedSigningMethod) {
|
||||||
|
|
@ -306,15 +306,15 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
when {
|
when {
|
||||||
ctx.card!!.remainingSignatures == 0 -> {
|
ctx.card!!.remainingSignatures == 0 -> {
|
||||||
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
|
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
|
||||||
tvRemainingSignatures.setText(R.string.none)
|
tvRemainingSignatures.setText(R.string.details_none)
|
||||||
}
|
}
|
||||||
ctx.card!!.remainingSignatures == 1 -> {
|
ctx.card!!.remainingSignatures == 1 -> {
|
||||||
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
|
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 -> {
|
ctx.card!!.remainingSignatures > 1000 -> {
|
||||||
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
|
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
|
||||||
tvRemainingSignatures.setText(R.string.unlimited)
|
tvRemainingSignatures.setText(R.string.details_unlimited)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
|
tvRemainingSignatures.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
|
||||||
|
|
@ -365,41 +365,41 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
|
|
||||||
if (ctx.card!!.useDefaultPIN1()) {
|
if (ctx.card!!.useDefaultPIN1()) {
|
||||||
imgPIN.setImageResource(R.drawable.unlock_pin1)
|
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 {
|
} else {
|
||||||
imgPIN.setImageResource(R.drawable.lock_pin1)
|
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())) {
|
if (ctx.card!!.pauseBeforePIN2 > 0 && (ctx.card!!.useDefaultPIN2()!! || !ctx.card!!.useSmartSecurityDelay())) {
|
||||||
imgPIN2orSecurityDelay.setImageResource(R.drawable.timer)
|
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()!!) {
|
} else if (ctx.card!!.useDefaultPIN2()!!) {
|
||||||
imgPIN2orSecurityDelay.setImageResource(R.drawable.unlock_pin2)
|
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 {
|
} else {
|
||||||
imgPIN2orSecurityDelay.setImageResource(R.drawable.lock_pin2)
|
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()!!) {
|
if (ctx.card!!.useDevelopersFirmware()!!) {
|
||||||
imgDeveloperVersion.setImageResource(R.drawable.ic_developer_version)
|
imgDeveloperVersion.setImageResource(R.drawable.ic_developer_version)
|
||||||
imgDeveloperVersion.visibility = View.VISIBLE
|
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
|
} else
|
||||||
imgDeveloperVersion.visibility = View.INVISIBLE
|
imgDeveloperVersion.visibility = View.INVISIBLE
|
||||||
|
|
||||||
if (ctx.card!!.status == TangemCard.Status.Loaded) {
|
if (ctx.card!!.status == TangemCard.Status.Loaded) {
|
||||||
tvWallet.text = ctx.coinData!!.shortWalletString
|
tvWallet.text = ctx.coinData!!.shortWalletString
|
||||||
if (ctx.card!!.isWalletPublicKeyValid) {
|
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))
|
tvWalletIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.confirmed))
|
||||||
} else {
|
} 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))
|
tvWalletIdentity.setTextColor(ContextCompat.getColor(context!!, R.color.not_confirmed))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tvWallet!!.setText(R.string.not_available)
|
tvWallet!!.setText(R.string.details_not_available)
|
||||||
tvWalletIdentity.setText(R.string.no_data_string)
|
tvWalletIdentity.setText(R.string.no_data_string)
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|
@ -466,7 +466,7 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter.
|
||||||
if (!engine!!.hasBalanceInfo()) {
|
if (!engine!!.hasBalanceInfo()) {
|
||||||
return
|
return
|
||||||
} else if (engine.isBalanceNotZero) {
|
} 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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class PrepareCryptonitOtherApiWithdrawalFragment : BaseFragment(), NavigationRes
|
||||||
|
|
||||||
cryptonit.requestCryptoWithdrawal(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
|
cryptonit.requestCryptoWithdrawal(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
|
||||||
} catch (e: Exception) {
|
} 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()
|
//Toast.makeText(this, strAmount, Toast.LENGTH_LONG).show()
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ class PrepareCryptonitWithdrawalFragment : BaseFragment(), NfcAdapter.ReaderCall
|
||||||
|
|
||||||
cryptonit.requestWithdrawCoins(ctx.blockchain.currency, dblAmount, ctx.coinData!!.wallet)
|
cryptonit.requestWithdrawCoins(ctx.blockchain.currency, dblAmount, ctx.coinData!!.wallet)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
etAmount.error = getString(R.string.unknown_amount_format)
|
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class PrepareKrakenWithdrawalFragment : BaseFragment(), NavigationResultListener
|
||||||
|
|
||||||
kraken.requestWithdrawInfo(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
|
kraken.requestWithdrawInfo(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
etAmount.error = getString(R.string.unknown_amount_format)
|
etAmount.error = getString(R.string.prepare_transaction_error_unknown_amount_format)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -153,7 +153,7 @@ class PrepareKrakenWithdrawalFragment : BaseFragment(), NavigationResultListener
|
||||||
val builder = AlertDialog.Builder(context)
|
val builder = AlertDialog.Builder(context)
|
||||||
|
|
||||||
// Set a title for alert dialog
|
// 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
|
// Set a message for alert dialog
|
||||||
builder.setMessage(String.format("Continue with fee %s %s?", fee!!.toString().trimEnd('0'), ctx.blockchain.currency))
|
builder.setMessage(String.format("Continue with fee %s %s?", fee!!.toString().trimEnd('0'), ctx.blockchain.currency))
|
||||||
|
|
@ -174,20 +174,20 @@ class PrepareKrakenWithdrawalFragment : BaseFragment(), NavigationResultListener
|
||||||
|
|
||||||
kraken.requestWithdraw(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
|
kraken.requestWithdraw(ctx.blockchain.currency, dblAmount.toString(), ctx.coinData!!.wallet)
|
||||||
} catch (e: Exception) {
|
} 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 -> {
|
DialogInterface.BUTTON_NEGATIVE -> {
|
||||||
Toast.makeText(context, R.string.operation_canceled, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.kraken_operation_canceled, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the alert dialog positive/yes button
|
// 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
|
// 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
|
// Initialize the AlertDialog using builder object
|
||||||
|
|
|
||||||
|
|
@ -101,25 +101,25 @@ class PinRequestFragment : BaseFragment(), NfcAdapter.ReaderCallback, Fingerprin
|
||||||
if (mode == Mode.RequestNewPIN)
|
if (mode == Mode.RequestNewPIN)
|
||||||
if (PINStorage.haveEncryptedPIN()) {
|
if (PINStorage.haveEncryptedPIN()) {
|
||||||
allowFingerprint = true
|
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
|
} else
|
||||||
tvPinPrompt.setText(R.string.enter_new_pin)
|
tvPinPrompt.setText(R.string.pin_request_enter_new_pin)
|
||||||
else if (mode == Mode.ConfirmNewPIN)
|
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)
|
else if (mode == Mode.RequestPIN)
|
||||||
if (PINStorage.haveEncryptedPIN()) {
|
if (PINStorage.haveEncryptedPIN()) {
|
||||||
allowFingerprint = true
|
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
|
} else
|
||||||
tvPinPrompt.setText(R.string.enter_pin)
|
tvPinPrompt.setText(R.string.pin_request_enter_pin)
|
||||||
else if (mode == Mode.RequestNewPIN2)
|
else if (mode == Mode.RequestNewPIN2)
|
||||||
if (PINStorage.haveEncryptedPIN2()) {
|
if (PINStorage.haveEncryptedPIN2()) {
|
||||||
allowFingerprint = true
|
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
|
} else
|
||||||
tvPinPrompt.setText(R.string.enter_new_pin_2)
|
tvPinPrompt.setText(R.string.pin_request_new_pin_2)
|
||||||
else if (mode == Mode.ConfirmNewPIN2)
|
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) {
|
else if (mode == Mode.RequestPIN2) {
|
||||||
val uid = arguments?.getString(EXTRA_TANGEM_CARD_UID)
|
val uid = arguments?.getString(EXTRA_TANGEM_CARD_UID)
|
||||||
val card = TangemCard(uid)
|
val card = TangemCard(uid)
|
||||||
|
|
@ -134,9 +134,9 @@ class PinRequestFragment : BaseFragment(), NfcAdapter.ReaderCallback, Fingerprin
|
||||||
|
|
||||||
if (PINStorage.haveEncryptedPIN2()) {
|
if (PINStorage.haveEncryptedPIN2()) {
|
||||||
allowFingerprint = true
|
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
|
} else
|
||||||
tvPinPrompt.setText(R.string.enter_pin_2)
|
tvPinPrompt.setText(R.string.pin_request_prompt_enter_pin_2)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!allowFingerprint)
|
if (!allowFingerprint)
|
||||||
|
|
@ -287,13 +287,13 @@ class PinRequestFragment : BaseFragment(), NfcAdapter.ReaderCallback, Fingerprin
|
||||||
|
|
||||||
if (mode == Mode.ConfirmNewPIN) {
|
if (mode == Mode.ConfirmNewPIN) {
|
||||||
if (pin != arguments?.getString(Constant.EXTRA_NEW_PIN)) {
|
if (pin != arguments?.getString(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
|
focusView = tvPin
|
||||||
cancel = true
|
cancel = true
|
||||||
}
|
}
|
||||||
} else if (mode == Mode.ConfirmNewPIN2) {
|
} else if (mode == Mode.ConfirmNewPIN2) {
|
||||||
if (pin != arguments?.getString(Constant.EXTRA_NEW_PIN_2)) {
|
if (pin != arguments?.getString(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
|
focusView = tvPin
|
||||||
cancel = true
|
cancel = true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,9 +64,9 @@ class PinSaveFragment : BaseFragment(), FingerprintHelper.FingerprintHelperListe
|
||||||
usePIN2 = arguments?.getBoolean(Constant.EXTRA_PIN2, false) ?: false
|
usePIN2 = arguments?.getBoolean(Constant.EXTRA_PIN2, false) ?: false
|
||||||
|
|
||||||
if (usePIN2)
|
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
|
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) {
|
if (usePIN2) {
|
||||||
cbUseFingerprint.isChecked = true
|
cbUseFingerprint.isChecked = true
|
||||||
|
|
@ -352,17 +352,17 @@ class PinSaveFragment : BaseFragment(), FingerprintHelper.FingerprintHelperListe
|
||||||
fingerprintManager = activity?.getSystemService(Context.FINGERPRINT_SERVICE) as FingerprintManager
|
fingerprintManager = activity?.getSystemService(Context.FINGERPRINT_SERVICE) as FingerprintManager
|
||||||
|
|
||||||
if (!keyguardManager.isKeyguardSecure) {
|
if (!keyguardManager.isKeyguardSecure) {
|
||||||
Toast.makeText(context, R.string.user_has_not_enabled_lock_screen, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.pin_save_toast_lock_screen_not_enabled, Toast.LENGTH_LONG).show()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ActivityCompat.checkSelfPermission(context!!, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
|
if (ActivityCompat.checkSelfPermission(requireContext(), Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
|
||||||
Toast.makeText(context, R.string.user_has_not_granted_permission_to_use_fingerprint, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.pin_save_toast_no_permission_to_use_fingerprint, Toast.LENGTH_LONG).show()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fingerprintManager!!.hasEnrolledFingerprints()) {
|
if (!fingerprintManager!!.hasEnrolledFingerprints()) {
|
||||||
Toast.makeText(context, R.string.user_has_not_registered_any_fingerprints, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.pin_save_toast_no_fingerprints_registered, Toast.LENGTH_LONG).show()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,7 @@ class PinSwapFragment : BaseFragment(), NfcAdapter.ReaderCallback, CardProtocol.
|
||||||
NoExtendedLengthSupportDialog.TAG)
|
NoExtendedLengthSupportDialog.TAG)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
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()
|
||||||
}
|
}
|
||||||
progressBar!!.progress = 100
|
progressBar!!.progress = 100
|
||||||
progressBar!!.progressTintList = ColorStateList.valueOf(Color.RED)
|
progressBar!!.progressTintList = ColorStateList.valueOf(Color.RED)
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ class CreateNewWalletFragment : BaseFragment(), NfcAdapter.ReaderCallback, CardP
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
|
||||||
progressBar?.visibility = View.INVISIBLE
|
progressBar?.visibility = View.INVISIBLE
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_create_wallet))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.nfc_error_cannot_create_wallet))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card!!.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card!!.asBundle)
|
||||||
navigateBackWithResult(Constant.RESULT_INVALID_PIN, data)
|
navigateBackWithResult(Constant.RESULT_INVALID_PIN, data)
|
||||||
|
|
@ -129,7 +129,7 @@ class CreateNewWalletFragment : BaseFragment(), NfcAdapter.ReaderCallback, CardP
|
||||||
NoExtendedLengthSupportDialog().show(activity!!.supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
|
NoExtendedLengthSupportDialog().show(activity!!.supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
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()
|
||||||
|
|
||||||
progressBar?.progress = 100
|
progressBar?.progress = 100
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ class EmptyWalletFragment : BaseFragment(), NavigationResultListener,
|
||||||
R.id.action_emptyWalletFragment_to_verifyCard, data)
|
R.id.action_emptyWalletFragment_to_verifyCard, data)
|
||||||
} else {
|
} else {
|
||||||
(activity as MainActivity).toastHelper
|
(activity as MainActivity).toastHelper
|
||||||
.showSingleToast(context, getString(R.string.need_attach_card_again))
|
.showSingleToast(context, getString(R.string.general_notification_scan_again_to_verify))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -188,7 +188,7 @@ class EmptyWalletFragment : BaseFragment(), NavigationResultListener,
|
||||||
if (!NoExtendedLengthSupportDialog.allReadyShowed)
|
if (!NoExtendedLengthSupportDialog.allReadyShowed)
|
||||||
NoExtendedLengthSupportDialog().show(activity!!.supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
|
NoExtendedLengthSupportDialog().show(activity!!.supportFragmentManager, NoExtendedLengthSupportDialog.TAG)
|
||||||
} else
|
} else
|
||||||
Toast.makeText(context, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.general_notification_scan_again, Toast.LENGTH_LONG).show()
|
||||||
|
|
||||||
progressBar?.progress = 100
|
progressBar?.progress = 100
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
||||||
|
|
|
||||||
|
|
@ -88,11 +88,16 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
resources.getColorStateList(R.color.btn_dark)
|
resources.getColorStateList(R.color.btn_dark)
|
||||||
}
|
}
|
||||||
private val activeColor: ColorStateList by lazy {
|
private val activeColor: ColorStateList by lazy {
|
||||||
|
val color = if( (Util.bytesToHex(ctx.card?.cid)?.startsWith("10") == true)) {
|
||||||
|
R.color.start2coin_orange
|
||||||
|
} else {
|
||||||
|
R.color.colorAccent
|
||||||
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
||||||
resources.getColorStateList(R.color.colorAccent, activity?.theme)
|
resources.getColorStateList(color, activity?.theme)
|
||||||
else
|
else
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
resources.getColorStateList(R.color.colorAccent)
|
resources.getColorStateList(color)
|
||||||
}
|
}
|
||||||
private var requestCounter: Int = 0
|
private var requestCounter: Int = 0
|
||||||
set(value) {
|
set(value) {
|
||||||
|
|
@ -144,31 +149,35 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
|
|
||||||
btnCopy.setOnClickListener { doShareWallet(false) }
|
btnCopy.setOnClickListener { doShareWallet(false) }
|
||||||
|
|
||||||
|
if (Util.bytesToHex(ctx.card?.cid)?.startsWith("10") == true) {
|
||||||
|
btnLoad?.visibility = View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
btnLoad.setOnClickListener {
|
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 cw = android.view.ContextThemeWrapper(activity, R.style.AlertDialogTheme)
|
||||||
val dialog = AlertDialog.Builder(cw).setItems(items
|
val dialog = AlertDialog.Builder(cw).setItems(items
|
||||||
) { _, which ->
|
) { _, which ->
|
||||||
when (items[which]) {
|
when (items[which]) {
|
||||||
getString(R.string.in_app) -> {
|
getString(R.string.loaded_wallet_load_via_app) -> {
|
||||||
try {
|
try {
|
||||||
val intent = Intent(Intent.ACTION_VIEW, engine.shareWalletUri)
|
val intent = Intent(Intent.ACTION_VIEW, engine.shareWalletUri)
|
||||||
intent.addCategory(Intent.CATEGORY_DEFAULT)
|
intent.addCategory(Intent.CATEGORY_DEFAULT)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
(activity as MainActivity).toastHelper.showSingleToast(context, getString(R.string.no_compatible_wallet))
|
(activity as MainActivity).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)
|
doShareWallet(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
getString(R.string.load_via_qr) -> {
|
getString(R.string.loaded_wallet_load_via_qr) -> {
|
||||||
ShowQRCodeDialog.show(activity as AppCompatActivity?, engine.shareWalletUri.toString())
|
ShowQRCodeDialog.show(activity as AppCompatActivity?, engine.shareWalletUri.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
getString(R.string.via_cryptonit) -> {
|
getString(R.string.loaded_wallet_load_via_cryptonit) -> {
|
||||||
navigateForResult(
|
navigateForResult(
|
||||||
Constant.REQUEST_CODE_RECEIVE_TRANSACTION,
|
Constant.REQUEST_CODE_RECEIVE_TRANSACTION,
|
||||||
R.id.action_loadedWalletFragment_to_prepareCryptonitWithdrawalFragment,
|
R.id.action_loadedWalletFragment_to_prepareCryptonitWithdrawalFragment,
|
||||||
|
|
@ -176,7 +185,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
getString(R.string.via_kraken) -> {
|
getString(R.string.loaded_wallet_load_via_kraken) -> {
|
||||||
navigateForResult(
|
navigateForResult(
|
||||||
Constant.REQUEST_CODE_RECEIVE_TRANSACTION,
|
Constant.REQUEST_CODE_RECEIVE_TRANSACTION,
|
||||||
R.id.action_loadedWalletFragment_to_prepareKrakenWithdrawalFragment,
|
R.id.action_loadedWalletFragment_to_prepareKrakenWithdrawalFragment,
|
||||||
|
|
@ -198,14 +207,14 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
if (!engine.isExtractPossible) {
|
if (!engine.isExtractPossible) {
|
||||||
(activity as MainActivity).toastHelper.showSingleToast(context, ctx.message)
|
(activity as MainActivity).toastHelper.showSingleToast(context, ctx.message)
|
||||||
} else if (ctx.card!!.remainingSignatures == 0) {
|
} else if (ctx.card!!.remainingSignatures == 0) {
|
||||||
(activity as MainActivity).toastHelper.showSingleToast(context, getString(R.string.card_has_no_remaining_signature))
|
(activity as MainActivity).toastHelper.showSingleToast(context, getString(R.string.loaded_wallet_warning_no_signature))
|
||||||
} else {
|
} else {
|
||||||
val bundle = Bundle().apply { ctx.saveToBundle(this) }
|
val bundle = Bundle().apply { ctx.saveToBundle(this) }
|
||||||
navigateForResult(Constant.REQUEST_CODE_SEND_TRANSACTION,
|
navigateForResult(Constant.REQUEST_CODE_SEND_TRANSACTION,
|
||||||
R.id.action_loadedWalletFragment_to_prepareTransactionFragment, bundle)
|
R.id.action_loadedWalletFragment_to_prepareTransactionFragment, bundle)
|
||||||
}
|
}
|
||||||
else
|
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 {
|
btnDetails.setOnClickListener {
|
||||||
|
|
@ -215,7 +224,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
R.id.action_loadedWalletFragment_to_verifyCard, bundle)
|
R.id.action_loadedWalletFragment_to_verifyCard, bundle)
|
||||||
} else {
|
} else {
|
||||||
(activity as MainActivity).toastHelper
|
(activity as MainActivity).toastHelper
|
||||||
.showSingleToast(context, getString(R.string.need_attach_card_again))
|
.showSingleToast(context, getString(R.string.general_notification_scan_again_to_verify))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -395,9 +404,9 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
}
|
}
|
||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
if (!CardProtocol.isDefaultPIN(newPIN) || !CardProtocol.isDefaultPIN2(newPIN2))
|
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
|
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
|
pinSwapWarningDialog.arguments = bundle
|
||||||
activity?.supportFragmentManager?.let { pinSwapWarningDialog.show(it, PINSwapWarningDialog.TAG) }
|
activity?.supportFragmentManager?.let { pinSwapWarningDialog.show(it, PINSwapWarningDialog.TAG) }
|
||||||
}
|
}
|
||||||
|
|
@ -499,7 +508,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onReadStart(cardProtocol: CardProtocol) {
|
override fun onReadStart(cardProtocol: CardProtocol) {
|
||||||
rlProgressBar?.post { rlProgressBar.visibility = View.VISIBLE }
|
rlProgressBar?.post { rlProgressBar?.visibility = View.VISIBLE }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onReadProgress(protocol: CardProtocol, progress: Int) {
|
override fun onReadProgress(protocol: CardProtocol, progress: Int) {
|
||||||
|
|
@ -528,7 +537,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
if (!NoExtendedLengthSupportDialog.allReadyShowed)
|
if (!NoExtendedLengthSupportDialog.allReadyShowed)
|
||||||
activity?.supportFragmentManager?.let { NoExtendedLengthSupportDialog().show(it, NoExtendedLengthSupportDialog.TAG) }
|
activity?.supportFragmentManager?.let { NoExtendedLengthSupportDialog().show(it, NoExtendedLengthSupportDialog.TAG) }
|
||||||
else
|
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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -610,7 +619,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
|
|
||||||
if (srl.isRefreshing) {
|
if (srl.isRefreshing) {
|
||||||
tvBalanceLine1.setTextColor(resources.getColor(R.color.primary))
|
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 = ""
|
tvBalanceLine2.text = ""
|
||||||
tvBalance.text = ""
|
tvBalance.text = ""
|
||||||
tvBalanceEquivalent.text = ""
|
tvBalanceEquivalent.text = ""
|
||||||
|
|
@ -744,7 +753,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
ctx.error = getString(R.string.no_connection)
|
ctx.error = getString(R.string.general_error_no_connection)
|
||||||
updateViews()
|
updateViews()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -752,9 +761,9 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
private fun showWarningIfPendingTransactionIsPossible() {
|
private fun showWarningIfPendingTransactionIsPossible() {
|
||||||
if (ctx.card.signedHashes > 0 && isNewCid(ctx.card.cidDescription)) {
|
if (ctx.card.signedHashes > 0 && isNewCid(ctx.card.cidDescription)) {
|
||||||
AlertDialog.Builder(context)
|
AlertDialog.Builder(context)
|
||||||
.setTitle(R.string.warning)
|
.setTitle(R.string.dialog_warning)
|
||||||
.setMessage(R.string.card_signed_transactions_warning)
|
.setMessage(R.string.loaded_wallet_warning_card_signed_transactions)
|
||||||
.setPositiveButton(R.string.ok) { _, _ -> }
|
.setPositiveButton(R.string.general_ok) { _, _ -> }
|
||||||
.create()
|
.create()
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
|
|
@ -771,7 +780,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
serverApiTangem.cardVerifyAndGetInfo(ctx.card)
|
serverApiTangem.cardVerifyAndGetInfo(ctx.card)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ctx.error = getString(R.string.no_connection)
|
ctx.error = getString(R.string.general_error_no_connection)
|
||||||
updateViews()
|
updateViews()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -814,7 +823,7 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
|
|
||||||
if (isIntentSafe) {
|
if (isIntentSafe) {
|
||||||
// create intent to show chooser
|
// 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
|
// verify the intent will resolve to at least one activity
|
||||||
if (intent.resolveActivity(activity!!.packageManager) != null) {
|
if (intent.resolveActivity(activity!!.packageManager) != null) {
|
||||||
|
|
@ -823,13 +832,13 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte
|
||||||
} else {
|
} else {
|
||||||
val clipboard = activity?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
val clipboard = activity?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
clipboard.primaryClip = ClipData.newPlainText(txtShare, txtShare)
|
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 {
|
} else {
|
||||||
val txtShare = ctx.coinData.wallet
|
val txtShare = ctx.coinData.wallet
|
||||||
val clipboard = activity?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
val clipboard = activity?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
clipboard.primaryClip = ClipData.newPlainText(txtShare, txtShare)
|
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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -105,13 +105,13 @@ public class BtcCashEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} 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) {
|
} else if (coinData.getUnspentTransactions().size() == 0) {
|
||||||
ctx.setMessage(R.string.please_wait_for_confirmation);
|
ctx.setMessage(R.string.loaded_wallet_message_refresh);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,11 +124,11 @@ public class BinanceEngine extends CoinEngine {
|
||||||
|
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,13 +124,13 @@ public class BtcEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} 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) {
|
} else if (coinData.getUnspentTransactions().size() == 0) {
|
||||||
ctx.setMessage(R.string.please_wait_for_confirmation);
|
ctx.setMessage(R.string.loaded_wallet_message_refresh);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -119,13 +119,13 @@ public class CardanoEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} 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) {
|
} else if (coinData.getUnspentOutputs().size() == 0) {
|
||||||
ctx.setMessage(R.string.please_wait_for_confirmation);
|
ctx.setMessage(R.string.loaded_wallet_message_refresh);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -102,13 +102,13 @@ public class DucatusEngine extends BtcEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} 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) {
|
} else if (coinData.getUnspentTransactions().size() == 0) {
|
||||||
ctx.setMessage(R.string.please_wait_for_confirmation);
|
ctx.setMessage(R.string.loaded_wallet_message_refresh);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -227,11 +227,11 @@ public class EosEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -241,11 +241,11 @@ public class EthEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -560,7 +560,7 @@ public class EthEngine extends CoinEngine {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFail(String method, String message) {
|
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);
|
blockchainRequestsCallbacks.onComplete(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -111,13 +111,13 @@ public class LtcEngine extends BtcEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} 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) {
|
} else if (coinData.getUnspentTransactions().size() == 0) {
|
||||||
ctx.setMessage(R.string.please_wait_for_confirmation);
|
ctx.setMessage(R.string.loaded_wallet_message_refresh);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,11 +73,11 @@ public class MaticTokenEngine extends TokenEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ import com.tangem.data.network.model.InfuraResponse;
|
||||||
import com.tangem.wallet.BTCUtils;
|
import com.tangem.wallet.BTCUtils;
|
||||||
import com.tangem.wallet.CoinEngine;
|
import com.tangem.wallet.CoinEngine;
|
||||||
import com.tangem.wallet.EthTransaction;
|
import com.tangem.wallet.EthTransaction;
|
||||||
|
import com.tangem.wallet.R;
|
||||||
import com.tangem.wallet.TangemContext;
|
import com.tangem.wallet.TangemContext;
|
||||||
import com.tangem.wallet.eth.EthEngine;
|
import com.tangem.wallet.eth.EthEngine;
|
||||||
import com.tangem.wallet.R;
|
|
||||||
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
|
||||||
|
|
@ -162,7 +162,7 @@ public class RskEngine extends EthEngine {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFail(String method, String message) {
|
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);
|
blockchainRequestsCallbacks.onComplete(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ import com.tangem.data.network.model.InfuraResponse;
|
||||||
import com.tangem.wallet.BTCUtils;
|
import com.tangem.wallet.BTCUtils;
|
||||||
import com.tangem.wallet.CoinEngine;
|
import com.tangem.wallet.CoinEngine;
|
||||||
import com.tangem.wallet.EthTransaction;
|
import com.tangem.wallet.EthTransaction;
|
||||||
|
import com.tangem.wallet.R;
|
||||||
import com.tangem.wallet.TangemContext;
|
import com.tangem.wallet.TangemContext;
|
||||||
import com.tangem.wallet.token.TokenEngine;
|
import com.tangem.wallet.token.TokenEngine;
|
||||||
import com.tangem.wallet.R;
|
|
||||||
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
|
||||||
|
|
@ -50,13 +50,13 @@ public class RskTokenEngine extends TokenEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else if (!isBalanceAlterNotZero()) {
|
} 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 {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -308,13 +308,13 @@ public class TokenEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else if (!isBalanceAlterNotZero()) {
|
} 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 {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,11 +105,11 @@ public class XlmEngine extends CoinEngine {
|
||||||
@Override
|
@Override
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,11 +94,11 @@ public class XrpEngine extends CoinEngine {
|
||||||
|
|
||||||
public boolean isExtractPossible() {
|
public boolean isExtractPossible() {
|
||||||
if (!hasBalanceInfo()) {
|
if (!hasBalanceInfo()) {
|
||||||
ctx.setMessage(R.string.cannot_obtain_data_from_blockchain);
|
ctx.setMessage(R.string.loaded_wallet_error_obtaining_blockchain_data);
|
||||||
} else if (!isBalanceNotZero()) {
|
} else if (!isBalanceNotZero()) {
|
||||||
ctx.setMessage(R.string.wallet_empty);
|
ctx.setMessage(R.string.general_wallet_empty);
|
||||||
} else if (awaitingConfirmation()) {
|
} else if (awaitingConfirmation()) {
|
||||||
ctx.setMessage(R.string.please_wait_while_previous);
|
ctx.setMessage(R.string.loaded_wallet_message_wait);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_margin="16dp"
|
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:textAlignment="center"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:fontFamily="@font/maax"
|
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:textAlignment="center"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_1_small"
|
android:textSize="@dimen/text_size_1_small"
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/please_hold_banknote"
|
android:text="@string/dialog_hold_banknote"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/black"
|
android:textColor="@color/black"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:fontFamily="@font/maax"
|
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:textAlignment="center"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_small"
|
android:textSize="@dimen/text_size_small"
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:text="@string/btn_explore"
|
android:text="@string/loaded_wallet_btn_explore"
|
||||||
android:textColor="@color/primary_dark" />
|
android:textColor="@color/primary_dark" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatButton
|
<androidx.appcompat.widget.AppCompatButton
|
||||||
|
|
@ -186,7 +186,7 @@
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:text="@string/btn_copy"
|
android:text="@string/loaded_wallet_btn_copy"
|
||||||
android:textColor="@color/primary_dark" />
|
android:textColor="@color/primary_dark" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
@ -255,7 +255,7 @@
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/btn_load"
|
android:text="@string/loaded_wallet_btn_load"
|
||||||
android:textSize="@dimen/text_size_large" />
|
android:textSize="@dimen/text_size_large" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatButton
|
<androidx.appcompat.widget.AppCompatButton
|
||||||
|
|
@ -268,7 +268,7 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/btn_extract"
|
android:text="@string/loaded_wallet_btn_extract"
|
||||||
android:textSize="@dimen/text_size_large" />
|
android:textSize="@dimen/text_size_large" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
@ -295,7 +295,7 @@
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:text="@string/btn_new_scan"
|
android:text="@string/loaded_wallet_btn_new_scan"
|
||||||
android:textColor="@color/primary_dark" />
|
android:textColor="@color/primary_dark" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginBottom="24dp"
|
android:layout_marginBottom="24dp"
|
||||||
android:fontFamily="@font/maaxmedium"
|
android:fontFamily="@font/maaxmedium"
|
||||||
android:text="@string/card_id"
|
android:text="@string/details_title_card_id"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -84,7 +84,7 @@
|
||||||
android:layout_width="@dimen/verify_card_left_col_width"
|
android:layout_width="@dimen/verify_card_left_col_width"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/issuer"
|
android:text="@string/details_category_issuer"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/tangem_ag"
|
android:text="@string/general_tangem"
|
||||||
android:textColor="@color/primary_dark"
|
android:textColor="@color/primary_dark"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
android:textStyle="normal|bold" />
|
android:textStyle="normal|bold" />
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/blockchain"
|
android:text="@string/general_blockchain"
|
||||||
android:textSize="@dimen/text_size_1_small"
|
android:textSize="@dimen/text_size_1_small"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/blockchain"
|
android:text="@string/general_blockchain"
|
||||||
android:textColor="@color/primary_dark"
|
android:textColor="@color/primary_dark"
|
||||||
android:textSize="@dimen/text_size_1_small"
|
android:textSize="@dimen/text_size_1_small"
|
||||||
android:textStyle="normal|bold"
|
android:textStyle="normal|bold"
|
||||||
|
|
@ -149,7 +149,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/signing_method"
|
android:text="@string/details_signing_method"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -174,7 +174,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/this_card_is"
|
android:text="@string/details_is_card_reusable"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -199,7 +199,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/signed_transactions"
|
android:text="@string/details_signed_transactions"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -224,7 +224,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/remaining_signatures"
|
android:text="@string/details_remaining_signatures"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -249,7 +249,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
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" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -275,7 +275,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/features"
|
android:text="@string/details_features"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -308,7 +308,7 @@
|
||||||
android:layout_width="@dimen/verify_card_left_col_width"
|
android:layout_width="@dimen/verify_card_left_col_width"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/manufacturer"
|
android:text="@string/details_category_manufacturer"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -316,7 +316,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/tangem_ag"
|
android:text="@string/general_tangem"
|
||||||
android:textColor="@color/primary_dark"
|
android:textColor="@color/primary_dark"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
android:textStyle="normal|bold" />
|
android:textStyle="normal|bold" />
|
||||||
|
|
@ -341,7 +341,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/card_identity"
|
android:text="@string/details_card_identity"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -349,7 +349,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/attested"
|
android:text="@string/details_attested"
|
||||||
android:textColor="@color/confirmed"
|
android:textColor="@color/confirmed"
|
||||||
android:textSize="@dimen/text_size_1_small"
|
android:textSize="@dimen/text_size_1_small"
|
||||||
android:textStyle="normal|bold" />
|
android:textStyle="normal|bold" />
|
||||||
|
|
@ -366,7 +366,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/firmware"
|
android:text="@string/details_firmware"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -390,7 +390,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/registration_date"
|
android:text="@string/details_registration_date"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -423,7 +423,7 @@
|
||||||
android:layout_width="@dimen/verify_card_left_col_width"
|
android:layout_width="@dimen/verify_card_left_col_width"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/wallet"
|
android:text="@string/details_category_wallet"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -450,7 +450,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/private_key"
|
android:text="@string/details_private_key"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -475,7 +475,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/validation_node"
|
android:text="@string/details_validation_node"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -501,7 +501,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="20dp"
|
android:layout_marginStart="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/unspents"
|
android:text="@string/details_unspents"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -618,7 +618,7 @@
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_margin="10dp"
|
android:layout_margin="10dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/ok"
|
android:text="@string/general_ok"
|
||||||
android:textSize="@dimen/text_size_large" />
|
android:textSize="@dimen/text_size_large" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:text="@string/wallet_has_not_been_yet_created"
|
android:text="@string/empty_wallet_not_created"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="@dimen/text_size_1_small"
|
android:textSize="@dimen/text_size_1_small"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/btnNewWallet"
|
app:layout_constraintBottom_toTopOf="@+id/btnNewWallet"
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/create_wallet"
|
android:text="@string/empty_wallet_btn_create"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
|
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/blockchain"
|
android:text="@string/general_blockchain"
|
||||||
android:textColor="@color/primary_dark"
|
android:textColor="@color/primary_dark"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
|
android:layout_marginStart="@dimen/empty_wallet_left_col_margin"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/issuer"
|
android:text="@string/details_category_issuer"
|
||||||
android:textColor="@color/primary_dark"
|
android:textColor="@color/primary_dark"
|
||||||
android:textSize="@dimen/text_size_1_small" />
|
android:textSize="@dimen/text_size_1_small" />
|
||||||
|
|
||||||
|
|
@ -159,7 +159,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
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:textAlignment="center"
|
||||||
android:textColor="@android:color/darker_gray"
|
android:textColor="@android:color/darker_gray"
|
||||||
android:textSize="@dimen/text_size_small" />
|
android:textSize="@dimen/text_size_small" />
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/ivLogo"
|
app:layout_constraintTop_toBottomOf="@+id/ivLogo"
|
||||||
tools:text="@string/cardano"
|
tools:text="@string/splash_cardano"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/beta"
|
android:text="@string/splash_version_name_release"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/tangem_ag"
|
android:text="@string/general_tangem"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
android:textSize="@dimen/text_size_small"
|
android:textSize="@dimen/text_size_small"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:padding="5dp"
|
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:textAlignment="center"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:text="@string/ok" />
|
android:text="@string/general_ok" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:paddingBottom="16dp"
|
android:paddingBottom="16dp"
|
||||||
android:paddingTop="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:textAlignment="center"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
|
||||||
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
android:drawableEnd="@mipmap/ic_fp"
|
android:drawableEnd="@mipmap/ic_fp"
|
||||||
android:drawablePadding="8dp"
|
android:drawablePadding="8dp"
|
||||||
android:text="@string/protect_with_fingerprint" />
|
android:text="@string/pin_save_checkbox_protect_with_fingerprint" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
style="@style/AppTheme.RoundedCornerMaterialButton"
|
style="@style/AppTheme.RoundedCornerMaterialButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/save"
|
android:text="@string/pin_save_btn_save"
|
||||||
android:textColor="@color/white" />
|
android:textColor="@color/white" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
style="@style/AppTheme.RoundedCornerMaterialButton"
|
style="@style/AppTheme.RoundedCornerMaterialButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/delete"
|
android:text="@string/pin_save_btn_delete"
|
||||||
android:textColor="@color/white" />
|
android:textColor="@color/white" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -234,7 +234,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -269,7 +269,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/on_banknote"
|
android:text="@string/general_on_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -302,7 +302,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -316,7 +316,7 @@
|
||||||
android:layout_marginBottom="1dp"
|
android:layout_marginBottom="1dp"
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/including_fee"
|
android:text="@string/confirm_transaction_including_fee"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_1_small"
|
android:textSize="@dimen/text_size_1_small"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/textView3"
|
app:layout_constraintBottom_toBottomOf="@+id/textView3"
|
||||||
|
|
@ -334,7 +334,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:textColor="@color/colorPrimaryDark"
|
android:textColor="@color/colorPrimaryDark"
|
||||||
|
|
@ -352,7 +352,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -369,7 +369,7 @@
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:padding="2dp"
|
android:padding="2dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/error"
|
android:text="@string/general_error"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:background="@color/bg_err"
|
android:background="@color/bg_err"
|
||||||
|
|
@ -384,7 +384,7 @@
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/btn_load"
|
android:text="@string/loaded_wallet_btn_load"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:imeOptions="actionNext"
|
android:imeOptions="actionNext"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -147,7 +147,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -168,7 +168,7 @@
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -227,7 +227,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -262,7 +262,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/on_banknote"
|
android:text="@string/general_on_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -295,7 +295,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -316,7 +316,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:textColor="@color/colorPrimaryDark"
|
android:textColor="@color/colorPrimaryDark"
|
||||||
|
|
@ -335,7 +335,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -354,7 +354,7 @@
|
||||||
android:background="@color/bg_err"
|
android:background="@color/bg_err"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:padding="2dp"
|
android:padding="2dp"
|
||||||
android:text="@string/error"
|
android:text="@string/general_error"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
@ -368,7 +368,7 @@
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/btn_load"
|
android:text="@string/loaded_wallet_btn_load"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -192,7 +192,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -227,7 +227,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/on_banknote"
|
android:text="@string/general_on_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -261,7 +261,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -281,7 +281,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -300,7 +300,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -318,7 +318,7 @@
|
||||||
android:background="@color/bg_err"
|
android:background="@color/bg_err"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:padding="2dp"
|
android:padding="2dp"
|
||||||
android:text="@string/error"
|
android:text="@string/general_error"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
@ -332,7 +332,7 @@
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/btn_load"
|
android:text="@string/loaded_wallet_btn_load"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="20dp"
|
android:layout_margin="20dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/by_tapping_the_card"
|
android:text="@string/nfc_purge_warning"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@android:color/holo_red_light"
|
android:textColor="@android:color/holo_red_light"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/please_wait"
|
android:text="@string/send_transaction_notification_wait"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,6 @@
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:text="@string/btn_details"
|
android:text="@string/loaded_wallet_btn_details"
|
||||||
android:textColor="@color/primary_dark"
|
android:textColor="@color/primary_dark"
|
||||||
tools:showIn="@layout/fr_loaded_wallet" />
|
tools:showIn="@layout/fr_loaded_wallet" />
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
android:alpha="1"
|
android:alpha="1"
|
||||||
android:fontFamily="@font/maaxmedium"
|
android:fontFamily="@font/maaxmedium"
|
||||||
android:text="@string/verifying"
|
android:text="@string/loaded_wallet_status_verifying"
|
||||||
android:textColor="@color/colorPrimary"
|
android:textColor="@color/colorPrimary"
|
||||||
android:textSize="12dp"
|
android:textSize="12dp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
android:alpha="1"
|
android:alpha="1"
|
||||||
android:text="@string/reading"
|
android:text="@string/general_status_reading"
|
||||||
android:textColor="@color/colorPrimary"
|
android:textColor="@color/colorPrimary"
|
||||||
android:textSize="12dp"
|
android:textSize="12dp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="20dp"
|
||||||
android:paddingRight="20dp"
|
android:paddingRight="20dp"
|
||||||
android:paddingBottom="20dp"
|
android:paddingBottom="20dp"
|
||||||
android:text="@string/tap_tangem_card"
|
android:text="@string/main_screen_tap_card"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
|
|
|
||||||
|
|
@ -8,42 +8,42 @@
|
||||||
android:id="@+id/action_set_PIN1"
|
android:id="@+id/action_set_PIN1"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:orderInCategory="100"
|
android:orderInCategory="100"
|
||||||
android:title="@string/set_pin_1"
|
android:title="@string/menu_loaded_wallet_set_pin_1"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_set_PIN2"
|
android:id="@+id/action_set_PIN2"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:orderInCategory="200"
|
android:orderInCategory="200"
|
||||||
android:title="@string/set_pin_2"
|
android:title="@string/menu_loaded_wallet_set_pin_2"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_reset_PIN1"
|
android:id="@+id/action_reset_PIN1"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:orderInCategory="300"
|
android:orderInCategory="300"
|
||||||
android:title="@string/reset_pin_1_to_default"
|
android:title="@string/menu_loaded_wallet_reset_pin_1"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_reset_PIN2"
|
android:id="@+id/action_reset_PIN2"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:orderInCategory="400"
|
android:orderInCategory="400"
|
||||||
android:title="@string/reset_pin_2_to_default"
|
android:title="@string/menu_loaded_wallet_reset_pin_2"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_reset_PINs"
|
android:id="@+id/action_reset_PINs"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:orderInCategory="500"
|
android:orderInCategory="500"
|
||||||
android:title="@string/reset_pins_to_default"
|
android:title="@string/menu_loaded_wallet_reset_pins"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_purge"
|
android:id="@+id/action_purge"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:orderInCategory="600"
|
android:orderInCategory="600"
|
||||||
android:title="@string/erase_wallet"
|
android:title="@string/menu_loaded_wallet_erase_wallet"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
||||||
|
|
@ -4,21 +4,21 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/managePIN"
|
android:id="@+id/managePIN"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:title="@string/manage_user_pin_1" />
|
android:title="@string/main_menu_manage_pin_1" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/managePIN2"
|
android:id="@+id/managePIN2"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:title="@string/manage_user_pin_2" />
|
android:title="@string/main_menu_manage_pin_2" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/sendLogs"
|
android:id="@+id/sendLogs"
|
||||||
android:title="@string/send_logs"
|
android:title="@string/main_menu_debug_send_logs"
|
||||||
android:visible="false" />
|
android:visible="false" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/settings"
|
android:id="@+id/settings"
|
||||||
android:title="@string/settings" />
|
android:title="@string/settings_title" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/about"
|
android:id="@+id/about"
|
||||||
android:title="@string/about" />
|
android:title="@string/main_menu_about" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -38,5 +38,6 @@
|
||||||
<color name="bg_err">#600600</color>
|
<color name="bg_err">#600600</color>
|
||||||
<color name="bg_msg">#bff2af</color>
|
<color name="bg_msg">#bff2af</color>
|
||||||
<color name="cardview_shadow_star">#37000000</color>
|
<color name="cardview_shadow_star">#37000000</color>
|
||||||
|
<color name="start2coin_orange">#f9af25</color>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -1,268 +1,229 @@
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="ok">OK</string>
|
<string name="general_cancel">Cancel</string>
|
||||||
<string name="cancel">Cancel</string>
|
<string name="general_yes">Yes</string>
|
||||||
<string name="yes">Yes</string>
|
<string name="general_no">No</string>
|
||||||
<string name="no">No</string>
|
<string name="general_error">Error!</string>
|
||||||
<string name="no_connection">No connection with blockchain nodes</string>
|
<string name="general_error_no_connection">No connection with blockchain nodes</string>
|
||||||
<string name="contin">Continue</string>
|
<string name="general_continue">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="error_empty_pin">PIN is empty</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="general_blockchain">Blockchain</string>
|
||||||
<string name="enter_pin_and_use_fingerprint_to_save_it">Enter PIN and save it</string>
|
<string name="general_notification_scan_again">Try to scan again</string>
|
||||||
<string name="enter_pin2_and_use_fingerprint_to_save_it">Enter PIN2 and save it</string>
|
<string name="general_error_cannot_erase_wallet_with_non_zero_balance">Cannot erase wallet with non-zero balance</string>
|
||||||
<string name="bcBitcoin">Bitcoin</string>
|
<string name="general_send_transaction">Send payment</string>
|
||||||
<string name="bcEtherium">Etherium</string>
|
<string name="general_from_banknote">From banknote</string>
|
||||||
<array name="blockchains">
|
<string name="general_on_banknote">on banknote</string>
|
||||||
<item>@string/bcBitcoin</item>
|
<string name="general_balance">with balance</string>
|
||||||
<item>@string/bcEtherium</item>
|
<string name="general_send_to_wallet">Send to wallet</string>
|
||||||
</array>
|
<string name="general_amount">Amount</string>
|
||||||
<string name="title_activity_settings_feature">Settings</string>
|
<string name="general_btc">BTC</string>
|
||||||
<string name="balance">Balance</string>
|
<string name="general_tangem" translatable="false">Tangem AG</string>
|
||||||
<string name="verified_offline">verified offline</string>
|
<string name="general_notification_scan_again_to_verify">Scan again to verify the card</string>
|
||||||
<string name="blockchain">Blockchain</string>
|
<string name="general_status_reading">READING…</string>
|
||||||
<string name="last_withdrawal">Last withdrawal</string>
|
<string name="general_wallet_empty">The wallet is empty</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>
|
|
||||||
|
|
||||||
<!-- SettingsActivity -->
|
<!-- Settings -->
|
||||||
<string name="сommon">Common</string>
|
<string name="settings_title">Settings</string>
|
||||||
<string name="manual_editing_fee">Manual editing Fee</string>
|
<string name="settings_category_сommon">Common</string>
|
||||||
<string name="settings">Settings</string>
|
<string name="settings_option_manual_editing_fee">Manual editing Fee</string>
|
||||||
<string name="encryption_modes">Encryption modes</string>
|
<string name="settings_option_encryption_modes">Encryption modes</string>
|
||||||
<string-array name="encryption_modes_entries">
|
<string-array name="settings_encryption_modes_entries">
|
||||||
<item>None</item>
|
<item>None</item>
|
||||||
<item>Fast</item>
|
<item>Fast</item>
|
||||||
<item>Strong</item>
|
<item>Strong</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="encryption_mode_values">
|
<string-array name="settings_encryption_mode_values">
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
<item>2</item>
|
<item>2</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="select_nodes">Select nodes</string>
|
<string name="settings_option_select_nodes">Select nodes</string>
|
||||||
|
|
||||||
<!-- dialogs -->
|
<!-- dialogs -->
|
||||||
<string name="device_is_rooted">Your Android device is rooted. Security at risk!</string>
|
<string name="dialog_device_is_rooted">Your Android device is rooted. Security at risk!</string>
|
||||||
<string name="got_it">Got it</string>
|
<string name="dialog_btn_got_it">Got it</string>
|
||||||
<string name="warning">Warning</string>
|
<string name="dialog_warning">Warning</string>
|
||||||
<string name="security_delay">Security delay</string>
|
<string name="dialog_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="dialog_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="dialog_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="dialog_title_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="dialog_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="dialog_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_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 -->
|
<!-- menu main -->
|
||||||
<string name="clean_up">Clean up</string>
|
<string name="main_menu_manage_pin_1">Manage user PIN1…</string>
|
||||||
<string name="manage_user_pin_1">Manage user PIN1…</string>
|
<string name="main_menu_manage_pin_2">Manage user PIN2…</string>
|
||||||
<string name="manage_user_pin_2">Manage user PIN2…</string>
|
<string name="main_menu_debug_send_logs">Send logs…</string>
|
||||||
<string name="send_logs">Send logs…</string>
|
<string name="main_menu_about">About…</string>
|
||||||
<string name="about">About…</string>
|
|
||||||
|
|
||||||
<!-- menu loaded wallet -->
|
<!-- menu loaded wallet -->
|
||||||
<string name="set_pin_1">Set PIN1</string>
|
<string name="menu_loaded_wallet_set_pin_1">Set PIN1</string>
|
||||||
<string name="set_pin_2">Set PIN2</string>
|
<string name="menu_loaded_wallet_set_pin_2">Set PIN2</string>
|
||||||
<string name="reset_pin_1_to_default">Reset PIN1 to default</string>
|
<string name="menu_loaded_wallet_reset_pin_1">Reset PIN1 to default</string>
|
||||||
<string name="reset_pin_2_to_default">Reset PIN2 to default</string>
|
<string name="menu_loaded_wallet_reset_pin_2">Reset PIN2 to default</string>
|
||||||
<string name="reset_pins_to_default">Reset PINs to default</string>
|
<string name="menu_loaded_wallet_reset_pins">Reset PINs to default</string>
|
||||||
<string name="erase_wallet">Erase wallet</string>
|
<string name="menu_loaded_wallet_erase_wallet">Erase wallet</string>
|
||||||
|
|
||||||
<!-- LogoActivity -->
|
<!-- Splash Screen -->
|
||||||
<string name="version_name_debug">ALPHA v.%1$s \n dev build %2$s</string>
|
<string name="splash_version_name_debug">ALPHA v.%1$s \n dev \n build %2$s</string>
|
||||||
<string name="version_name_release">v.%1$s</string>
|
<string name="splash_version_name_release">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 -->
|
<!-- Main -->
|
||||||
<string name="tap_tangem_card">Tap Tangem card with your smartphone</string>
|
<string name="main_screen_tap_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="main_screen_scan_banknote">Scan a banknote with your \n %1$s \n as shown above</string>
|
||||||
<string name="phone">phone</string>
|
<string name="main_screen_phone">phone</string>
|
||||||
<string name="last_unspent">Last unspent</string>
|
<string name="main_screen_erased_wallet">Wallet was erased</string>
|
||||||
<string name="erased_wallet">Wallet was erased</string>
|
<string name="main_screen_not_personalized">Not personalized</string>
|
||||||
<string name="not_personalized">Not personalized</string>
|
<string name="main_screen_new_version_toast">There is a new application version: %1$s</string>
|
||||||
<string name="new_app_version">There is a new application version: %1$s</string>
|
<string name="main_screen_btn_update">Update</string>
|
||||||
<string name="update">Update</string>
|
|
||||||
|
|
||||||
<!-- LoadedWalletActivity, LoadedWalletFragment -->
|
<!-- LoadedWallet -->
|
||||||
<string name="wallet_empty">The wallet is empty</string>
|
<string name="loaded_wallet_no_compatible_wallet">No compatible wallets installed</string>
|
||||||
<string name="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="please_wait_while_previous">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="please_wait_for_confirmation">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="card_has_no_remaining_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="explore_in_blockchain">EXPLORE</string>
|
<string name="loaded_wallet_warning_default_pin">If you use default PIN someone can steal your money!</string>
|
||||||
<string name="swipe_down_to_refresh_data">Swipe down to refresh data</string>
|
<string name="loaded_wallet_error_obtaining_blockchain_data">Cannot obtain data from blockchain</string>
|
||||||
<string name="message">Message!</string>
|
<string name="loaded_wallet_error_blockchain_connection_refused">Cannot obtain data from blockchain (connection refused)</string>
|
||||||
<string name="error">Error!</string>
|
<string name="loaded_wallet_error_blockchain_empty_answer">Cannot obtain data from blockchain (empty answer received)</string>
|
||||||
<string name="btn_send">Send</string>
|
<string name="loaded_wallet_error_blockchain_communication_error">Cannot obtain data from blockchain (communication error)</string>
|
||||||
<string name="if_you_forget">If you forget your new PIN you will lose your money forever!</string>
|
<string name="loaded_wallet_chooser_share">Share wallet address with:</string>
|
||||||
<string name="if_you_use_default">If you use default PIN someone can steal your money!</string>
|
<string name="loaded_wallet_toast_copied">Copied to clipboard</string>
|
||||||
<string name="cannot_obtain_data_from_blockchain">Cannot obtain data from blockchain</string>
|
<string name="loaded_wallet_btn_extract">Extract</string>
|
||||||
<string name="cannot_obtain_data_from_blockchain_no_connection">Cannot obtain data from blockchain (connection refused)</string>
|
<string name="loaded_wallet_btn_load">Load</string>
|
||||||
<string name="cannot_obtain_data_from_blockchain_no_answer">Cannot obtain data from blockchain (empty answer received)</string>
|
<string name="loaded_wallet_btn_explore">Explore</string>
|
||||||
<string name="cannot_obtain_data_from_blockchain_communication_error">Cannot obtain data from blockchain (communication error)</string>
|
<string name="loaded_wallet_btn_copy">Copy</string>
|
||||||
<string name="sending_cached_transaction">Sending cached transaction…</string>
|
<string name="loaded_wallet_btn_details">Details</string>
|
||||||
<string name="not_implemented">NOT IMPLEMENTED</string>
|
<string name="loaded_wallet_btn_new_scan">New scan</string>
|
||||||
<string name="this_banknote_protected_default_PIN1_code">This banknote is protected by default PIN1 code</string>
|
<string name="loaded_wallet_verifying_in_blockchain">Verifying in blockchain…</string>
|
||||||
<string name="this_banknote_protected_user_PIN1_code">This banknote is protected by user\'s PIN1 code</string>
|
<string name="loaded_wallet_warning_card_signed_transactions">Warning: This card has been already topped up and signed transactions in the past.
|
||||||
<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.
|
|
||||||
Consider immediate withdrawal of all funds if you have received this card from an untrusted source.</string>
|
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="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_create_the_wallet">to create the wallet</string>
|
||||||
<string name="to_erase_the_wallet">to erase 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_sign_the_transaction">to sign the payment</string>
|
||||||
<string name="to_change_pin_codes">to change PIN/PIN2 codes</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="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="cannot_erase_wallet">Cannot erase wallet. Make sure you enter correct PIN2!</string>
|
<string name="nfc_error_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_error_cannot_create_wallet">Cannot create wallet. Make sure you enter correct PIN2!</string>
|
||||||
|
|
||||||
<!-- PrepareTransactionActivity -->
|
<!-- PinRequest -->
|
||||||
<string name="enter_wallet_address">enter wallet address</string>
|
<string name="pin_request_enter_new_pin_or_use_fingerprint_scanner">Enter new PIN or use fingerprint scanner</string>
|
||||||
<string name="enter_amount">enter amount</string>
|
<string name="pin_request_enter_new_pin">Enter new PIN</string>
|
||||||
<string name="verify">Verify</string>
|
<string name="pin_request_enter_pin_or_use_fingerprint_scanner">Enter PIN or use fingerprint scanner</string>
|
||||||
<string name="wallet_address_empty">Wallet address is empty</string>
|
<string name="pin_request_enter_pin_2_or_use_fingerprint_scanner">Enter PIN2 or use fingerprint scanner</string>
|
||||||
<string name="amount_empty">Amount is empty</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 -->
|
<!-- SendTransaction-->
|
||||||
<string name="please_wait">Please wait while the payment is sent…</string>
|
<string name="send_transaction_notification_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="send_transaction_success">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="send_transaction_error_failed_to_send">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="send_transaction_error_cannot_sign">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>
|
<string name="send_transaction_error_wrong_amount">Amount and fee exceed total wallet balance!</string>
|
||||||
|
|
||||||
<!-- PrepareTransactionActivity -->
|
<!-- PrepareTransaction -->
|
||||||
<string name="not_enough_funds_on_your_card">Not enough funds</string>
|
<string name="prepare_transaction_hint_enter_address">enter wallet address</string>
|
||||||
<string name="unknown_amount_format">Unknown amount format</string>
|
<string name="prepare_transaction_hint_enter_amount">enter amount</string>
|
||||||
<string name="incorrect_destination_wallet_address">Incorrect destination wallet address</string>
|
<string name="prepare_transaction_btn_verify">Verify</string>
|
||||||
<string name="destination_wallet_address_equal_source_address">Destination wallet address equal source address</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 -->
|
<!-- ConfirmTransaction -->
|
||||||
<string name="target_wallet_address">target wallet address</string>
|
<string name="confirm_transaction_hint_target_address">target wallet address</string>
|
||||||
<string name="payment_amount">payment amount</string>
|
<string name="confirm_transaction_hint_fee_amount">fee amount</string>
|
||||||
<string name="fee_amount">fee amount</string>
|
<string name="confirm_transaction_fee">Fee</string>
|
||||||
<string name="fee">Fee</string>
|
<string name="confirm_transaction_btn_send">Send</string>
|
||||||
<string name="send_1">Send</string>
|
<string name="confirm_transaction_btn_fee_minimal">Minimal</string>
|
||||||
<string name="minimal">Minimal</string>
|
<string name="confirm_transaction_btn_fee_normal">Normal</string>
|
||||||
<string name="normal">Normal</string>
|
<string name="confirm_transaction_btn_fee_priority">Priority</string>
|
||||||
<string name="priority">Priority</string>
|
<string name="confirm_transaction_btn_including_fee">Including fee</string>
|
||||||
<string name="including_fee_">Including fee</string>
|
<string name="confirm_transaction_btn_not_including_fee">Not including fee</string>
|
||||||
<string name="not_including_fee_">Not including fee</string>
|
<string name="confirm_transaction_including_fee">(including fee)</string>
|
||||||
<string name="including_fee">(including fee)</string>
|
<string name="confirm_transaction_not_including_fee">(not including fee)</string>
|
||||||
<string name="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="the_obtained_data_is_outdated_try_again">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="cannot_reach_current_active_blockchain_node_try_again">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="cannot_check_balance_no_connection_with_blockchain_nodes">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="cannot_calculate_fee_tx_length_unknown">Cannot calculate fee! Tx length unknown</string>
|
<string name="confirm_transaction_error_incoming_transaction_unconfirmed">Please wait for confirmation of incoming transaction</string>
|
||||||
<string name="cannot_calculate_fee_wrong_data_received_from_node">Cannot calculate fee! Wrong data received from the node</string>
|
<string name="confirm_transaction_error_not_enough_eth_for_fee">Not enough ETH funds for fee</string>
|
||||||
<string name="the_wallet_is_empty">The wallet is empty</string>
|
<string name="confirm_transaction_error_not_enough_rbtc_for_fee">Not enough RBTC funds for fee</string>
|
||||||
<string name="please_wait_for_confirmation_of_incoming_transaction">Please wait for confirmation of incoming transaction</string>
|
<string name="confirm_transaction_error_pin_2_is_required">PIN2 is required to sign the payment</string>
|
||||||
<string name="not_enough_eth_for_fee">Not enough ETH funds for fee</string>
|
<string name="confirm_transaction_error_service_unavailable">Service unavailable</string>
|
||||||
<string name="not_enough_rbtc_for_fee">Not enough RBTC funds for fee</string>
|
<string name="confirm_transaction_warning_risk_delaying">You have a risk of delaying transaction</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>
|
|
||||||
|
|
||||||
<!-- EmptyWalletActivity -->
|
<!-- EmptyWallet -->
|
||||||
<string name="wallet_has_not_been_yet_created">Wallet hasn\'t been yet created</string>
|
<string name="empty_wallet_not_created">Wallet hasn\'t been yet created</string>
|
||||||
<string name="create_wallet">Create Wallet</string>
|
<string name="empty_wallet_btn_create">Create Wallet</string>
|
||||||
|
|
||||||
<!-- VerifyCardActivity -->
|
<!-- VerifyCard -->
|
||||||
<string name="card_id">Card ID</string>
|
<string name="details_title_card_id">Card ID</string>
|
||||||
<string name="signing_method">Signing method</string>
|
<string name="details_signing_method">Signing method</string>
|
||||||
<string name="this_card_is">This card is</string>
|
<string name="details_is_card_reusable">This card is</string>
|
||||||
<string name="signed_transactions">Signed transactions</string>
|
<string name="details_signed_transactions">Signed transactions</string>
|
||||||
<string name="remaining_signatures">Remaining signatures</string>
|
<string name="details_remaining_signatures">Remaining signatures</string>
|
||||||
<string name="time_of_last_signing">Time of last signing</string>
|
<string name="details_time_of_last_signing">Time of last signing</string>
|
||||||
<string name="features">Features</string>
|
<string name="details_features">Features</string>
|
||||||
<string name="manufacturer">Manufacturer</string>
|
<string name="details_category_manufacturer">Manufacturer</string>
|
||||||
<string name="card_identity">Card identity</string>
|
<string name="details_category_wallet">Wallet</string>
|
||||||
<string name="attested">Attested</string>
|
<string name="details_card_identity">Card identity</string>
|
||||||
<string name="not_confirmed">Not confirmed</string>
|
<string name="details_attested">Attested</string>
|
||||||
<string name="reusable">Reusable</string>
|
<string name="details_not_confirmed">Not confirmed</string>
|
||||||
<string name="none">None</string>
|
<string name="details_reusable">Reusable</string>
|
||||||
<string name="last_one">Last one!</string>
|
<string name="details_none">None</string>
|
||||||
<string name="unlimited">Unlimited</string>
|
<string name="details_last_one">Last one!</string>
|
||||||
<string name="one_off_banknote">One-off banknote</string>
|
<string name="details_unlimited">Unlimited</string>
|
||||||
<string name="firmware">Firmware</string>
|
<string name="details_one_off_banknote">One-off banknote</string>
|
||||||
<string name="registration_date">Registration date</string>
|
<string name="details_firmware">Firmware</string>
|
||||||
<string name="possession_proved">Possession proved</string>
|
<string name="details_registration_date">Registration date</string>
|
||||||
<string name="possession_not_proved">Possession NOT proved</string>
|
<string name="details_possession_proved">Possession proved</string>
|
||||||
<string name="not_available">not available</string>
|
<string name="details_possession_not_proved">Possession NOT proved</string>
|
||||||
<string name="issuer">Issuer</string>
|
<string name="details_not_available">not available</string>
|
||||||
<string name="private_key">Private key</string>
|
<string name="details_category_issuer">Issuer</string>
|
||||||
<string name="validation_node">Validation node</string>
|
<string name="details_private_key">Private key</string>
|
||||||
<string name="issuer_data">Issuer Data</string>
|
<string name="details_validation_node">Validation node</string>
|
||||||
<string name="unspents">Unspents</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 -->
|
<!-- PinSave -->
|
||||||
<string name="save">Save</string>
|
<string name="pin_save_btn_save">Save</string>
|
||||||
<string name="delete">Delete</string>
|
<string name="pin_save_btn_delete">Delete</string>
|
||||||
<string name="protect_with_fingerprint">Protect with fingerprint</string>
|
<string name="pin_save_checkbox_protect_with_fingerprint">Protect with fingerprint</string>
|
||||||
<string name="touch_fingerprint_scanner_to_confirm">Touch fingerprint scanner to confirm</string>
|
<string name="pin_save_dialog_touch_fingerprint_scanner">Touch fingerprint scanner to confirm</string>
|
||||||
<string name="user_has_not_enabled_lock_screen">User hasn\'t enabled Lock Screen</string>
|
<string name="pin_save_toast_lock_screen_not_enabled">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="pin_save_toast_no_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>
|
<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 -->
|
<!-- PrepareCryptonitWithdrawal -->
|
||||||
<string name="cryptonit_payment">CRYPTONIT payment</string>
|
<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_not_enough_account_data">Please enter account data</string>
|
||||||
<string name="kraken_request_balance">Get balance</string>
|
<string name="kraken_request_balance">Get balance</string>
|
||||||
<string name="kraken_request_withdrawal">Withdrawal</string>
|
<string name="kraken_request_withdrawal">Withdrawal</string>
|
||||||
<string name="operation_canceled">Operation canceled!</string>
|
<string name="kraken_operation_canceled">Operation canceled!</string>
|
||||||
<string name="please_confirm_withdraw">Please confirm withdraw</string>
|
<string name="kraken_please_confirm_withdraw">Please confirm withdraw</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -2,23 +2,23 @@
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="@string/pref_category_common"
|
android:key="@string/pref_category_common"
|
||||||
android:title="@string/сommon">
|
android:title="@string/settings_category_сommon">
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/pref_manual_editing_fee"
|
android:key="@string/pref_manual_editing_fee"
|
||||||
android:title="@string/manual_editing_fee" />
|
android:title="@string/settings_option_manual_editing_fee" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="@string/pref_select_nodes"
|
android:key="@string/pref_select_nodes"
|
||||||
android:title="@string/select_nodes" />
|
android:title="@string/settings_option_select_nodes" />
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:defaultValue="0"
|
android:defaultValue="0"
|
||||||
android:entries="@array/encryption_modes_entries"
|
android:entries="@array/settings_encryption_modes_entries"
|
||||||
android:entryValues="@array/encryption_mode_values"
|
android:entryValues="@array/settings_encryption_mode_values"
|
||||||
android:key="@string/pref_encryption_modes"
|
android:key="@string/pref_encryption_modes"
|
||||||
android:title="@string/encryption_modes" />
|
android:title="@string/settings_option_encryption_modes" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,9 +77,9 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
isIncludeFee = arguments?.getBoolean(Constant.EXTRA_FEE_INCLUDED, true) ?: true
|
isIncludeFee = arguments?.getBoolean(Constant.EXTRA_FEE_INCLUDED, true) ?: true
|
||||||
|
|
||||||
if (isIncludeFee)
|
if (isIncludeFee)
|
||||||
tvIncFee.setText(R.string.including_fee)
|
tvIncFee.setText(R.string.confirm_transaction_including_fee)
|
||||||
else
|
else
|
||||||
tvIncFee.setText(R.string.not_including_fee)
|
tvIncFee.setText(R.string.confirm_transaction_not_including_fee)
|
||||||
|
|
||||||
amount = CoinEngine.Amount(arguments?.getString(Constant.EXTRA_AMOUNT) ?: "0",
|
amount = CoinEngine.Amount(arguments?.getString(Constant.EXTRA_AMOUNT) ?: "0",
|
||||||
arguments?.getString(Constant.EXTRA_AMOUNT_CURRENCY) ?: "")
|
arguments?.getString(Constant.EXTRA_AMOUNT_CURRENCY) ?: "")
|
||||||
|
|
@ -123,7 +123,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
tvFeeEquivalent.text = eqFee
|
tvFeeEquivalent.text = eqFee
|
||||||
|
|
||||||
if (!ctx.coinData!!.amountEquivalentDescriptionAvailable) {
|
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
|
tvCurrency2.visibility = View.GONE
|
||||||
tvFeeEquivalent.visibility = View.GONE
|
tvFeeEquivalent.visibility = View.GONE
|
||||||
} else
|
} else
|
||||||
|
|
@ -131,7 +131,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
|
|
||||||
if (sp.getBoolean(getString(R.string.pref_manual_editing_fee), false))
|
if (sp.getBoolean(getString(R.string.pref_manual_editing_fee), false))
|
||||||
(activity as MainActivity).toastHelper
|
(activity as MainActivity).toastHelper
|
||||||
.showSingleToast(context, getString(R.string.risk_delaying))
|
.showSingleToast(context, getString(R.string.confirm_transaction_warning_risk_delaying))
|
||||||
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
|
|
@ -149,14 +149,14 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
calendar.add(Calendar.MINUTE, -1)
|
calendar.add(Calendar.MINUTE, -1)
|
||||||
|
|
||||||
if (dtVerified == null || dtVerified!!.before(calendar.time)) {
|
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
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
val engineCoin = CoinEngineFactory.create(ctx)
|
val engineCoin = CoinEngineFactory.create(ctx)
|
||||||
|
|
||||||
if (engineCoin!!.isNeedCheckNode && !nodeCheck) {
|
if (engineCoin!!.isNeedCheckNode && !nodeCheck) {
|
||||||
Toast.makeText(context, getString(R.string.cannot_reach_current_active_blockchain_node_try_again), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, getString(R.string.confirm_transaction_error_cannot_reach_node), Toast.LENGTH_LONG).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -164,20 +164,20 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
val txAmount = engineCoin.convertToAmount(etAmount.text.toString(), tvCurrency.text.toString())
|
val txAmount = engineCoin.convertToAmount(etAmount.text.toString(), tvCurrency.text.toString())
|
||||||
|
|
||||||
if (!engineCoin.hasBalanceInfo()) {
|
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
|
return@setOnClickListener
|
||||||
|
|
||||||
} else if (!engineCoin.isBalanceNotZero) {
|
} 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
|
return@setOnClickListener
|
||||||
|
|
||||||
} else if (!engineCoin.isExtractPossible) {
|
} 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
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!engineCoin.checkNewTransactionAmountAndFee(txAmount, txFee, isIncludeFee)) {
|
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
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -188,7 +188,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
data.putBoolean(Constant.EXTRA_FEE_INCLUDED, isIncludeFee)
|
data.putBoolean(Constant.EXTRA_FEE_INCLUDED, isIncludeFee)
|
||||||
navigateForResult(Constant.REQUEST_CODE_REQUEST_PIN2_, R.id.action_confirmTransactionFragment_to_pinRequestFragment, data)
|
navigateForResult(Constant.REQUEST_CODE_REQUEST_PIN2_, R.id.action_confirmTransactionFragment_to_pinRequestFragment, data)
|
||||||
} else
|
} else
|
||||||
Toast.makeText(context, getString(R.string.no_connection), Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, getString(R.string.general_error_no_connection), Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
progressBar.visibility = View.VISIBLE
|
progressBar.visibility = View.VISIBLE
|
||||||
|
|
@ -258,7 +258,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
R.id.action_confirmTransactionFragment_to_signTransactionFragment,
|
R.id.action_confirmTransactionFragment_to_signTransactionFragment,
|
||||||
bundle)
|
bundle)
|
||||||
} else
|
} else
|
||||||
Toast.makeText(context, R.string.pin_2_is_required_to_sign_the_transaction, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.confirm_transaction_error_pin_2_is_required, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ class PrepareTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
|
|
||||||
btnVerify.setOnClickListener {
|
btnVerify.setOnClickListener {
|
||||||
if (!UtilHelper.isOnline(context!!)) {
|
if (!UtilHelper.isOnline(context!!)) {
|
||||||
Toast.makeText(context, R.string.no_connection, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.general_error_no_connection, Toast.LENGTH_LONG).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -83,22 +83,22 @@ class PrepareTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!engine.checkNewTransactionAmount(amount))
|
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
|
else
|
||||||
etAmount.error = null
|
etAmount.error = null
|
||||||
} catch (e: Exception) {
|
} 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
|
// check wallet address
|
||||||
if (!engine1.validateAddress(etWallet.text.toString())) {
|
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
|
return@setOnClickListener
|
||||||
} else
|
} else
|
||||||
etWallet.error = null
|
etWallet.error = null
|
||||||
|
|
||||||
if (etWallet.text.toString() == ctx.coinData!!.wallet) {
|
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
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
} catch (e: CardProtocol.TangemException_WrongAmount) {
|
} catch (e: CardProtocol.TangemException_WrongAmount) {
|
||||||
try {
|
try {
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, ctx.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, ctx.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, ctx.card.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, ctx.card.asBundle)
|
||||||
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
||||||
|
|
@ -191,7 +191,7 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
|
||||||
progressBar?.visibility = View.INVISIBLE
|
progressBar?.visibility = View.INVISIBLE
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_make_sure_you_enter_correct_pin_2))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_cannot_sign))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
||||||
navigateBackWithResult(Constant.RESULT_INVALID_PIN_, data)
|
navigateBackWithResult(Constant.RESULT_INVALID_PIN_, data)
|
||||||
|
|
@ -203,7 +203,7 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
if (cardProtocol.error is CardProtocol.TangemException_WrongAmount) {
|
if (cardProtocol.error is CardProtocol.TangemException_WrongAmount) {
|
||||||
try {
|
try {
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
||||||
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
||||||
|
|
@ -214,11 +214,11 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
progressBar?.post {
|
progressBar?.post {
|
||||||
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
|
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
|
||||||
if (!NoExtendedLengthSupportDialog.allReadyShowed) {
|
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(requireFragmentManager(), NoExtendedLengthSupportDialog.TAG)
|
NoExtendedLengthSupportDialog().show(requireFragmentManager(), NoExtendedLengthSupportDialog.TAG)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.general_notification_scan_again, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
progressBar?.progress = 100
|
progressBar?.progress = 100
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingBottom="4dp"
|
android:paddingBottom="4dp"
|
||||||
android:text="@string/send_transaction"
|
android:text="@string/general_send_transaction"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/from_banknote"
|
android:text="@string/general_from_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/target_wallet_address"
|
android:hint="@string/confirm_transaction_hint_target_address"
|
||||||
android:inputType="textMultiLine"
|
android:inputType="textMultiLine"
|
||||||
android:maxLines="2"
|
android:maxLines="2"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -125,7 +125,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -157,7 +157,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -177,7 +177,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_1_large"
|
android:textSize="@dimen/text_size_1_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -209,7 +209,7 @@
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/fee"
|
android:text="@string/confirm_transaction_fee"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -234,7 +234,7 @@
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/minimal"
|
android:text="@string/confirm_transaction_btn_fee_minimal"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
|
|
@ -243,7 +243,7 @@
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/normal"
|
android:text="@string/confirm_transaction_btn_fee_normal"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
|
|
@ -252,7 +252,7 @@
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/priority"
|
android:text="@string/confirm_transaction_btn_fee_priority"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
</info.hoang8f.android.segmented.SegmentedGroup>
|
</info.hoang8f.android.segmented.SegmentedGroup>
|
||||||
|
|
@ -269,7 +269,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/fee_amount"
|
android:hint="@string/confirm_transaction_hint_fee_amount"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:textColor="@color/black"
|
android:textColor="@color/black"
|
||||||
|
|
@ -288,7 +288,7 @@
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toRightOf="@+id/etFee"
|
app:layout_constraintLeft_toRightOf="@+id/etFee"
|
||||||
|
|
@ -318,7 +318,7 @@
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/send_1"
|
android:text="@string/confirm_transaction_btn_send"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingBottom="8dp"
|
android:paddingBottom="8dp"
|
||||||
android:text="@string/send_transaction"
|
android:text="@string/general_send_transaction"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/from_banknote"
|
android:text="@string/general_from_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -140,7 +140,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_wallet_address"
|
android:hint="@string/prepare_transaction_hint_enter_address"
|
||||||
android:imeOptions="actionNext"
|
android:imeOptions="actionNext"
|
||||||
android:inputType="text|textMultiLine|textNoSuggestions"
|
android:inputType="text|textMultiLine|textNoSuggestions"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -164,7 +164,7 @@
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -185,7 +185,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -205,7 +205,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_1_large"
|
android:textSize="@dimen/text_size_1_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -234,7 +234,7 @@
|
||||||
android:layout_width="150dp"
|
android:layout_width="150dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
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" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
|
|
@ -243,7 +243,7 @@
|
||||||
android:layout_width="150dp"
|
android:layout_width="150dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
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" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
</info.hoang8f.android.segmented.SegmentedGroup>
|
</info.hoang8f.android.segmented.SegmentedGroup>
|
||||||
|
|
@ -257,7 +257,7 @@
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/verify"
|
android:text="@string/prepare_transaction_btn_verify"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Tangem Access</string>
|
<string name="app_name" translatable="false">Tangem Access</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -15,11 +15,11 @@ import android.widget.Toast
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
import com.tangem.Constant
|
import com.tangem.Constant
|
||||||
import com.tangem.card_android.android.data.PINStorage
|
import com.tangem.tangem_sdk.android.data.PINStorage
|
||||||
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
|
import com.tangem.tangem_sdk.data.EXTRA_TANGEM_CARD
|
||||||
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
|
import com.tangem.tangem_sdk.data.EXTRA_TANGEM_CARD_UID
|
||||||
import com.tangem.card_android.data.loadFromBundle
|
import com.tangem.tangem_sdk.data.loadFromBundle
|
||||||
import com.tangem.card_common.data.TangemCard
|
import com.tangem.tangem_card.data.TangemCard
|
||||||
import com.tangem.ui.activity.MainActivity
|
import com.tangem.ui.activity.MainActivity
|
||||||
import com.tangem.ui.event.TransactionFinishWithError
|
import com.tangem.ui.event.TransactionFinishWithError
|
||||||
import com.tangem.ui.fragment.BaseFragment
|
import com.tangem.ui.fragment.BaseFragment
|
||||||
|
|
@ -72,9 +72,9 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
isIncludeFee = arguments?.getBoolean(Constant.EXTRA_FEE_INCLUDED, true) ?: true
|
isIncludeFee = arguments?.getBoolean(Constant.EXTRA_FEE_INCLUDED, true) ?: true
|
||||||
|
|
||||||
if (isIncludeFee)
|
if (isIncludeFee)
|
||||||
tvIncFee.setText(R.string.including_fee)
|
tvIncFee.setText(R.string.confirm_transaction_including_fee)
|
||||||
else
|
else
|
||||||
tvIncFee.setText(R.string.not_including_fee)
|
tvIncFee.setText(R.string.confirm_transaction_not_including_fee)
|
||||||
|
|
||||||
amount = CoinEngine.Amount(arguments?.getString(Constant.EXTRA_AMOUNT) ?: "0",
|
amount = CoinEngine.Amount(arguments?.getString(Constant.EXTRA_AMOUNT) ?: "0",
|
||||||
arguments?.getString(Constant.EXTRA_AMOUNT_CURRENCY) ?: "")
|
arguments?.getString(Constant.EXTRA_AMOUNT_CURRENCY) ?: "")
|
||||||
|
|
@ -116,7 +116,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
tvFeeEquivalent.text = eqFee
|
tvFeeEquivalent.text = eqFee
|
||||||
|
|
||||||
if (!ctx.coinData!!.amountEquivalentDescriptionAvailable) {
|
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
|
tvCurrency2.visibility = View.GONE
|
||||||
tvFeeEquivalent.visibility = View.GONE
|
tvFeeEquivalent.visibility = View.GONE
|
||||||
} else
|
} else
|
||||||
|
|
@ -138,14 +138,14 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
calendar.add(Calendar.MINUTE, -1)
|
calendar.add(Calendar.MINUTE, -1)
|
||||||
|
|
||||||
if (dtVerified == null || dtVerified!!.before(calendar.time)) {
|
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
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
val engineCoin = CoinEngineFactory.createCardano(ctx)
|
val engineCoin = CoinEngineFactory.createCardano(ctx)
|
||||||
|
|
||||||
if (engineCoin!!.isNeedCheckNode && !nodeCheck) {
|
if (engineCoin!!.isNeedCheckNode && !nodeCheck) {
|
||||||
Toast.makeText(context, getString(R.string.cannot_reach_current_active_blockchain_node_try_again), Toast.LENGTH_LONG).show()
|
Toast.makeText(context, getString(R.string.confirm_transaction_error_cannot_reach_node), Toast.LENGTH_LONG).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -192,7 +192,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
R.id.action_confirmTransactionFragment_to_signTransactionFragment,
|
R.id.action_confirmTransactionFragment_to_signTransactionFragment,
|
||||||
data)
|
data)
|
||||||
} else
|
} else
|
||||||
Toast.makeText(context, getString(R.string.no_connection), Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, getString(R.string.general_error_no_connection), Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
progressBar.visibility = View.VISIBLE
|
progressBar.visibility = View.VISIBLE
|
||||||
|
|
@ -260,7 +260,7 @@ class ConfirmTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
R.id.action_confirmTransactionFragment_to_signTransactionFragment,
|
R.id.action_confirmTransactionFragment_to_signTransactionFragment,
|
||||||
bundle)
|
bundle)
|
||||||
} else
|
} else
|
||||||
Toast.makeText(context, R.string.pin_2_is_required_to_sign_the_transaction, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.confirm_transaction_error_pin_2_is_required, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,19 +73,19 @@ class PrepareTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
|
|
||||||
btnVerify.setOnClickListener {
|
btnVerify.setOnClickListener {
|
||||||
if (!UtilHelper.isOnline(requireContext())) {
|
if (!UtilHelper.isOnline(requireContext())) {
|
||||||
Toast.makeText(context, R.string.no_connection, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.general_error_no_connection, Toast.LENGTH_LONG).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
// check on empty wallet address
|
// check on empty wallet address
|
||||||
if (etWallet.text.toString() == "") {
|
if (etWallet.text.toString() == "") {
|
||||||
etWallet.error = getString(R.string.wallet_address_empty)
|
etWallet.error = getString(R.string.general_wallet_empty)
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
// check on empty amount
|
// check on empty amount
|
||||||
if (etAmount.text.toString() == "") {
|
if (etAmount.text.toString() == "") {
|
||||||
etAmount.error = getString(R.string.amount_empty)
|
etAmount.error = getString(R.string.prepare_transaction_error_amount_empty)
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,16 +95,16 @@ class PrepareTransactionFragment : BaseFragment(), NavigationResultListener, Nfc
|
||||||
// check amount
|
// check amount
|
||||||
try {
|
try {
|
||||||
if (!engine.checkNewTransactionAmount(amount))
|
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
|
else
|
||||||
etAmount.error = null
|
etAmount.error = null
|
||||||
} catch (e: Exception) {
|
} 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
|
// check wallet address
|
||||||
if (!engine.validateAddress(etWallet.text.toString())) {
|
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
|
return@setOnClickListener
|
||||||
} else
|
} else
|
||||||
etWallet.error = null
|
etWallet.error = null
|
||||||
|
|
|
||||||
|
|
@ -17,19 +17,19 @@ import android.widget.Toast
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import com.tangem.App
|
import com.tangem.App
|
||||||
import com.tangem.Constant
|
import com.tangem.Constant
|
||||||
import com.tangem.card_android.android.nfc.NfcDeviceAntennaLocation
|
import com.tangem.tangem_sdk.android.nfc.NfcDeviceAntennaLocation
|
||||||
import com.tangem.card_android.android.reader.NfcManager
|
import com.tangem.tangem_sdk.android.reader.NfcManager
|
||||||
import com.tangem.card_android.android.reader.NfcReader
|
import com.tangem.tangem_sdk.android.reader.NfcReader
|
||||||
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
|
import com.tangem.tangem_sdk.data.EXTRA_TANGEM_CARD
|
||||||
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
|
import com.tangem.tangem_sdk.data.EXTRA_TANGEM_CARD_UID
|
||||||
import com.tangem.card_android.data.asBundle
|
import com.tangem.tangem_sdk.data.asBundle
|
||||||
import com.tangem.card_common.data.TangemCard
|
import com.tangem.tangem_card.data.TangemCard
|
||||||
import com.tangem.card_common.reader.CardCrypto
|
import com.tangem.tangem_card.reader.CardCrypto
|
||||||
import com.tangem.card_common.reader.CardProtocol
|
import com.tangem.tangem_card.reader.CardProtocol
|
||||||
import com.tangem.card_common.tasks.CustomReadCardTask
|
import com.tangem.tangem_card.tasks.CustomReadCardTask
|
||||||
import com.tangem.card_common.tasks.OneTouchSignTask
|
import com.tangem.tangem_card.tasks.OneTouchSignTask
|
||||||
import com.tangem.card_common.tasks.SignTask
|
import com.tangem.tangem_card.tasks.SignTask
|
||||||
import com.tangem.card_common.util.Log
|
import com.tangem.tangem_card.util.Log
|
||||||
import com.tangem.wallet.CoinEngine
|
import com.tangem.wallet.CoinEngine
|
||||||
import com.tangem.wallet.CoinEngineFactory
|
import com.tangem.wallet.CoinEngineFactory
|
||||||
import com.tangem.wallet.TangemContext
|
import com.tangem.wallet.TangemContext
|
||||||
|
|
@ -225,7 +225,7 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
} catch (e: CardProtocol.TangemException_WrongAmount) {
|
} catch (e: CardProtocol.TangemException_WrongAmount) {
|
||||||
try {
|
try {
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, ctx.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, ctx.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, ctx.card.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, ctx.card.asBundle)
|
||||||
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
||||||
|
|
@ -275,7 +275,7 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
|
||||||
progressBar?.visibility = View.INVISIBLE
|
progressBar?.visibility = View.INVISIBLE
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_make_sure_you_enter_correct_pin_2))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_cannot_sign))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
||||||
navigateBackWithResult(Constant.RESULT_INVALID_PIN_, data)
|
navigateBackWithResult(Constant.RESULT_INVALID_PIN_, data)
|
||||||
|
|
@ -287,7 +287,7 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
if (cardProtocol.error is CardProtocol.TangemException_WrongAmount) {
|
if (cardProtocol.error is CardProtocol.TangemException_WrongAmount) {
|
||||||
try {
|
try {
|
||||||
val data = Bundle()
|
val data = Bundle()
|
||||||
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.cannot_sign_transaction_wrong_amount))
|
data.putString(Constant.EXTRA_MESSAGE, getString(R.string.send_transaction_error_wrong_amount))
|
||||||
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
data.putString(EXTRA_TANGEM_CARD_UID, cardProtocol.card.uid)
|
||||||
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
data.putBundle(EXTRA_TANGEM_CARD, cardProtocol.card.asBundle)
|
||||||
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
navigateBackWithResult(Activity.RESULT_CANCELED, data)
|
||||||
|
|
@ -298,11 +298,11 @@ class SignTransactionFragment : BaseFragment(), NavigationResultListener,
|
||||||
progressBar?.post {
|
progressBar?.post {
|
||||||
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
|
if (cardProtocol.error is CardProtocol.TangemException_ExtendedLengthNotSupported) {
|
||||||
if (!NoExtendedLengthSupportDialog.allReadyShowed) {
|
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(requireFragmentManager(), NoExtendedLengthSupportDialog.TAG)
|
NoExtendedLengthSupportDialog().show(requireFragmentManager(), NoExtendedLengthSupportDialog.TAG)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, R.string.try_to_scan_again, Toast.LENGTH_LONG).show()
|
Toast.makeText(context, R.string.general_notification_scan_again, Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
progressBar?.progress = 100
|
progressBar?.progress = 100
|
||||||
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
progressBar?.progressTintList = ColorStateList.valueOf(Color.RED)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingBottom="4dp"
|
android:paddingBottom="4dp"
|
||||||
android:text="@string/send_transaction"
|
android:text="@string/general_send_transaction"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/from_banknote"
|
android:text="@string/general_from_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_marginTop="6dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
@ -93,7 +93,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -108,7 +108,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/target_wallet_address"
|
android:hint="@string/confirm_transaction_hint_target_address"
|
||||||
android:inputType="textMultiLine"
|
android:inputType="textMultiLine"
|
||||||
android:maxLines="2"
|
android:maxLines="2"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -127,7 +127,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -159,7 +159,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -179,7 +179,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_1_large"
|
android:textSize="@dimen/text_size_1_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -211,7 +211,7 @@
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/fee"
|
android:text="@string/confirm_transaction_fee"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -236,7 +236,7 @@
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/minimal"
|
android:text="@string/confirm_transaction_btn_fee_minimal"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
|
|
@ -245,7 +245,7 @@
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/normal"
|
android:text="@string/confirm_transaction_btn_fee_normal"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
|
|
@ -254,7 +254,7 @@
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
android:fontFamily="@font/saira_condensed_bold"
|
||||||
android:text="@string/priority"
|
android:text="@string/confirm_transaction_btn_fee_priority"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
</info.hoang8f.android.segmented.SegmentedGroup>
|
</info.hoang8f.android.segmented.SegmentedGroup>
|
||||||
|
|
@ -272,7 +272,7 @@
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/fee_amount"
|
android:hint="@string/confirm_transaction_hint_fee_amount"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:textColor="@color/black"
|
android:textColor="@color/black"
|
||||||
|
|
@ -291,7 +291,7 @@
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintLeft_toRightOf="@+id/etFee"
|
app:layout_constraintLeft_toRightOf="@+id/etFee"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:paddingTop="8dp"
|
android:paddingTop="8dp"
|
||||||
android:paddingBottom="8dp"
|
android:paddingBottom="8dp"
|
||||||
android:text="@string/send_transaction"
|
android:text="@string/general_send_transaction"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_large"
|
android:textSize="@dimen/text_size_large"
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/from_banknote"
|
android:text="@string/general_from_banknote"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
android:layout_marginStart="7dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/with_balance"
|
android:text="@string/general_balance"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/send_to_wallet"
|
android:text="@string/general_send_to_wallet"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -142,7 +142,7 @@
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:drawableEnd="@android:drawable/ic_menu_close_clear_cancel"
|
android:drawableEnd="@android:drawable/ic_menu_close_clear_cancel"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_wallet_address"
|
android:hint="@string/prepare_transaction_hint_enter_address"
|
||||||
android:imeOptions="actionNext"
|
android:imeOptions="actionNext"
|
||||||
android:inputType="text|textMultiLine|textNoSuggestions"
|
android:inputType="text|textMultiLine|textNoSuggestions"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -166,7 +166,7 @@
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/amount"
|
android:text="@string/general_amount"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_medium"
|
android:textSize="@dimen/text_size_medium"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -186,7 +186,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:digits="0123456789.,"
|
android:digits="0123456789.,"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:hint="@string/enter_amount"
|
android:hint="@string/prepare_transaction_hint_enter_amount"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="numberDecimal"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
|
|
@ -206,7 +206,7 @@
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:fontFamily="@font/maax"
|
android:fontFamily="@font/maax"
|
||||||
android:text="@string/m_btc"
|
android:text="@string/general_btc"
|
||||||
android:textColor="@color/primary"
|
android:textColor="@color/primary"
|
||||||
android:textSize="@dimen/text_size_1_large"
|
android:textSize="@dimen/text_size_1_large"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
|
@ -235,7 +235,7 @@
|
||||||
android:layout_width="150dp"
|
android:layout_width="150dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
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" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
|
|
@ -244,7 +244,7 @@
|
||||||
android:layout_width="150dp"
|
android:layout_width="150dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/saira_condensed_bold"
|
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" />
|
android:textSize="@dimen/text_size_medium" />
|
||||||
|
|
||||||
</info.hoang8f.android.segmented.SegmentedGroup>
|
</info.hoang8f.android.segmented.SegmentedGroup>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Cardano</string>
|
<string name="app_name" translatable="false">Cardano</string>
|
||||||
|
|
||||||
<string name="verify">Confirm</string>
|
<string name="verify">Confirm</string>
|
||||||
<string name="send_1">Checkout</string>
|
<string name="send_1">Checkout</string>
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ class LocalStorage
|
||||||
artworks = HashMap()
|
artworks = HashMap()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (artworks.count() < 28) {
|
if (artworks.count() < 29) {
|
||||||
// forceSave=true only on the last one
|
// forceSave=true only on the last one
|
||||||
putResourceArtworkToCatalog(R.drawable.card_default, false)
|
putResourceArtworkToCatalog(R.drawable.card_default, false)
|
||||||
putResourceArtworkToCatalog(R.drawable.card_default_nft, false)
|
putResourceArtworkToCatalog(R.drawable.card_default_nft, false)
|
||||||
|
|
@ -76,6 +76,7 @@ class LocalStorage
|
||||||
putResourceArtworkToCatalog(R.drawable.card_ru042, false)
|
putResourceArtworkToCatalog(R.drawable.card_ru042, false)
|
||||||
putResourceArtworkToCatalog(R.drawable.card_ru043, false)
|
putResourceArtworkToCatalog(R.drawable.card_ru043, false)
|
||||||
putResourceArtworkToCatalog(R.drawable.card_tg044, false)
|
putResourceArtworkToCatalog(R.drawable.card_tg044, false)
|
||||||
|
putResourceArtworkToCatalog(R.drawable.card_tg046, false)
|
||||||
putResourceArtworkToCatalog(R.drawable.card_ff32, true)
|
putResourceArtworkToCatalog(R.drawable.card_ff32, true)
|
||||||
}
|
}
|
||||||
if (batchesFile.exists()) {
|
if (batchesFile.exists()) {
|
||||||
|
|
@ -260,6 +261,7 @@ class LocalStorage
|
||||||
card.batch == "0028" -> R.drawable.card_ru040
|
card.batch == "0028" -> R.drawable.card_ru040
|
||||||
card.batch == "0029" -> R.drawable.card_ru041
|
card.batch == "0029" -> R.drawable.card_ru041
|
||||||
card.batch == "0031" -> R.drawable.card_ru042
|
card.batch == "0031" -> R.drawable.card_ru042
|
||||||
|
card.batch == "0034" -> R.drawable.card_tg046
|
||||||
card.batch == "FF32" -> R.drawable.card_ff32
|
card.batch == "FF32" -> R.drawable.card_ff32
|
||||||
|
|
||||||
else -> null
|
else -> null
|
||||||
|
|
|
||||||
BIN
server-android/src/main/res/drawable/card_tg046.png
Normal file
BIN
server-android/src/main/res/drawable/card_tg046.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 237 KiB |
|
|
@ -8,7 +8,7 @@ import androidx.test.runner.AndroidJUnit4;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instrumented test, which will execute on an Android device.
|
* Instrumented test, which will execute on an Android device.
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@ class NfcEnableDialog : DialogFragment() {
|
||||||
val builder = context?.let { AlertDialog.Builder(it) }
|
val builder = context?.let { AlertDialog.Builder(it) }
|
||||||
builder?.setCancelable(false)
|
builder?.setCancelable(false)
|
||||||
?.setIcon(R.drawable.ic_action_nfc_gray)
|
?.setIcon(R.drawable.ic_action_nfc_gray)
|
||||||
?.setTitle(R.string.nfc_disabled)
|
?.setTitle(R.string.dialog_nfc_enable_title)
|
||||||
?.setMessage(R.string.enable_nfc)
|
?.setMessage(R.string.dialog_nfc_enable_text)
|
||||||
?.setPositiveButton(R.string.dialog_ok
|
?.setPositiveButton(R.string.general_ok
|
||||||
) { _, _ ->
|
) { _, _ ->
|
||||||
activity?.startActivity(Intent(Settings.ACTION_NFC_SETTINGS))
|
activity?.startActivity(Intent(Settings.ACTION_NFC_SETTINGS))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">tangemcard</string>
|
<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="dialog_quit">Quit</string>
|
||||||
<string name="nfc_disabled">Enable NFC?</string>
|
<string name="dialog_nfc_enable_title">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_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>
|
</resources>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue