diff --git a/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt b/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt
index 129b5fb0cd..3699331770 100644
--- a/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/CreateNewWalletActivity.kt
@@ -11,13 +11,18 @@ import android.nfc.tech.IsoDep
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.view.View
+import android.view.animation.Animation
+import android.view.animation.DecelerateInterpolator
+import android.view.animation.Transformation
import android.widget.ProgressBar
+import android.widget.RelativeLayout
import android.widget.Toast
import com.tangem.App
import com.tangem.Constant
import com.tangem.domain.wallet.TangemContext
import com.tangem.presentation.dialog.NoExtendedLengthSupportDialog
import com.tangem.presentation.dialog.WaitSecurityDelayDialog
+import com.tangem.tangemcard.android.nfc.DeviceNFCAntennaLocation
import com.tangem.tangemcard.android.reader.NfcManager
import com.tangem.tangemcard.android.reader.NfcReader
import com.tangem.tangemcard.data.asBundle
@@ -26,6 +31,7 @@ import com.tangem.tangemcard.tasks.CreateNewWalletTask
import com.tangem.tangemcard.util.Util
import com.tangem.wallet.R
import kotlinx.android.synthetic.main.activity_create_new_wallet.*
+import kotlinx.android.synthetic.main.layout_touch_card.*
class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
companion object {
@@ -40,6 +46,8 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
private lateinit var nfcManager: NfcManager
private lateinit var ctx: TangemContext
+ private lateinit var antenna: DeviceNFCAntennaLocation
+
private var createNewWalletTask: CreateNewWalletTask? = null
private var lastReadSuccess = true
@@ -58,6 +66,51 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
progressBar = findViewById(R.id.progressBar)
progressBar!!.progressTintList = ColorStateList.valueOf(Color.DKGRAY)
progressBar!!.visibility = View.INVISIBLE
+
+ // get NFC Antenna
+ antenna = DeviceNFCAntennaLocation()
+ antenna.getAntennaLocation()
+
+ // set card orientation
+ when (antenna.orientation) {
+ DeviceNFCAntennaLocation.CARD_ORIENTATION_HORIZONTAL -> {
+ ivHandCardHorizontal.visibility = View.VISIBLE
+ ivHandCardVertical.visibility = View.GONE
+ }
+
+ DeviceNFCAntennaLocation.CARD_ORIENTATION_VERTICAL -> {
+ ivHandCardVertical.visibility = View.VISIBLE
+ ivHandCardHorizontal.visibility = View.GONE
+ }
+ }
+
+ // set card z position
+ when (antenna.z) {
+ DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f
+ DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f
+ }
+
+ animate()
+ }
+
+ private fun animate() {
+ val lp = llHand.layoutParams as RelativeLayout.LayoutParams
+ val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams
+ val dp = resources.displayMetrics.density
+ val lm = dp * (69 + antenna.x * 75)
+ lp.topMargin = (dp * (-100 + antenna.y * 250)).toInt()
+ lp2.topMargin = (dp * (-125 + antenna.y * 250)).toInt()
+ llNfc.layoutParams = lp2
+
+ val a = object : Animation() {
+ override fun applyTransformation(interpolatedTime: Float, t: Transformation) {
+ lp.leftMargin = (lm * interpolatedTime).toInt()
+ llHand.layoutParams = lp
+ }
+ }
+ a.duration = 2000
+ a.interpolator = DecelerateInterpolator()
+ llHand.startAnimation(a)
}
override fun onTagDiscovered(tag: Tag) {
@@ -70,11 +123,11 @@ class CreateNewWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback,
// Log.v(TAG, "UID: " + sUID);
if (sUID == ctx.card!!.uid) {
- if (lastReadSuccess) {
+ if (lastReadSuccess)
isoDep.timeout = ctx.card!!.pauseBeforePIN2 + 5000
- } else {
+ else
isoDep.timeout = ctx.card!!.pauseBeforePIN2 + 65000
- }
+
createNewWalletTask = CreateNewWalletTask(ctx.card, NfcReader(nfcManager, isoDep), App.localStorage, App.pinStorage, this)
createNewWalletTask!!.start()
} else {
diff --git a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
index 92623feee9..96770dc505 100644
--- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
@@ -48,6 +48,7 @@ import com.tangem.util.PhoneUtility
import com.tangem.wallet.BuildConfig
import com.tangem.wallet.R
import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.layout_touch_card.*
import java.io.File
import java.util.*
import javax.inject.Inject
@@ -65,7 +66,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
private lateinit var nfcManager: NfcManager
private var zipFile: File? = null
- private var antenna: DeviceNFCAntennaLocation? = null
+ private lateinit var antenna: DeviceNFCAntennaLocation
private var unsuccessReadCount = 0
private var lastTag: Tag? = null
private var readCardInfoTask: ReadCardInfoTask? = null
@@ -98,11 +99,12 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
rippleBackgroundNfc.startRippleAnimation()
+ // get NFC Antenna
antenna = DeviceNFCAntennaLocation()
- antenna!!.getAntennaLocation()
+ antenna.getAntennaLocation()
// set card orientation
- when (antenna!!.orientation) {
+ when (antenna.orientation) {
DeviceNFCAntennaLocation.CARD_ORIENTATION_HORIZONTAL -> {
ivHandCardHorizontal.visibility = View.VISIBLE
ivHandCardVertical.visibility = View.GONE
@@ -115,19 +117,19 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
}
// set card z position
- when (antenna!!.z) {
+ when (antenna.z) {
DeviceNFCAntennaLocation.CARD_ON_BACK -> llHand.elevation = 0.0f
DeviceNFCAntennaLocation.CARD_ON_FRONT -> llHand.elevation = 30.0f
}
+ animate()
+
// set phone name
- if (antenna!!.fullName != "")
+ if (antenna.fullName != "")
tvNFCHint.text = String.format(getString(R.string.scan_banknote), antenna!!.fullName)
else
tvNFCHint.text = String.format(getString(R.string.scan_banknote), getString(R.string.phone))
- animate()
-
// NFC
val intent = intent
if (intent != null && (NfcAdapter.ACTION_TECH_DISCOVERED == intent.action || NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action)) {
@@ -388,9 +390,9 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
val lp = llHand.layoutParams as RelativeLayout.LayoutParams
val lp2 = llNfc.layoutParams as RelativeLayout.LayoutParams
val dp = resources.displayMetrics.density
- val lm = dp * (69 + antenna!!.x * 75)
- lp.topMargin = (dp * (-100 + antenna!!.y * 250)).toInt()
- lp2.topMargin = (dp * (-125 + antenna!!.y * 250)).toInt()
+ val lm = dp * (69 + antenna.x * 75)
+ lp.topMargin = (dp * (-100 + antenna.y * 250)).toInt()
+ lp2.topMargin = (dp * (-125 + antenna.y * 250)).toInt()
llNfc.layoutParams = lp2
val a = object : Animation() {
diff --git a/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java b/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java
index a77a4dd30b..36bff1bebe 100644
--- a/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java
+++ b/app/src/main/java/com/tangem/presentation/dialog/WaitSecurityDelayDialog.java
@@ -104,14 +104,15 @@ public class WaitSecurityDelayDialog extends DialogFragment {
// return instance;
// }
- private final static int MinRemainingDelayToShowDialog=1000;
- private final static int DelayBeforeShowDialog=5000;
+ private final static int MinRemainingDelayToShowDialog = 1000;
+ private final static int DelayBeforeShowDialog = 5000;
public static void onReadBeforeRequest(final AppCompatActivity activity, final int timeout) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
- if (timerToShowDelayDialog != null || timeout < DelayBeforeShowDialog+MinRemainingDelayToShowDialog) return;
+ if (timerToShowDelayDialog != null || timeout < DelayBeforeShowDialog + MinRemainingDelayToShowDialog)
+ return;
timerToShowDelayDialog = new Timer();
timerToShowDelayDialog.schedule(new TimerTask() {
@Override
@@ -149,13 +150,14 @@ public class WaitSecurityDelayDialog extends DialogFragment {
if (msec == 0) {
if (instance != null) {
+ //TODO remove onNext java.lang.IllegalStateException: Fragment WaitSecurityDelayDialog{ba2c429 (2368a785-523e-4c3d-b46a-402d2c4f102b)} not associated with a fragment manager.
instance.dismiss();
instance = null;
}
return;
}
if (instance == null) {
- if( msec>MinRemainingDelayToShowDialog ) {
+ if (msec > MinRemainingDelayToShowDialog) {
instance = new WaitSecurityDelayDialog();
// 1000ms - card delay notification interval
instance.setup(msec + 1000, 1000);
diff --git a/app/src/main/res/layout/activity_create_new_wallet.xml b/app/src/main/res/layout/activity_create_new_wallet.xml
index 2843f57185..070774ae38 100644
--- a/app/src/main/res/layout/activity_create_new_wallet.xml
+++ b/app/src/main/res/layout/activity_create_new_wallet.xml
@@ -1,15 +1,31 @@
-
+
+
+ android:orientation="vertical"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.75">
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 08ade95532..d532d267c8 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -17,115 +17,11 @@
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file