diff --git a/app/src/main/java/com/tangem/NFCLocation.kt b/app/src/main/java/com/tangem/NFCLocation.kt new file mode 100644 index 0000000000..d3acad88ef --- /dev/null +++ b/app/src/main/java/com/tangem/NFCLocation.kt @@ -0,0 +1,169 @@ +package com.tangem.domain + +enum class NFCLocation(val codename: String, val fullName: String, val orientation: Int, val x: Int, val y: Int, val z: Int) { + model1("sailfish", "Google Pixel", 0, 65, 25, 0), + model2("walleye", "Google Pixel 2", 0, 40, 15, 0), + model3("taimen", "Google Pixel 2 XL", 0, 40, 15, 0), + model4("marlin", "Google Pixel XL", 0, 65, 25, 0), + model5("htc_pme", "HTC 10", 0, 50, 20, 0), + model6("htc_himau", "HTC One M9", 0, 50, 20, 0), + model7("htc_himaw", "HTC One M9", 0, 50, 20, 0), + model8("htc_oce", "HTC U Ultra", 0, 50, 20, 0), + model9("htc_ocn", "HTC U11", 0, 50, 25, 0), + model10("htc_ocm", "HTC U11+", 0, 50, 60, 0), + model11("htc_ime", "HTC U12+", 0, 50, 20, 0), + model12("HWCOL", "Huawei Honor 10", 0, 50, 0, 0), + model13("HWFRD", "Huawei Honor 8", 0, 50, 0, 0), + model14("HWDUK", "Huawei Honor 8 Pro", 0, 50, 0, 0), + model15("HWSTF", "Huawei Honor 9", 0, 50, 0, 0), + model16("HWBKL", "Huawei Honor View 10", 0, 50, 0, 0), + model17("HWALP", "Huawei Mate 10", 0, 50, 0, 0), + model18("HWBLA", "Huawei Mate 10 Pro", 0, 50, 0, 0), + model19("HWBLN-H", "Huawei Mate 9 Lite / Honor 6X", 0, 40, 0, 0), + model20("angler", "Huawei Nexus 6P", 0, 40, 15, 0), + model21("HWVTR", "Huawei P10", 0, 50, 0, 0), + model22("HWWAS-H", "Huawei P10 lite", 0, 50, 0, 0), + model23("HWVKY", "Huawei P10 Plus", 0, 50, 0, 0), + model24("HWEML", "Huawei P20", 0, 50, 50, 0), + model25("HWCLT", "Huawei P20 Pro", 0, 50, 50, 0), + model26("HW-01K", "Huawei P20 Pro", 0, 50, 50, 0), + model27("hwALE-", "Huawei P8 Lite", 1, 75, 65, 0), + model28("HWPRA-H", "Huawei P8 Lite 2017", 0, 50, 25, 0), + model29("HWEVA", "Huawei P9", 0, 50, 0, 0), + model30("HWVNS-?", "Huawei P9 Lite", 0, 60, 45, 0), + model31("HWVIE", "Huawei P9 Plus", 0, 50, 0, 0), + model32("h1", "LG G5", 0, 30, 20, 0), + model33("lucye", "LG G6", 0, 50, 50, 0), + model34("hammerhead", "LG Nexus 5", 0, 50, 50, 0), + model35("bullhead", "LG Nexus 5X", 0, 45, 15, 0), + model36("mh", "LG Q6", 1, 25, 50, 0), + model37("ph2n", "LG Stylo 2+", 0, 75, 20, 0), + model38("sf340n", "LG Stylo 3+", 0, 75, 20, 0), + model39("ph1n", "LG Stylus 2", 0, 75, 20, 0), + model40("msf3", "LG Stylus 3", 0, 75, 20, 0), + model41("elsa", "LG V20", 0, 50, 15, 0), + model42("joan", "LG V30", 0, 50, 50, 0), + model43("L-01K", "LG V30+", 0, 50, 50, 0), + model44("nora_8917_n", "Motorola Moto E5", 0, 50, 40, 0), + model45("potter_n", "Motorola Moto G5 Plus", 0, 50, 5, 0), + model46("montana_n", "Motorola Moto G5s", 0, 50, 5, 0), + model47("sanders_n", "Motorola Moto G5s Plus", 0, 50, 5, 0), + model48("ali_n", "Motorola Moto G6", 0, 50, 35, 0), + model49("aljeter_n", "Motorola Moto G6 Play", 0, 50, 35, 0), + model50("evert_n", "Motorola Moto G6 Plus", 0, 40, 40, 0), + model51("payton", "Motorola Moto X4", 0, 50, 40, 0), + model52("nash", "Motorola Moto Z2 Force", 0, 50, 40, 0), + model53("albus", "Motorola Moto Z2 Play", 0, 50, 5, 0), + model54("shamu", "Motorola Nexus 6", 0, 50, 60, 0), + model55("NE1", "Nokia 3", 0, 40, 30, 0), + model56("ND1", "Nokia 5", 0, 40, 25, 0), + model57("PLE", "Nokia 6", 0, 50, 20, 0), + model58("C1N", "Nokia 7", 0, 50, 25, 0), + model59("B2N", "Nokia 7 Plus", 0, 75, 10, 0), + model60("NB1", "Nokia 8", 0, 50, 30, 0), + model61("OnePlus3", "OnePlus 3", 0, 50, 15, 0), + model62("OnePlus3T", "OnePlus 3t", 0, 50, 15, 0), + model63("OnePlus5", "OnePlus 5", 0, 80, 5, 0), + model64("OnePlus5T", "OnePlus 5t", 0, 80, 5, 0), + model65("OnePlus6", "OnePlus 6", 0, 50, 20, 0), + model66("A0001", "OnePlus One", 0, 50, 50, 0), + model67("a5x", "Samsung Galaxy A5 (2016)", 1, 50, 45, 0), + model68("a8", "Samsung Galaxy A8 / A8 (2016)", 0, 50, 15, 0), + model69("jackpotlte", "Samsung Galaxy A8 (2018)", 1, 50, 50, 0), + model70("jackpot2lte", "Samsung Galaxy A8+", 1, 50, 45, 0), + model71("a9xltechn", "Samsung Galaxy A9 (2016)", 1, 50, 45, 0), + model72("a7y17lte", "Samsung Galaxy A7 (2017)", 1, 60, 40, 0), + model73("c5ltechn", "Samsung Galaxy C5", 0, 45, 15, 0), + model74("c5pltechn", "Samsung Galaxy C5", 0, 45, 15, 0), + model75("c5proltechn", "Samsung Galaxy C5 Pro", 1, 45, 15, 0), + model76("c7ltechn", "Samsung Galaxy C7", 0, 50, 15, 0), + model77("c7prolte", "Samsung Galaxy C7 Pro", 1, 50, 15, 0), + model78("c9lte", "Samsung Galaxy C9 Pro", 0, 45, 15, 0), + model79("j5x", "Samsung Galaxy J5 (2016)", 1, 40, 50, 0), + model80("j5y17lte", "Samsung Galaxy J5 (2017) / J5 Pro", 1, 60, 50, 0), + model81("j7y17lte", "Samsung Galaxy J7 Pro", 1, 40, 50, 0), + model82("noblelte", "Samsung Galaxy Note5", 1, 50, 60, 0), + model83("SCV37", "Samsung Galaxy Note8", 1, 50, 45, 0), + model84("SC-01K", "Samsung Galaxy Note8", 1, 50, 45, 0), + model85("great", "Samsung Galaxy Note8", 1, 50, 45, 0), + model86("SC-05G", "Samsung Galaxy S6", 1, 30, 60, 0), + model87("zeroflte", "Samsung Galaxy S6", 1, 30, 60, 0), + model88("SCV31", "Samsung Galaxy S6 edge", 1, 30, 60, 0), + model89("404SC", "Samsung Galaxy S6 edge", 1, 30, 60, 0), + model90("SC-04G", "Samsung Galaxy S6 edge", 1, 30, 60, 0), + model91("zerolte", "Samsung Galaxy S6 edge", 1, 30, 60, 0), + model92("zenlte", "Samsung Galaxy S6 edge+", 1, 50, 55, 0), + model93("heroqlte", "Samsung Galaxy S7", 1, 50, 45, 0), + model94("herolte", "Samsung Galaxy S7", 1, 50, 45, 0), + model95("SCV33", "Samsung Galaxy S7 Edge", 1, 50, 45, 0), + model96("SC-02H", "Samsung Galaxy S7 Edge", 1, 50, 45, 0), + model97("hero2", "Samsung Galaxy S7 Edge", 1, 50, 45, 0), + model98("poseidonlteatt", "Samsung Galaxy S7 Active", 1, 45, 55, 0), + model99("SCV36", "Samsung Galaxy S8", 1, 50, 55, 0), + model100("SC-02J", "Samsung Galaxy S8", 1, 50, 55, 0), + model101("SCV35", "Samsung Galaxy S8+", 1, 50, 45, 0), + model102("SC-03J", "Samsung Galaxy S8+", 1, 50, 45, 0), + model103("dream2", "Samsung Galaxy S8+", 1, 50, 45, 0), + model104("cruiserlte", "Samsung Galaxy S8 Active", 1, 50, 50, 0), + model105("SCV38", "Samsung Galaxy S9", 1, 50, 50, 0), + model106("SC-02K", "Samsung Galaxy S9", 1, 50, 50, 0), + model107("starlte", "Samsung Galaxy S9", 1, 50, 50, 0), + model108("starqlte", "Samsung Galaxy S9", 1, 50, 50, 0), + model109("SCV39", "Samsung Galaxy S9+", 1, 50, 60, 0), + model110("SC-03K", "Samsung Galaxy S9+", 1, 50, 60, 0), + model111("star2", "Samsung Galaxy S9+", 1, 50, 60, 0), + model112("F331", "Sony Xperia E5", 0, 50, 25, 0), + model113("G33", "Sony Xperia L1", 0, 50, 30, 0), + model114("H33", "Sony Xperia L2", 0, 50, 20, 0), + model115("H43", "Sony Xperia L2", 0, 50, 20, 0), + model116("F512", "Sony Xperia X", 0, 10, 5, 1), + model117("suzu", "Sony Xperia X", 0, 10, 5, 1), + model118("F5321", "Sony Xperia X Compact", 0, 50, 55, 0), + model119("SO-02J", "Sony Xperia X Compact", 0, 50, 55, 0), + model120("F813", "Sony Xperia X Performance", 0, 10, 5, 1), + model121("SOV33", "Sony Xperia X Performance", 0, 10, 5, 1), + model122("SO-04H", "Sony Xperia X Performance", 0, 10, 5, 1), + model123("502SO", "Sony Xperia X Performance", 0, 10, 5, 1), + model124("F311", "Sony Xperia XA", 0, 50, 20, 0), + model125("F321", "Sony Xperia XA Ultra", 0, 50, 25, 0), + model126("G31", "Sony Xperia XA1", 0, 50, 20, 0), + model127("G34", "Sony Xperia XA1 Plus", 0, 50, 25, 0), + model128("G32", "Sony Xperia XA1 Ultra", 0, 50, 20, 0), + model129("H31", "Sony Xperia XA2", 0, 50, 15, 0), + model130("H41", "Sony Xperia XA2", 0, 50, 15, 0), + model131("H32", "Sony Xperia XA2 Ultra", 0, 50, 20, 0), + model132("H42", "Sony Xperia XA2 Ultra", 0, 50, 20, 0), + model133("F833", "Sony Xperia XZ", 0, 20, 5, 1), + model134("SO-01J", "Sony Xperia XZ", 0, 20, 5, 1), + model135("601SO", "Sony Xperia XZ", 0, 20, 5, 1), + model136("SOV34", "Sony Xperia XZ", 0, 20, 5, 1), + model137("G81", "Sony Xperia XZ Premium", 0, 50, 55, 0), + model138("SO-04J", "Sony Xperia XZ Premium", 0, 50, 55, 0), + model139("G834", "Sony Xperia XZ1", 0, 45, 5, 0), + model140("701SO", "Sony Xperia XZ1", 0, 45, 5, 0), + model141("SOV36", "Sony Xperia XZ1", 0, 45, 5, 0), + model142("SO-01K", "Sony Xperia XZ1", 0, 45, 5, 0), + model143("G8441", "Sony Xperia XZ1 Compact", 0, 50, 30, 0), + model144("SO-02K", "Sony Xperia XZ1 Compact", 0, 50, 30, 0), + model145("H82", "Sony Xperia XZ2", 0, 20, 40, 0), + model146("SOV37", "Sony Xperia XZ2", 0, 20, 40, 0), + model147("SO-03K", "Sony Xperia XZ2", 0, 20, 40, 0), + model148("702SO", "Sony Xperia XZ2", 0, 20, 40, 0), + model149("H8324", "Sony Xperia XZ2 Compact", 0, 50, 25, 0), + model150("SO-05K", "Sony Xperia XZ2 Compact", 0, 50, 25, 0), + model151("H8314", "Sony Xperia XZ2 Compact", 0, 50, 25, 0), + model152("G823", "Sony Xperia XZs", 0, 20, 5, 1), + model153("602SO", "Sony Xperia XZs", 0, 20, 5, 1), + model154("SOV35", "Sony Xperia XZs", 0, 20, 5, 1), + model155("SO-03J", "Sony Xperia XZs", 0, 20, 5, 1), + model156("gemini", "Xiaomi Mi 5", 0, 40, 20, 0), + model157("capricorn", "Xiaomi Mi 5S", 0, 50, 10, 0), + model158("natrium", "Xiaomi Mi 5S Plus", 0, 45, 15, 0), + model159("sagit", "Xiaomi Mi 6", 0, 50, 20, 0), + model160("dipper", "Xiaomi Mi 8", 0, 45, 20, 0), + model161("lithium", "Xiaomi Mi MIX", 0, 20, 20, 0), + model162("chiron", "Xiaomi Mi MIX 2", 0, 45, 20, 0), + model163("polaris", "Xiaomi Mi MIX 2S", 0, 45, 20, 0), + model164("scorpio", "Xiaomi Mi Note 2", 0, 50, 20, 0), + model165("jason", "Xiaomi Mi Note 3", 0, 50, 20, 0), +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/domain/wallet/DeviceNFCAntennaLocation.java b/app/src/main/java/com/tangem/domain/wallet/DeviceNFCAntennaLocation.java deleted file mode 100644 index 88e3aecd52..0000000000 --- a/app/src/main/java/com/tangem/domain/wallet/DeviceNFCAntennaLocation.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.tangem.domain.wallet; - -import android.os.Build; - -public class DeviceNFCAntennaLocation { - - public float X; - public float Y; - public boolean OnBackSide; - public float Strength; - - public void getAntennaLocation() { - String device = DeviceName.getDeviceName(); - String model = Build.DEVICE; - this.X = 0.5f; - this.Y = 0.33f; - this.OnBackSide = true; - this.Strength = 1.0f; - // Samsung -// if (model.contains("Samsung")) {this.Y = 0.33; this.Strength = 0.5; } -// if (model.contains("Sony")) {this.Y = 0.33; this.Strength = 0.5; } -// if (device == "Galaxy J5") {this.Y = 0.4; this.Strength = 0.5; } - if (device == "P10 lite") {this.Y = 0.03f; this.Strength = 0.8f; } - } -} diff --git a/app/src/main/java/com/tangem/domain/wallet/DeviceNFCAntennaLocation.kt b/app/src/main/java/com/tangem/domain/wallet/DeviceNFCAntennaLocation.kt new file mode 100644 index 0000000000..70455ac09f --- /dev/null +++ b/app/src/main/java/com/tangem/domain/wallet/DeviceNFCAntennaLocation.kt @@ -0,0 +1,40 @@ +package com.tangem.domain.wallet + +import android.os.Build +import com.tangem.domain.NFCLocation + +class DeviceNFCAntennaLocation { + val TAG: String = DeviceNFCAntennaLocation::class.java.simpleName + + var orientation: Int = 0 + var fullName: String = "" + var x: Float = 0.toFloat() + var y: Float = 0.toFloat() + var z: Float = 0.toFloat() + var onBackSide: Boolean = false + var strength: Float = 0.toFloat() + + fun getAntennaLocation() { + val codename = Build.DEVICE + + // default values + this.orientation = 0 + this.fullName = "" + this.x = 0.5f + this.y = 0.35f + this.z = 0f + this.onBackSide = true + this.strength = 1.0f + + for (nfcLocation in NFCLocation.values()) { + if (codename == nfcLocation.codename) { + this.fullName = nfcLocation.fullName + this.orientation = nfcLocation.orientation + this.x = nfcLocation.x / 100f + this.y = nfcLocation.y / 100f + this.z = nfcLocation.z / 100f + } + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/presentation/activity/MainActivity.java b/app/src/main/java/com/tangem/presentation/activity/MainActivity.java index 731f03981a..a676df0526 100644 --- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.java @@ -87,21 +87,22 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI rippleBackground.startRippleAnimation(); - if (BuildConfig.DEBUG) - tvNFCHint.setText("Scan a banknote with your\n" + PhoneUtility.GetPhoneName() + "\nas shown above"); - else - tvNFCHint.setText(R.string.scan_banknote); - DeviceNFCAntennaLocation antenna = new DeviceNFCAntennaLocation(); antenna.getAntennaLocation(); + // set phone name + if (!antenna.getFullName().equals("")) + tvNFCHint.setText("Scan a banknote with your\n" + antenna.getFullName() + "\n as shown above"); + else + tvNFCHint.setText("Scan a banknote with your\n" + getString(R.string.phone) + "\n as shown above"); + // animate final RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) hand.getLayoutParams(); final RelativeLayout.LayoutParams lp2 = (RelativeLayout.LayoutParams) nfc.getLayoutParams(); final float dp = getResources().getDisplayMetrics().density; - final float lm = dp * (69 + antenna.X * 75); - lp.topMargin = (int) (dp * (-100 + antenna.Y * 250)); - lp2.topMargin = (int) (dp * (-125 + antenna.Y * 250)); + final float lm = dp * (69 + antenna.getX() * 75); + lp.topMargin = (int) (dp * (-100 + antenna.getY() * 250)); + lp2.topMargin = (int) (dp * (-125 + antenna.getY() * 250)); nfc.setLayoutParams(lp2); Animation a = new Animation() { @Override diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7598d2ed11..6308c62958 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -77,7 +77,8 @@ Tap Tangem card with your smartphone - Scan a banknote with your \n smartphone as shown above + + phone Last unspent NO WALLET ERASED WALLET