From b50063f7dd0e17bbe49c5954ce5303e2634af50c Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 25 Mar 2019 13:00:09 +0300 Subject: [PATCH] Updated on 2026-08-14 --- app/src/main/java/com/tangem/App.kt | 18 +++++++------ .../java/com/tangem/di/NavigatorModule.kt | 6 +++++ .../main/java/com/tangem/di/ToastHelper.kt | 27 +++++++++++++++++++ .../com/tangem/di/ToastHelperComponent.kt | 13 +++++++++ .../tangem/ui/activity/EmptyWalletActivity.kt | 2 +- .../ui/activity/LoadedWalletActivity.kt | 2 +- .../com/tangem/ui/activity/LogoActivity.kt | 2 +- .../com/tangem/ui/activity/MainActivity.kt | 19 +++++-------- ...pareCryptonitOtherApiWithdrawalActivity.kt | 2 +- .../PrepareKrakenWithdrawalActivity.kt | 2 +- .../ui/activity/PrepareTransactionActivity.kt | 2 +- .../com/tangem/ui/activity/PurgeActivity.kt | 2 +- .../tangem/ui/activity/VerifyCardActivity.kt | 2 +- 13 files changed, 70 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/com/tangem/di/ToastHelper.kt create mode 100644 app/src/main/java/com/tangem/di/ToastHelperComponent.kt diff --git a/app/src/main/java/com/tangem/App.kt b/app/src/main/java/com/tangem/App.kt index 5624dfb960..f4c1acd03a 100644 --- a/app/src/main/java/com/tangem/App.kt +++ b/app/src/main/java/com/tangem/App.kt @@ -5,13 +5,10 @@ import androidx.appcompat.app.AppCompatDelegate import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.tangem.data.local.PendingTransactionsStorage -import com.tangem.di.DaggerNavigatorComponent -import com.tangem.di.DaggerNetworkComponent -import com.tangem.di.NavigatorComponent -import com.tangem.di.NetworkComponent import com.tangem.card_android.android.data.Firmwares import com.tangem.card_android.android.data.PINStorage import com.tangem.card_common.data.Issuer +import com.tangem.di.* import com.tangem.server_android.data.LocalStorage import java.io.InputStreamReader import java.nio.charset.StandardCharsets @@ -26,10 +23,9 @@ class App : Application() { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) } - var networkComponent: NetworkComponent? = null - private set - var navigatorComponent: NavigatorComponent? = null - private set + lateinit var networkComponent: NetworkComponent + lateinit var navigatorComponent: NavigatorComponent + lateinit var toastHelperComponent: ToastHelperComponent lateinit var firmwaresStorage: Firmwares lateinit var localStorage: LocalStorage @@ -44,6 +40,7 @@ class App : Application() { networkComponent = DaggerNetworkComponent.create() navigatorComponent = buildNavigatorComponent() + toastHelperComponent = buildToastHelperComponent() // common init if (PINStorage.needInit()) @@ -62,6 +59,11 @@ class App : Application() { .build() } + private fun buildToastHelperComponent(): ToastHelperComponent { + return DaggerToastHelperComponent.builder() + .build() + } + private fun initIssuers() { try { applicationContext.assets.open("issuers.json").use { `is` -> diff --git a/app/src/main/java/com/tangem/di/NavigatorModule.kt b/app/src/main/java/com/tangem/di/NavigatorModule.kt index 7e4ee23826..0028345e74 100644 --- a/app/src/main/java/com/tangem/di/NavigatorModule.kt +++ b/app/src/main/java/com/tangem/di/NavigatorModule.kt @@ -16,6 +16,12 @@ internal class NavigatorModule { return Navigator() } + @Singleton + @Provides + fun provideToastHelper(): ToastHelper { + return ToastHelper() + } + @Singleton @Provides fun provideWaitSecurityDelayDialogNew(): WaitSecurityDelayDialogNew { diff --git a/app/src/main/java/com/tangem/di/ToastHelper.kt b/app/src/main/java/com/tangem/di/ToastHelper.kt new file mode 100644 index 0000000000..de340aecea --- /dev/null +++ b/app/src/main/java/com/tangem/di/ToastHelper.kt @@ -0,0 +1,27 @@ +package com.tangem.di + +import android.content.ActivityNotFoundException +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.view.ViewGroup +import com.google.android.material.snackbar.Snackbar +import com.tangem.Constant +import com.tangem.wallet.R + +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) { + try { + val intent = Intent(Intent.ACTION_VIEW) + intent.data = Uri.parse(Constant.URL_TANGEM) + context.startActivity(intent) + } catch (e: ActivityNotFoundException) { + e.printStackTrace() + } + }.show() + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/di/ToastHelperComponent.kt b/app/src/main/java/com/tangem/di/ToastHelperComponent.kt new file mode 100644 index 0000000000..b98d944333 --- /dev/null +++ b/app/src/main/java/com/tangem/di/ToastHelperComponent.kt @@ -0,0 +1,13 @@ +package com.tangem.di + +import com.tangem.ui.activity.MainActivity +import dagger.Component +import javax.inject.Singleton + +@Singleton +@Component(modules = [NavigatorModule::class]) +interface ToastHelperComponent { + + fun inject(activity: MainActivity) + +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/ui/activity/EmptyWalletActivity.kt b/app/src/main/java/com/tangem/ui/activity/EmptyWalletActivity.kt index 2113e39e67..ce1adb51fd 100644 --- a/app/src/main/java/com/tangem/ui/activity/EmptyWalletActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/EmptyWalletActivity.kt @@ -64,7 +64,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card super.onCreate(savedInstanceState) setContentView(R.layout.activity_empty_wallet) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) nfcManager = NfcManager(this, this) lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) diff --git a/app/src/main/java/com/tangem/ui/activity/LoadedWalletActivity.kt b/app/src/main/java/com/tangem/ui/activity/LoadedWalletActivity.kt index 8026d17341..ed8ecb2152 100644 --- a/app/src/main/java/com/tangem/ui/activity/LoadedWalletActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/LoadedWalletActivity.kt @@ -32,7 +32,7 @@ class LoadedWalletActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_loaded_wallet) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) if (intent.extras!!.containsKey(NfcAdapter.EXTRA_TAG)) { val tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG) diff --git a/app/src/main/java/com/tangem/ui/activity/LogoActivity.kt b/app/src/main/java/com/tangem/ui/activity/LogoActivity.kt index 9b1baa5087..93e2452276 100644 --- a/app/src/main/java/com/tangem/ui/activity/LogoActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/LogoActivity.kt @@ -31,7 +31,7 @@ class LogoActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_logo) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) ivLogo.setOnClickListener { hide() } } diff --git a/app/src/main/java/com/tangem/ui/activity/MainActivity.kt b/app/src/main/java/com/tangem/ui/activity/MainActivity.kt index 90a9b3c00e..4ee6e16658 100644 --- a/app/src/main/java/com/tangem/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/MainActivity.kt @@ -54,6 +54,7 @@ import java.util.* 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 MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtocol.Notifications, PopupMenu.OnMenuItemClickListener { @@ -64,6 +65,8 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco @Inject internal lateinit var navigator: Navigator + @Inject + internal lateinit var toastHelper: ToastHelper private lateinit var nfcManager: NfcManager @@ -87,7 +90,8 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) + App.toastHelperComponent.inject(this) requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT @@ -138,23 +142,12 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco val responseBuildVersion = responseVersionName.split('.').last() val appBuildVersion = BuildConfig.VERSION_NAME.split('.').last() if (responseBuildVersion.toInt() > appBuildVersion.toInt()) - Snackbar.make(cl, String.format(getString(R.string.new_app_version), responseVersionName), Snackbar.LENGTH_INDEFINITE) - .setAction(R.string.update) { - try { - val intent = Intent(Intent.ACTION_VIEW) - intent.data = Uri.parse(Constant.URL_TANGEM) - startActivity(intent) - } catch (e: ActivityNotFoundException) { - e.printStackTrace() - } - }.show() + toastHelper.showSnackbarUpdateVersion(this, cl, responseVersionName) } catch (E: Exception) { E.printStackTrace() } } apiHelper.requestLastVersion() - - } private fun verifyPermissions() { diff --git a/app/src/main/java/com/tangem/ui/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt b/app/src/main/java/com/tangem/ui/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt index 9a7245e542..fb878b2629 100644 --- a/app/src/main/java/com/tangem/ui/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt @@ -42,7 +42,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt super.onCreate(savedInstanceState) setContentView(R.layout.activity_prepare_cryptonit_other_api_withdrawal) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) nfcManager = NfcManager(this, this) lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) diff --git a/app/src/main/java/com/tangem/ui/activity/PrepareKrakenWithdrawalActivity.kt b/app/src/main/java/com/tangem/ui/activity/PrepareKrakenWithdrawalActivity.kt index 0e1f03864a..370df3dc68 100644 --- a/app/src/main/java/com/tangem/ui/activity/PrepareKrakenWithdrawalActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/PrepareKrakenWithdrawalActivity.kt @@ -52,7 +52,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa super.onCreate(savedInstanceState) setContentView(R.layout.activity_prepare_kraken_withdrawal) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) ctx = TangemContext.loadFromBundle(this, intent.extras) diff --git a/app/src/main/java/com/tangem/ui/activity/PrepareTransactionActivity.kt b/app/src/main/java/com/tangem/ui/activity/PrepareTransactionActivity.kt index 684c06fe39..9789a22815 100644 --- a/app/src/main/java/com/tangem/ui/activity/PrepareTransactionActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/PrepareTransactionActivity.kt @@ -47,7 +47,7 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac super.onCreate(savedInstanceState) setContentView(R.layout.activity_prepare_transaction) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) nfcManager = NfcManager(this, this) lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) diff --git a/app/src/main/java/com/tangem/ui/activity/PurgeActivity.kt b/app/src/main/java/com/tangem/ui/activity/PurgeActivity.kt index ce33a17eb4..1dc1095f33 100644 --- a/app/src/main/java/com/tangem/ui/activity/PurgeActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/PurgeActivity.kt @@ -64,7 +64,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc super.onCreate(savedInstanceState) setContentView(R.layout.activity_purge) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT diff --git a/app/src/main/java/com/tangem/ui/activity/VerifyCardActivity.kt b/app/src/main/java/com/tangem/ui/activity/VerifyCardActivity.kt index c9942b0195..1321576d1a 100644 --- a/app/src/main/java/com/tangem/ui/activity/VerifyCardActivity.kt +++ b/app/src/main/java/com/tangem/ui/activity/VerifyCardActivity.kt @@ -29,7 +29,7 @@ class VerifyCardActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_verify_card) - App.navigatorComponent?.inject(this) + App.navigatorComponent.inject(this) } override fun onBackPressed() {