diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 337849cad3..56b14e2732 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -12,9 +12,9 @@ import com.tangem.blockchain.common.WalletManagerFactory import com.tangem.blockchain.network.BlockchainSdkRetrofitBuilder import com.tangem.core.analytics.Analytics import com.tangem.datasource.api.common.MoshiConverter -import com.tangem.datasource.config.models.Config import com.tangem.datasource.config.ConfigManager import com.tangem.datasource.config.FeaturesLocalLoader +import com.tangem.datasource.config.models.Config import com.tangem.datasource.utils.AndroidAssetReader import com.tangem.datasource.utils.AssetReader import com.tangem.domain.DomainLayer @@ -152,7 +152,6 @@ class TapApplication : Application(), ImageLoaderFactory { ) } - userTokensRepository = UserTokensRepository.init( context = this, tangemTechService = store.state.domainNetworks.tangemTechService, diff --git a/app/src/main/java/com/tangem/tap/common/ShimmerRecyclerAdapter.kt b/app/src/main/java/com/tangem/tap/common/ShimmerRecyclerAdapter.kt index 4d56172588..ff09e08de7 100644 --- a/app/src/main/java/com/tangem/tap/common/ShimmerRecyclerAdapter.kt +++ b/app/src/main/java/com/tangem/tap/common/ShimmerRecyclerAdapter.kt @@ -30,4 +30,5 @@ open class ShimmerRecyclerAdapter( class ShimmerVH(viewGroup: ViewGroup) : RecyclerView.ViewHolder(viewGroup) +@Suppress("UnusedPrivateMember") data class ShimmerData(private val any: String = "") \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt index c67be8b92e..051a9148f2 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsViewModel.kt @@ -1,7 +1,6 @@ package com.tangem.tap.features.details.ui.details import com.tangem.core.analytics.Analytics -import com.tangem.domain.common.TapWorkarounds.isSaltPay import com.tangem.tap.common.analytics.events.Settings import com.tangem.tap.common.feedback.FeedbackEmail import com.tangem.tap.common.feedback.SupportInfo @@ -9,7 +8,6 @@ import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction -import com.tangem.tap.features.details.redux.DetailsAction import com.tangem.tap.features.details.redux.DetailsState import com.tangem.tap.features.disclaimer.redux.DisclaimerAction import com.tangem.tap.features.home.LocaleRegionProvider diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingSaltPayHelper.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingSaltPayHelper.kt index 8c88cc7a84..5a6132c72a 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingSaltPayHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingSaltPayHelper.kt @@ -12,39 +12,39 @@ import com.tangem.tap.preferencesStorage /** [REDACTED_AUTHOR] */ -class OnboardingSaltPayHelper { - companion object { +object OnboardingSaltPayHelper { - suspend fun isOnboardingCase( - scanResponse: ScanResponse, - manager: SaltPayActivationManager, - ): Result { - return try { - val updatedStep = manager.update(SaltPayActivationStep.None, null).successOr { return it } + suspend fun isOnboardingCase( + scanResponse: ScanResponse, + manager: SaltPayActivationManager, + ): Result { + return try { + val updatedStep = manager.update(SaltPayActivationStep.None, null).successOr { return it } - val cardStorage = preferencesStorage.usedCardsPrefStorage - val activationIsFinished = cardStorage.isActivationFinished(scanResponse.card.cardId) - if (updatedStep == SaltPayActivationStep.Success && !activationIsFinished) { - cardStorage.activationFinished(scanResponse.card.cardId) - } - val isActivationCase = updatedStep != SaltPayActivationStep.Success - val isBackupCase = scanResponse.card.backupStatus?.isActive == false - Result.Success(isActivationCase || isBackupCase) - } catch (ex: Exception) { - Result.Failure(ex) - } catch (error: SaltPayActivationError) { - Result.Failure(error) + val cardStorage = preferencesStorage.usedCardsPrefStorage + val activationIsFinished = cardStorage.isActivationFinished(scanResponse.card.cardId) + if (updatedStep == SaltPayActivationStep.Success && !activationIsFinished) { + cardStorage.activationFinished(scanResponse.card.cardId) } + val isActivationCase = updatedStep != SaltPayActivationStep.Success + val isBackupCase = scanResponse.card.backupStatus?.isActive == false + Result.Success(isActivationCase || isBackupCase) + } catch (ex: Exception) { + Result.Failure(ex) + } catch (error: SaltPayActivationError) { + Result.Failure(error) } - - fun testProceedToOnboarding( - scanResponse: ScanResponse, - manager: SaltPayActivationManager, - ): Result = Result.Success(true) - - fun testProceedToMainScreen( - scanResponse: ScanResponse, - manager: SaltPayActivationManager, - ): Result = Result.Success(false) } + + @Suppress("UnusedPrivateMember") + fun testProceedToOnboarding( + scanResponse: ScanResponse, + manager: SaltPayActivationManager, + ): Result = Result.Success(true) + + @Suppress("UnusedPrivateMember") + fun testProceedToMainScreen( + scanResponse: ScanResponse, + manager: SaltPayActivationManager, + ): Result = Result.Success(false) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt index 985676d259..b5dfe53817 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt @@ -164,6 +164,7 @@ class GnosisRegistrator( return transferFromHardcodeWay(amountToClaim, signer) } + @Suppress("UnusedPrivateMember") private suspend fun transferFromStandardWay(amountToClaim: BigDecimal, signer: TransactionSigner): Result { val amount = Amount(token, amountToClaim) val feeAmount = walletManager.getFeeToTransferFrom(amount, addressTreasureSafe) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt index 99c41094ea..dcb4044499 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayActivationManager.kt @@ -1,3 +1,5 @@ +@file:Suppress("MaximumLineLength") + package com.tangem.tap.features.onboarding.products.wallet.saltPay import android.net.Uri @@ -37,10 +39,20 @@ import com.tangem.tap.common.extensions.safeUpdate import com.tangem.tap.domain.getFirstToken import com.tangem.tap.domain.model.builders.UserWalletIdBuilder import com.tangem.tap.features.onboarding.products.wallet.saltPay.message.SaltPayActivationError +import com.tangem.tap.store import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -import com.tangem.tap.store import java.math.BigDecimal +import kotlin.ByteArray +import kotlin.Exception +import kotlin.IllegalStateException +import kotlin.NullPointerException +import kotlin.String +import kotlin.Suppress +import kotlin.Unit +import kotlin.UnsupportedOperationException +import kotlin.byteArrayOf +import kotlin.minus import com.tangem.blockchain.extensions.Result as BlockchainResult /** @@ -295,6 +307,7 @@ class SaltPayActivationManagerFactory( ) } + @Suppress("UnusedPrivateMember") private fun createDummyActivationManager( saltPayConfig: SaltPayConfig, wmFactory: WalletManagerFactory, diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt index 93a4aaf6bf..8d116a7385 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/SaltPayExceptionHandler.kt @@ -35,7 +35,7 @@ object SaltPayExceptionHandler { is TangemSdkError -> { when (throwable) { is TangemSdkError.NetworkError -> { - val message = (throwable).customMessage + val message = throwable.customMessage store.dispatchDialogShow(AppDialog.SimpleOkErrorDialog(message)) } else -> Unit diff --git a/app/src/main/java/com/tangem/tap/features/saveWallet/ui/SaveWalletBottomSheetFragment.kt b/app/src/main/java/com/tangem/tap/features/saveWallet/ui/SaveWalletBottomSheetFragment.kt index a41ecd1a84..3f0f4f77c4 100644 --- a/app/src/main/java/com/tangem/tap/features/saveWallet/ui/SaveWalletBottomSheetFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/saveWallet/ui/SaveWalletBottomSheetFragment.kt @@ -40,8 +40,8 @@ internal class SaveWalletBottomSheetFragment : ComposeBottomSheetFragment() { } @Composable - override fun ScreenContent(modifier: Modifier, state: SprinklrScreenState) { + override fun ScreenContent( + state: SprinklrScreenState, + modifier: Modifier, + ) { BackHandler(onBack = state.onNavigateBack) SprinklrScreenContent( modifier = modifier diff --git a/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/AddCustomTokenScreen.kt b/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/AddCustomTokenScreen.kt index 7289515b4b..3dc5ab9c7b 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/AddCustomTokenScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/AddCustomTokenScreen.kt @@ -60,7 +60,8 @@ import kotlinx.coroutines.launch /** [REDACTED_AUTHOR] */ -private class AddCustomTokenScreen // for simple search +@Suppress("UnusedPrivateClass") +private class AddCustomTokenScreen // for simple search @OptIn(ExperimentalMaterialApi::class) @Composable diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt index 4d40a047ab..73c49d69ef 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt @@ -3,7 +3,6 @@ package com.tangem.tap.features.wallet.redux import android.graphics.Bitmap import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.Token -import com.tangem.blockchain.common.TransactionData import com.tangem.blockchain.common.Wallet import com.tangem.blockchain.common.WalletManager import com.tangem.blockchain.common.address.AddressType diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt index 56442e64d7..b170637f3b 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt @@ -20,7 +20,6 @@ import coil.size.Scale import com.tangem.core.analytics.Analytics import com.tangem.core.ui.fragments.setStatusBarColor import com.tangem.core.ui.utils.OneTouchClickListener -import com.tangem.domain.common.TapWorkarounds.isSaltPay import com.tangem.feature.swap.domain.SwapInteractor import com.tangem.tap.MainActivity import com.tangem.tap.common.analytics.events.MainScreen @@ -226,7 +225,7 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), StoreSubscriber ViewGroup, -) : ListAdapter(DiffUtilCallback) { - - override fun getItemId(position: Int): Long { - return if (currentList.isEmpty()) 0 else currentList[position].hashCode().toLong() - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ShimmerVH { - return ShimmerVH(viewHolderViewFactory.invoke(parent)) - } - - override fun onBindViewHolder(holder: ShimmerVH, position: Int) {} - - object DiffUtilCallback : DiffUtil.ItemCallback() { - override fun areContentsTheSame(oldItem: ShimmerData, newItem: ShimmerData) = oldItem == newItem - override fun areItemsTheSame(oldItem: ShimmerData, newItem: ShimmerData) = oldItem == newItem - } -} - -class ShimmerVH(viewGroup: ViewGroup) : RecyclerView.ViewHolder(viewGroup) - -data class ShimmerData(private val any: String = "") \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/rv/TxHistoryAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/rv/TxHistoryAdapter.kt index 5ac81ac30a..0363cffefe 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/rv/TxHistoryAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/saltPay/rv/TxHistoryAdapter.kt @@ -20,9 +20,10 @@ import com.tangem.wallet.databinding.ItemSaltPayTxHistoryDateBinding */ internal class TxHistoryAdapter : ListAdapter(DiffUtilCallback) { - override fun getItemId(position: Int): Long { - return if (currentList.isEmpty()) 0L - else currentList[position].itemId + override fun getItemId(position: Int): Long = if (currentList.isEmpty()) { + 0L + } else { + currentList[position].itemId } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseTxHistoryVH { diff --git a/app/src/main/java/com/tangem/tap/features/walletSelector/ui/WalletSelectorBottomSheetFragment.kt b/app/src/main/java/com/tangem/tap/features/walletSelector/ui/WalletSelectorBottomSheetFragment.kt index 1407a374f9..11fec17c6d 100644 --- a/app/src/main/java/com/tangem/tap/features/walletSelector/ui/WalletSelectorBottomSheetFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/walletSelector/ui/WalletSelectorBottomSheetFragment.kt @@ -48,8 +48,8 @@ internal class WalletSelectorBottomSheetFragment : ComposeBottomSheetFragment() { @Composable override fun ScreenContent( - modifier: Modifier, state: WelcomeScreenState, + modifier: Modifier, ) { val snackbarHostState = remember { SnackbarHostState() } val errorMessage by rememberUpdatedState(newValue = state.error?.resolveReference()) diff --git a/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeBottomSheetFragment.kt b/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeBottomSheetFragment.kt index 3161add9a8..a88b3a2ff7 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeBottomSheetFragment.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeBottomSheetFragment.kt @@ -50,6 +50,7 @@ abstract class ComposeBottomSheetFragment : BottomSheetDialogFragme setContent { TangemTheme { ScreenContent( + state = provideState().value, modifier = Modifier .fillMaxWidth() .let { @@ -59,7 +60,6 @@ abstract class ComposeBottomSheetFragment : BottomSheetDialogFragme color = TangemTheme.colors.background.plain, shape = TangemTheme.shapes.bottomSheet, ), - state = provideState().value, ) } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeScreen.kt b/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeScreen.kt index 8404a4867d..20d6bf7bf1 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeScreen.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/fragments/ComposeScreen.kt @@ -24,22 +24,24 @@ internal interface ComposeScreen { } ScreenContent( + state = provideState().value, modifier = Modifier .fillMaxSize() .background(color = backgroundColor), - state = provideState().value, ) } } } } + @Suppress("TopLevelComposableFunctions") @Composable fun provideState(): State + @Suppress("TopLevelComposableFunctions") @Composable fun ScreenContent( - modifier: Modifier, state: ScreenState, + modifier: Modifier, ) } \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/common/SaltPayWorkaround.kt b/domain/src/main/java/com/tangem/domain/common/SaltPayWorkaround.kt index bcfafd0ca6..b18597f282 100644 --- a/domain/src/main/java/com/tangem/domain/common/SaltPayWorkaround.kt +++ b/domain/src/main/java/com/tangem/domain/common/SaltPayWorkaround.kt @@ -61,6 +61,7 @@ object SaltPayWorkaround { } } + @Suppress("MagicNumber") fun isSaltPayCardId(cardId: String): Boolean = isVisaBatchId(cardId.take(4)) || isWalletCardId(cardId) fun isVisaBatchId(batchId: String): Boolean = visaBatches.contains(batchId)