Updated on 2026-08-14
This commit is contained in:
parent
128b472c3f
commit
6c8c041c3d
16 changed files with 70 additions and 73 deletions
|
|
@ -5,12 +5,13 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.tangem.Constant
|
||||
import com.tangem.wallet.R
|
||||
import java.util.*
|
||||
|
||||
class ToastHelper {
|
||||
|
||||
fun showSnackbarUpdateVersion(context: Context, vg: ViewGroup, versionName: String) {
|
||||
Snackbar.make(vg, String.format(context.getString(R.string.new_app_version), versionName), Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.update) {
|
||||
|
|
@ -44,4 +45,19 @@ class ToastHelper {
|
|||
snackbar.show()
|
||||
}
|
||||
|
||||
private var singleToast: Toast? = null
|
||||
private var showTime: Date = Date()
|
||||
|
||||
fun showSingleToast(context: Context?, text: String) {
|
||||
if (singleToast == null || !singleToast!!.view.isShown || showTime.time + 2000 < Date().time) {
|
||||
if (singleToast != null)
|
||||
singleToast!!.cancel()
|
||||
if (context != null) {
|
||||
singleToast = Toast.makeText(context, text, Toast.LENGTH_LONG)
|
||||
singleToast!!.show()
|
||||
showTime = Date()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
package com.tangem.di
|
||||
|
||||
import com.tangem.ui.PrepareTransactionActivity
|
||||
import com.tangem.ui.activity.EmptyWalletActivity
|
||||
import com.tangem.ui.activity.LoadedWalletActivity
|
||||
import com.tangem.ui.activity.MainActivity
|
||||
import dagger.Component
|
||||
import javax.inject.Singleton
|
||||
|
|
@ -11,6 +13,10 @@ interface ToastHelperComponent {
|
|||
|
||||
fun inject(activity: MainActivity)
|
||||
|
||||
fun inject(activity: LoadedWalletActivity)
|
||||
|
||||
fun inject(activity: PrepareTransactionActivity)
|
||||
|
||||
fun inject(activity: EmptyWalletActivity)
|
||||
|
||||
}
|
||||
|
|
@ -36,6 +36,7 @@ import kotlinx.android.synthetic.main.layout_tangem_card.*
|
|||
import javax.inject.Inject
|
||||
import com.tangem.card_android.data.EXTRA_TANGEM_CARD
|
||||
import com.tangem.card_android.data.EXTRA_TANGEM_CARD_UID
|
||||
import com.tangem.di.ToastHelper
|
||||
|
||||
class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications {
|
||||
companion object {
|
||||
|
|
@ -49,6 +50,8 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
|
|||
|
||||
@Inject
|
||||
internal lateinit var navigator: Navigator
|
||||
@Inject
|
||||
internal lateinit var toastHelper: ToastHelper
|
||||
|
||||
private lateinit var nfcManager: NfcManager
|
||||
private lateinit var ctx: TangemContext
|
||||
|
|
@ -64,6 +67,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
|
|||
setContentView(R.layout.activity_empty_wallet)
|
||||
|
||||
App.navigatorComponent.inject(this)
|
||||
App.toastHelperComponent.inject(this)
|
||||
|
||||
nfcManager = NfcManager(this, this)
|
||||
lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
|
||||
|
|
@ -98,11 +102,12 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
|
|||
if (cardProtocol != null)
|
||||
navigator.showVerifyCard(this, ctx)
|
||||
else
|
||||
UtilHelper.showSingleToast(this, getString(R.string.need_attach_card_again))
|
||||
toastHelper.showSingleToast(this, getString(R.string.need_attach_card_again))
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
if (requestCode == Constant.REQUEST_CODE_CREATE_NEW_WALLET_ACTIVITY) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
if (data != null) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import androidx.appcompat.app.AppCompatActivity
|
|||
import com.tangem.App
|
||||
import com.tangem.Constant
|
||||
import com.tangem.di.Navigator
|
||||
import com.tangem.di.ToastHelper
|
||||
import com.tangem.wallet.TangemContext
|
||||
import com.tangem.ui.fragment.LoadedWallet
|
||||
import com.tangem.wallet.R
|
||||
|
|
@ -18,6 +19,8 @@ class LoadedWalletActivity : AppCompatActivity() {
|
|||
|
||||
@Inject
|
||||
lateinit var navigator: Navigator
|
||||
@Inject
|
||||
internal lateinit var toastHelper: ToastHelper
|
||||
|
||||
companion object {
|
||||
fun callingIntent(context: Context, lastTag: Tag, ctx: TangemContext): Intent {
|
||||
|
|
@ -33,6 +36,7 @@ class LoadedWalletActivity : AppCompatActivity() {
|
|||
setContentView(R.layout.activity_loaded_wallet)
|
||||
|
||||
App.navigatorComponent.inject(this)
|
||||
App.toastHelperComponent.inject(this)
|
||||
|
||||
if (intent.extras!!.containsKey(NfcAdapter.EXTRA_TAG)) {
|
||||
val tag = intent.getParcelableExtra<Tag>(NfcAdapter.EXTRA_TAG)
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ import com.tangem.ui.dialog.RootFoundDialog
|
|||
import com.tangem.ui.dialog.WaitSecurityDelayDialog
|
||||
import com.tangem.util.CommonUtil
|
||||
import com.tangem.util.LOG
|
||||
import com.tangem.util.PhoneUtility
|
||||
import com.tangem.util.UtilHelper
|
||||
import com.tangem.wallet.BuildConfig
|
||||
import com.tangem.wallet.R
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
|
|
@ -196,7 +196,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
|
|||
f = Logger.collectLogs(this)
|
||||
if (f != null) {
|
||||
LOG.e(TAG, String.format("Collect %d log bytes", f.length()))
|
||||
CommonUtil.sendEmail(this, zipFile, TAG, "Logs", PhoneUtility.getDeviceInfo(), arrayOf(f))
|
||||
CommonUtil.sendEmail(this, zipFile, TAG, "Logs", UtilHelper.getDeviceInfo(), arrayOf(f))
|
||||
} else {
|
||||
LOG.e(TAG, "Can't create temporarily log file")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import androidx.appcompat.widget.Toolbar
|
|||
import com.tangem.wallet.R
|
||||
|
||||
class SettingsActivity : AppCompatActivity() {
|
||||
|
||||
companion object {
|
||||
fun callingIntent(context: Context) = Intent(context, SettingsActivity::class.java)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback
|
|||
intent.addCategory(Intent.CATEGORY_DEFAULT)
|
||||
startActivity(intent)
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
UtilHelper.showSingleToast(context, getString(R.string.no_compatible_wallet))
|
||||
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.no_compatible_wallet))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -195,9 +195,9 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback
|
|||
btnExtract.setOnClickListener {
|
||||
if (UtilHelper.isOnline(context as Activity))
|
||||
if (!engine.isExtractPossible)
|
||||
UtilHelper.showSingleToast(context, ctx.message)
|
||||
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, ctx.message)
|
||||
else if (ctx.card!!.remainingSignatures == 0)
|
||||
UtilHelper.showSingleToast(context, getString(R.string.card_has_no_remaining_signature))
|
||||
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.card_has_no_remaining_signature))
|
||||
else
|
||||
(activity as LoadedWalletActivity).navigator.showPrepareTransaction(context as Activity, ctx)
|
||||
else
|
||||
|
|
@ -208,7 +208,7 @@ class LoadedWallet : androidx.fragment.app.Fragment(), NfcAdapter.ReaderCallback
|
|||
if (cardProtocol != null)
|
||||
(activity as LoadedWalletActivity).navigator.showVerifyCard(context as Activity, ctx)
|
||||
else
|
||||
UtilHelper.showSingleToast(context, getString(R.string.need_attach_card_again))
|
||||
(activity as LoadedWalletActivity).toastHelper.showSingleToast(context, getString(R.string.need_attach_card_again))
|
||||
}
|
||||
|
||||
btnNewScan.setOnClickListener { (activity as LoadedWalletActivity).navigator.showMain(context as Activity) }
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
package com.tangem.util;
|
||||
|
||||
import android.os.Build;
|
||||
|
||||
/**
|
||||
* Created by Ilia on 20.04.2018.
|
||||
*/
|
||||
|
||||
public class PhoneUtility {
|
||||
public static String GetPhoneName()
|
||||
{
|
||||
return DeviceName.getDeviceName();
|
||||
|
||||
}
|
||||
|
||||
public static String getDeviceInfo() {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
stringBuilder.append("----------------------------------------\n");
|
||||
stringBuilder.append("MODEL: ").append(Build.MODEL).append("\n");
|
||||
stringBuilder.append("ID: ").append(Build.ID).append("\n");
|
||||
stringBuilder.append("Manufacturer: ").append(Build.MANUFACTURER).append("\n");
|
||||
stringBuilder.append("Brand: ").append(Build.BRAND).append("\n");
|
||||
stringBuilder.append("Hardware: ").append(Build.HARDWARE).append("\n");
|
||||
stringBuilder.append("Version: ").append(Build.VERSION.RELEASE).append(", ").append(Build.VERSION.INCREMENTAL).append("\n");
|
||||
stringBuilder.append("OS: ").append(Build.VERSION.BASE_OS).append("\n");
|
||||
stringBuilder.append("SDK: ").append(Build.VERSION.SDK_INT).append("\n");
|
||||
stringBuilder.append("BOARD: ").append(Build.BOARD).append("\n");
|
||||
stringBuilder.append("FINGERPRINT: ").append(Build.FINGERPRINT).append("\n");
|
||||
stringBuilder.append("----------------------------------------\n");
|
||||
|
||||
return stringBuilder.toString();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import android.graphics.Bitmap
|
|||
import android.graphics.Color
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.NetworkInfo
|
||||
import android.os.Build
|
||||
import android.widget.Toast
|
||||
import com.google.zxing.BarcodeFormat
|
||||
import com.google.zxing.EncodeHintType
|
||||
|
|
@ -48,19 +49,19 @@ object UtilHelper {
|
|||
}
|
||||
}
|
||||
|
||||
private var singleToast: Toast? = null
|
||||
private var showTime: Date = Date()
|
||||
|
||||
fun showSingleToast(context: Context?, text: String) {
|
||||
if (singleToast == null || !singleToast!!.view.isShown || showTime.time + 2000 < Date().time) {
|
||||
if (singleToast != null)
|
||||
singleToast!!.cancel()
|
||||
if (context != null) {
|
||||
singleToast = Toast.makeText(context, text, Toast.LENGTH_LONG)
|
||||
singleToast!!.show()
|
||||
showTime = Date()
|
||||
}
|
||||
}
|
||||
fun getDeviceInfo(): String {
|
||||
return "----------------------------------------\n" +
|
||||
"MODEL: " + Build.MODEL + "\n" +
|
||||
"ID: " + Build.ID + "\n" +
|
||||
"Manufacturer: " + Build.MANUFACTURER + "\n" +
|
||||
"Brand: " + Build.BRAND + "\n" +
|
||||
"Hardware: " + Build.HARDWARE + "\n" +
|
||||
"Version: " + Build.VERSION.RELEASE + ", " + Build.VERSION.INCREMENTAL + "\n" +
|
||||
"OS: " + Build.VERSION.BASE_OS + "\n" +
|
||||
"SDK: " + Build.VERSION.SDK_INT + "\n" +
|
||||
"BOARD: " + Build.BOARD + "\n" +
|
||||
"FINGERPRINT: " + Build.FINGERPRINT + "\n" +
|
||||
"----------------------------------------\n"
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue