Updated on 2026-08-14

This commit is contained in:
Tangem 2023-10-09 11:49:43 +08:00
parent 45229675f2
commit 2a97712a72
6 changed files with 72 additions and 20 deletions

View file

@ -255,9 +255,18 @@ internal class TapApplication : Application(), ImageLoaderFactory {
walletConnectRepository = WalletConnectRepository(this)
val configLoader = FeaturesLocalLoader(assetReader, MoshiConverter.sdkMoshi, BuildConfig.ENVIRONMENT)
initUserWalletsListManager()
// TODO: Try to performance and user experience.
// [REDACTED_JIRA]
runBlocking {
featureTogglesManager.init()
appRatingRepository.initialize()
// learn2earnInteractor.init()
}
initConfigManager(configLoader, ::initWithConfigDependency)
initWarningMessagesManager()
initUserWalletsListManager()
loadNativeLibraries()
@ -283,14 +292,6 @@ internal class TapApplication : Application(), ImageLoaderFactory {
appStateHolder.userTokensRepository = userTokensRepository
appStateHolder.walletStoresManager = walletStoresManager
// TODO: Try to performance and user experience.
// [REDACTED_JIRA]
runBlocking {
featureTogglesManager.init()
appRatingRepository.initialize()
// learn2earnInteractor.init()
}
initTopUpController()
walletConnect2Repository.init(projectId = configManager.config.walletConnectProjectId)
}
@ -354,14 +355,20 @@ internal class TapApplication : Application(), ImageLoaderFactory {
foregroundActivityObserver: ForegroundActivityObserver,
store: Store<AppState>,
) {
fun initAdditionalFeedbackInfo(context: Context): AdditionalFeedbackInfo = AdditionalFeedbackInfo().apply {
appVersion = try {
// TODO don't use deprecated method
val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
pInfo.versionName
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
"x.y.z"
fun initAdditionalFeedbackInfo(context: Context): AdditionalFeedbackInfo {
return AdditionalFeedbackInfo(
userWalletsListManager = userWalletsListManager,
walletManagersFacade = walletManagersFacade,
walletFeatureToggles = walletFeatureToggles,
).apply {
appVersion = try {
// TODO don't use deprecated method
val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
pInfo.versionName
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
"x.y.z"
}
}
}

View file

@ -6,9 +6,36 @@ import com.tangem.blockchain.common.address.Address
import com.tangem.domain.models.scan.CardDTO
import com.tangem.domain.models.scan.ScanResponse
import com.tangem.domain.userwallets.UserWalletIdBuilder
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.domain.wallets.legacy.UserWalletsListManager
import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles
import com.tangem.tap.common.extensions.stripZeroPlainString
import com.tangem.tap.scope
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
class AdditionalFeedbackInfo(
userWalletsListManager: UserWalletsListManager,
walletManagersFacade: WalletManagersFacade,
walletFeatureToggles: WalletFeatureToggles,
) {
init {
if (walletFeatureToggles.isRedesignedScreenEnabled) {
userWalletsListManager.selectedUserWallet
.distinctUntilChanged()
.onEach { userWallet ->
setCardInfo(data = userWallet.scanResponse)
walletManagersFacade.getAll(userWalletId = userWallet.walletId)
.onEach(::setWalletsInfo)
.launchIn(scope)
}
.launchIn(scope)
}
}
class AdditionalFeedbackInfo {
class EmailWalletInfo(
var blockchain: Blockchain = Blockchain.Unknown,
var derivationPath: String = "",
@ -46,6 +73,7 @@ class AdditionalFeedbackInfo {
private val Address.name: String
get() = type.javaClass.simpleName
@Deprecated("Don't use it directly")
fun setCardInfo(data: ScanResponse) {
cardId = data.card.cardId
cardBlockchain = data.walletData?.blockchain ?: ""
@ -55,6 +83,7 @@ class AdditionalFeedbackInfo {
userWalletId = UserWalletIdBuilder.scanResponse(data).build()?.stringValue ?: ""
}
@Deprecated("Don't use it directly")
fun setWalletsInfo(walletManagers: List<WalletManager>) {
walletsInfo.clear()
tokens.clear()