From 40c37826bfd6b06af173d70fd58e1b18fd8f7bd0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 20 Jan 2023 18:52:52 +0800 Subject: [PATCH] Updated on 2026-08-14 --- .editorconfig | 1 - .../main/java/com/tangem/tap/MainActivity.kt | 4 +- .../NavBarInsetsFragmentLifecycleCallback.kt | 2 +- .../tangem/tap/common/CurrencyConverter.kt | 4 +- .../com/tangem/tap/common/DialogManager.kt | 4 +- .../tap/common/GlobalLayoutStateHandler.kt | 6 +- .../com/tangem/tap/common/IntentHandler.kt | 4 +- .../common/analytics/TangemSdkErrorMapper.kt | 10 +- .../tap/common/analytics/events/Basic.kt | 2 +- .../common/compose/OutlinedTextFieldWidget.kt | 21 ++- .../tangem/tap/common/compose/Undefined.kt | 2 +- .../com/tangem/tap/common/compose/Warning.kt | 1 - .../com/tangem/tap/common/entities/Button.kt | 2 +- .../tangem/tap/common/extensions/Activity.kt | 28 ++-- .../tap/common/extensions/AssetManager.kt | 2 +- .../tangem/tap/common/extensions/Context.kt | 6 +- .../tangem/tap/common/extensions/Specific.kt | 15 +- .../tangem/tap/common/extensions/TextView.kt | 2 +- .../com/tangem/tap/common/extensions/UI.kt | 4 +- .../extensions/{Any.kt => ValueCallback.kt} | 0 .../com/tangem/tap/common/feature/Feature.kt | 2 +- .../java/com/tangem/tap/common/images/Coil.kt | 2 - .../common/redux/global/GlobalMiddleware.kt | 2 +- .../tap/common/redux/global/GlobalReducer.kt | 1 - .../redux/navigation/NavigationReducer.kt | 1 - .../tap/common/shop/TangemShopService.kt | 5 +- .../common/shop/googlepay/GooglePayService.kt | 5 +- .../common/shop/googlepay/GooglePayUtil.kt | 1 - .../tap/common/shop/shopify/ShopifyService.kt | 15 +- .../tap/common/snackBar/MaxAmountSnackbar.kt | 16 +- .../common/text/DecimalDigitsInputFilter.kt | 9 +- .../com/tangem/tap/common/text/Truncate.kt | 12 +- .../toggleWidget/RefreshBalanceWidget.kt | 27 ++- .../transitions/OnboardingTransitions.kt | 32 +--- .../tangem/tap/common/ui/SimpleAlertDialog.kt | 1 - .../com/tangem/tap/domain/PayIdManager.kt | 13 +- .../com/tangem/tap/domain/TapWalletManager.kt | 8 +- .../warningMessage/WarningMessage.kt | 6 +- .../warningMessage/WarningMessagesManager.kt | 4 +- .../domain/extensions/WalletManagerFactory.kt | 3 +- .../model/builders/UserWalletBuilder.kt | 2 +- .../saltPay/SaltPayMessageConverter.kt | 2 +- .../OnboardingWalletStateConverter.kt | 2 +- .../statePrinter/ScanResponseConverter.kt | 2 - .../tap/domain/tasks/CreateWalletsTask.kt | 10 +- .../tangem/tap/domain/tasks/SignHashTask.kt | 2 +- .../tasks/product/CreateProductWalletTask.kt | 3 +- .../domain/tasks/product/CreateWalletsTask.kt | 2 +- .../product/ResetToFactorySettingsTask.kt | 2 - .../domain/tasks/product/ScanProductTask.kt | 33 +--- .../domain/tokens/OldUserTokensRepository.kt | 3 +- .../domain/tokens/models/BlockchainNetwork.kt | 3 +- .../tap/domain/tokens/models/TokenDao.kt | 1 - .../tap/domain/twins/FinalizeTwinTask.kt | 3 +- .../twins/WriteProtectedIssuerDataTask.kt | 15 +- ...erWalletsSensitiveInformationRepository.kt | 3 +- .../DefaultWalletCurrenciesManager.kt | 4 +- .../DefaultWalletAmountsRepository.kt | 4 +- .../walletconnect/WalletConnectManager.kt | 24 ++- .../walletconnect/WalletConnectSdkHelper.kt | 9 +- .../com/tangem/tap/features/BaseFragment.kt | 2 +- .../tangem/tap/features/demo/DemoHelper.kt | 3 +- .../features/details/redux/DetailsReducer.kt | 3 +- .../walletconnect/WalletConnectAction.kt | 13 +- .../walletconnect/WalletConnectMiddleware.kt | 8 +- .../walletconnect/WalletConnectReducer.kt | 6 +- .../redux/walletconnect/WalletConnectState.kt | 3 +- .../ui/appsettings/AppSettingsScreen.kt | 2 +- .../ui/cardsettings/CardSettingsViewModel.kt | 1 - .../ui/common/DetailsComposeElements.kt | 8 +- .../details/ui/details/DetailsScreen.kt | 3 +- .../ui/securitymode/SecurityModeScreen.kt | 8 +- .../ui/walletconnect/QrScanFragment.kt | 1 - .../ui/walletconnect/WalletConnectScreen.kt | 2 +- .../walletconnect/WalletConnectScreenState.kt | 3 +- .../dialogs/BnbTransactionDialog.kt | 4 +- .../tangem/tap/features/home/HomeFragment.kt | 6 +- .../compose/content/CurrenciesWeb3Content.kt | 1 - .../compose/content/FirstStoriesContent.kt | 1 - .../compose/content/FloatingCardsContent.kt | 1 - .../home/compose/views/StoriesProgressBar.kt | 1 - .../tap/features/home/redux/HomeReducer.kt | 1 - .../features/onboarding/OnboardingManager.kt | 3 +- .../products/note/OnboardingNoteFragment.kt | 3 +- .../OnboardingOtherCardsFragment.kt | 1 - .../twins/redux/TwinCardsMiddleware.kt | 6 +- .../redux/OnboardingWalletMiddleware.kt | 5 +- .../wallet/redux/OnboardingWalletReducer.kt | 44 ++--- .../products/wallet/saltPay/UtorgWebView.kt | 4 +- .../dialog/NoFundsForActivationDialog.kt | 2 +- .../saltPay/redux/OnboardingSaltPayAction.kt | 2 +- .../saltPay/ui/OnboardingSaltPayView.kt | 2 +- .../products/wallet/ui/BackupInfoAdapter.kt | 6 +- .../wallet/ui/OnboardingWalletFragment.kt | 4 +- .../wallet/ui/dialogs/AccessCodeDialog.kt | 1 - .../ui/dialogs/AddMoreBackupCardsDialog.kt | 1 - .../ui/components/SaveWalletScreenContent.kt | 2 +- .../middlewares/AddressPayIdMiddleware.kt | 16 +- .../send/redux/middlewares/SendMiddleware.kt | 7 +- .../send/redux/reducers/AmountReducer.kt | 28 ++-- .../send/redux/reducers/SendScreenReducer.kt | 5 +- .../reducers/TransactionExtrasReducer.kt | 3 +- .../send/redux/states/ReceiptState.kt | 60 +++---- .../stateSubscribers/SendStateSubscriber.kt | 2 - .../tap/features/shop/redux/ShopMiddleware.kt | 2 - .../tap/features/shop/redux/ShopReducer.kt | 6 +- .../tap/features/shop/redux/ShopState.kt | 14 +- .../tap/features/shop/ui/ShopFragment.kt | 1 - .../addCustomToken/AddCustomTokenFragment.kt | 1 - .../compose/HangingOverKeyboardView.kt | 3 +- .../tap/features/tokens/redux/TokensAction.kt | 6 +- .../features/tokens/redux/TokensMiddleware.kt | 18 +- .../features/tokens/redux/TokensReducer.kt | 1 - .../tokens/ui/compose/CurrenciesScreen.kt | 2 - .../tokens/ui/compose/CurrenciesWarning.kt | 3 +- .../ui/compose/CurrencyPlaceholderIcon.kt | 4 +- .../tokens/ui/compose/ListOfCurrencies.kt | 1 - .../currencyItem/CurrencyItemHeader.kt | 1 - .../ui/compose/currencyItem/NetworkItem.kt | 1 - .../wallet/models/PendingTransaction.kt | 3 +- .../tap/features/wallet/redux/WalletAction.kt | 6 +- .../tap/features/wallet/redux/WalletState.kt | 4 +- .../wallet/redux/middlewares/Mapper.kt | 6 +- .../middlewares/MultiWalletMiddleware.kt | 18 +- .../redux/middlewares/WalletMiddleware.kt | 6 +- .../redux/reducers/MultiWalletReducer.kt | 7 +- .../redux/reducers/OnWalletLoadedReducer.kt | 18 +- .../wallet/redux/reducers/WalletReducer.kt | 4 +- .../tap/features/wallet/ui/BalanceWidget.kt | 5 +- .../wallet/ui/WalletDetailsFragment.kt | 3 +- .../tap/features/wallet/ui/WalletFragment.kt | 2 +- .../wallet/ui/WalletWarningConverter.kt | 9 +- .../ui/adapters/PendingTransactionsAdapter.kt | 19 ++- .../wallet/ui/adapters/WalletAdapter.kt | 12 +- .../WalletDetailWarningMessagesAdapter.kt | 4 +- .../ui/adapters/WarningMessagesAdapter.kt | 4 +- .../dialogs/AmountToSendBottomSheetDialog.kt | 20 ++- .../ChooseTradeActionBottomSheetDialog.kt | 3 +- ...sianCardholdersWarningBottomSheetDialog.kt | 2 +- .../wallet/ui/wallet/MultiWalletView.kt | 4 +- .../wallet/ui/wallet/SaltPayBalanceWidget.kt | 5 +- .../exchangeServices/ExchangeService.kt | 8 +- .../mercuryo/MercuryoService.kt | 2 +- .../exchangeServices/moonpay/MoonPayApi.kt | 2 - .../moonpay/MoonPayService.kt | 3 +- .../com/tangem/tap/network/payid/PayIdApi.kt | 26 --- .../tangem/tap/network/payid/PayIdService.kt | 41 ----- .../tangem/tap/proxy/UserWalletManagerImpl.kt | 6 +- buildSrc/src/main/java/Dependency.kt | 1 + buildSrc/src/main/java/Versions.kt | 3 +- .../main/java/detekt-convention.gradle.kts | 1 + config/detekt/detekt.yml | 158 +++++++++++++++++- .../core/analytics/di/AnalyticsModule.kt | 2 +- .../datasource/api/common/MoshiConverter.kt | 2 +- .../paymentology/PaymentologyApiService.kt | 2 +- .../api/tangemTech/TangemTechService.kt | 2 +- .../tangemTech/models/CurrenciesResponse.kt | 4 +- .../api/tangemTech/models/RatesResponse.kt | 2 +- .../core/ui/components/ButtonsDeprecated.kt | 8 +- .../com/tangem/core/ui/components/Cards.kt | 2 - .../ui/components/CurrencyPlaceholderIcon.kt | 4 +- .../com/tangem/core/ui/components/Keyboard.kt | 1 - .../core/ui/components/MiddleEllipsisText.kt | 22 ++- .../core/ui/components/SuccessScreen.kt | 17 +- .../com/tangem/core/ui/components/Warnings.kt | 9 - .../ui/components/appbar/AppBarWithSearch.kt | 62 +++---- .../tangem/core/ui/extensions/Blockchain.kt | 3 +- .../java/com/tangem/utils/FormatExtensions.kt | 8 +- .../FeatureCoroutineExceptionHandler.kt | 5 +- .../utils/detekt/UnusedRequiredComponent.kt | 2 +- .../java/com/tangem/domain/DomainWrapped.kt | 2 +- .../java/com/tangem/domain/common/CardDTO.kt | 6 +- .../com/tangem/domain/common/ScanResponse.kt | 2 +- .../domain/common/TangemCardTypesResolver.kt | 12 +- .../tangem/domain/common/TapWorkarounds.kt | 4 +- .../domain/common/extensions/ResultCardSdk.kt | 3 +- .../com/tangem/domain/common/form/Form.kt | 2 +- .../addCustomToken/redux/AddCustomTokenHub.kt | 3 +- .../redux/AddCustomTokenState.kt | 9 +- .../com/tangem/domain/redux/DomainStore.kt | 2 +- .../domain/redux/global/DomainGlobalAction.kt | 2 +- .../domain/redux/global/DomainGlobalHub.kt | 2 +- .../domain/redux/global/DomainGlobalState.kt | 2 +- .../tangem/domain/features/BlockchainTests.kt | 2 +- .../domain/di/ReferralDomainModule.kt | 5 +- .../referral/models/ReferralStateHolder.kt | 2 +- .../tangem/feature/swap/SwapRepositoryImpl.kt | 8 +- .../domain/AllowPermissionsHandlerImpl.kt | 2 +- .../feature/swap/domain/SwapInteractorImpl.kt | 12 +- .../swap/domain/models/ui/TokensDataState.kt | 2 +- .../feature/swap/presentation/SwapFragment.kt | 1 + .../ui/SwapPermissionBottomSheetContent.kt | 9 +- .../com/tangem/feature/swap/ui/SwapScreen.kt | 8 +- .../feature/swap/ui/SwapScreenContent.kt | 9 +- .../feature/swap/ui/SwapSelectTokenScreen.kt | 23 ++- .../tangem/feature/swap/ui/TransactionCard.kt | 17 +- .../feature/swap/viewmodels/SwapViewModel.kt | 2 +- .../tangem/lib/crypto/UserWalletManager.kt | 4 +- 198 files changed, 791 insertions(+), 704 deletions(-) rename app/src/main/java/com/tangem/tap/common/extensions/{Any.kt => ValueCallback.kt} (100%) delete mode 100644 app/src/main/java/com/tangem/tap/network/payid/PayIdApi.kt delete mode 100644 app/src/main/java/com/tangem/tap/network/payid/PayIdService.kt diff --git a/.editorconfig b/.editorconfig index 25a2f7c928..0ab5ea61ec 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,5 +1,4 @@ [*.{kt,kts}] -ktlint_ignore_back_ticked_identifier = true indent_size = 4 indent_style = space diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index 3249b8d1b5..a9d713e0bb 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -162,7 +162,9 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac if (snackbar != null) return snackbar = Snackbar.make( - binding.fragmentContainer, getString(text), Snackbar.LENGTH_INDEFINITE, + binding.fragmentContainer, + getString(text), + Snackbar.LENGTH_INDEFINITE, ) if (buttonTitle != null && action != null) { snackbar?.setAction(getString(buttonTitle), action) diff --git a/app/src/main/java/com/tangem/tap/NavBarInsetsFragmentLifecycleCallback.kt b/app/src/main/java/com/tangem/tap/NavBarInsetsFragmentLifecycleCallback.kt index 2239eacd70..6e620bd0bc 100644 --- a/app/src/main/java/com/tangem/tap/NavBarInsetsFragmentLifecycleCallback.kt +++ b/app/src/main/java/com/tangem/tap/NavBarInsetsFragmentLifecycleCallback.kt @@ -36,4 +36,4 @@ class NavBarInsetsFragmentLifecycleCallback : FragmentLifecycleCallbacks() { windowInsets } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/CurrencyConverter.kt b/app/src/main/java/com/tangem/tap/common/CurrencyConverter.kt index 2ae1553d38..2f3e688532 100644 --- a/app/src/main/java/com/tangem/tap/common/CurrencyConverter.kt +++ b/app/src/main/java/com/tangem/tap/common/CurrencyConverter.kt @@ -9,8 +9,8 @@ import java.math.RoundingMode [REDACTED_AUTHOR] */ class CurrencyConverter( - private val rateValue: BigDecimal, - private val decimals: Int + private val rateValue: BigDecimal, + private val decimals: Int ) { private val roundingMode = RoundingMode.HALF_UP diff --git a/app/src/main/java/com/tangem/tap/common/DialogManager.kt b/app/src/main/java/com/tangem/tap/common/DialogManager.kt index 60be5dd746..05740e01f7 100644 --- a/app/src/main/java/com/tangem/tap/common/DialogManager.kt +++ b/app/src/main/java/com/tangem/tap/common/DialogManager.kt @@ -140,7 +140,9 @@ class DialogManager : StoreSubscriber { is WalletDialog.TokensAreLinkedDialog -> SimpleAlertDialog.create( title = context.getString(state.dialog.titleRes, state.dialog.currencySymbol), message = context.getString( - state.dialog.messageRes, state.dialog.currencySymbol, state.dialog.currencyTitle, + state.dialog.messageRes, + state.dialog.currencySymbol, + state.dialog.currencyTitle, ), context = context, ) diff --git a/app/src/main/java/com/tangem/tap/common/GlobalLayoutStateHandler.kt b/app/src/main/java/com/tangem/tap/common/GlobalLayoutStateHandler.kt index af4645f141..a716d772fe 100644 --- a/app/src/main/java/com/tangem/tap/common/GlobalLayoutStateHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/GlobalLayoutStateHandler.kt @@ -7,9 +7,9 @@ import timber.log.Timber /** [REDACTED_AUTHOR] */ -class GlobalLayoutStateHandler( - private val view: T, - attachImmediately: Boolean = true +class GlobalLayoutStateHandler( + private val view: T, + attachImmediately: Boolean = true ) : ViewTreeObserver.OnGlobalLayoutListener { var onStateChanged: ((T) -> Unit)? = null diff --git a/app/src/main/java/com/tangem/tap/common/IntentHandler.kt b/app/src/main/java/com/tangem/tap/common/IntentHandler.kt index 4ac3547aa0..f60b23937b 100644 --- a/app/src/main/java/com/tangem/tap/common/IntentHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/IntentHandler.kt @@ -34,8 +34,8 @@ class IntentHandler { fun handleBackgroundScan(intent: Intent?) { if (intent != null && (NfcAdapter.ACTION_TECH_DISCOVERED == intent.action || - NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action - ) + NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action + ) ) { val tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG) if (tag != null) { diff --git a/app/src/main/java/com/tangem/tap/common/analytics/TangemSdkErrorMapper.kt b/app/src/main/java/com/tangem/tap/common/analytics/TangemSdkErrorMapper.kt index 5a157d6372..2f9552c1ae 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/TangemSdkErrorMapper.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/TangemSdkErrorMapper.kt @@ -14,12 +14,15 @@ object TangemSdkErrorMapper { is TangemSdkError.SerializeCommandError -> TangemSdkError.SerializeCommandError() is TangemSdkError.DeserializeApduFailed -> TangemSdkError.DeserializeApduFailed() is TangemSdkError.EncodingFailedTypeMismatch -> TangemSdkError.EncodingFailedTypeMismatch( - error.customMessage) + error.customMessage + ) is TangemSdkError.EncodingFailed -> TangemSdkError.EncodingFailed(error.customMessage) is TangemSdkError.DecodingFailedMissingTag -> TangemSdkError.DecodingFailedMissingTag( - error.customMessage) + error.customMessage + ) is TangemSdkError.DecodingFailedTypeMismatch -> TangemSdkError.DecodingFailedTypeMismatch( - error.customMessage) + error.customMessage + ) is TangemSdkError.DecodingFailed -> TangemSdkError.DecodingFailed(error.customMessage) is TangemSdkError.InvalidResponse -> TangemSdkError.InvalidResponse() is TangemSdkError.UnknownStatus -> TangemSdkError.UnknownStatus(error.statusWord) @@ -113,5 +116,4 @@ object TangemSdkErrorMapper { is TangemSdkError.BiometricsAuthenticationFailed -> error } } - } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt index ecdedd9761..0d9a529469 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Basic.kt @@ -33,4 +33,4 @@ sealed class Basic( event = "Scan", error = error, ) -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/compose/OutlinedTextFieldWidget.kt b/app/src/main/java/com/tangem/tap/common/compose/OutlinedTextFieldWidget.kt index 015c459828..113dbfb809 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/OutlinedTextFieldWidget.kt +++ b/app/src/main/java/com/tangem/tap/common/compose/OutlinedTextFieldWidget.kt @@ -114,7 +114,7 @@ private fun OutlinedProgressTextField( ) logger.log("RECOMPOSE ---------------------------------------------------------------START [${logger.count}]") - logger.log("RECOMPOSE --data: fieldData.value: [${fieldData}]") + logger.log("RECOMPOSE --data: fieldData.value: [$fieldData]") logger.log("RECOMPOSE --data: textValueState.value: [${textValueState.value}]") logger.log("RECOMPOSE --data: textDebouncer.emittedValue = [${textDebouncer.emittedValue}]") logger.log("RECOMPOSE --data: textDebouncer.debounced = [${textDebouncer.debounced}]") @@ -131,17 +131,28 @@ private fun OutlinedProgressTextField( logger.log("$isNotUserInput: пользователь ВВОДИТ данные -> внешние данные игнорируем, ждем RECOMPOSE") } else { logger.log("$isNotUserInput: пользователь НЕ вводит данные -> пытаемся обработать внешние данные") - if (textValueState.value != textDebouncer.emittedValue || textValueState.value != textDebouncer.debounced) { + if (textValueState.value != textDebouncer.emittedValue || + textValueState.value != textDebouncer.debounced + ) { logger.log("$isNotUserInput: даннные в поле не соответствуют данным из textDebouncer") if (textDebouncer.emittedValue.isEmpty() && textDebouncer.debounced.isEmpty()) { - logger.log("$isNotUserInput: даннные в textDebouncer ПУСТЫ -> start RECOMPOSE новые данные для textValueState.value = [${fieldData.value}]") + logger.log( + "$isNotUserInput: даннные в textDebouncer ПУСТЫ -> start RECOMPOSE новые данные для " + + "textValueState.value = [${fieldData.value}]", + ) textValueState.value = fieldData.value } else { - logger.log("$isNotUserInput: даннные в textDebouncer НЕ ПУСТЫ -> start RECOMPOSE новые данные для textValueState.value = [${fieldData.value}]") + logger.log( + "$isNotUserInput: даннные в textDebouncer НЕ ПУСТЫ -> start RECOMPOSE новые данные для " + + "textValueState.value = [${fieldData.value}]", + ) textValueState.value = fieldData.value } } else { - logger.log("$isNotUserInput: в пустое поле вставляются данные -> start RECOMPOSE новые данные для textValueState.value = [${fieldData.value}]") + logger.log( + "$isNotUserInput: в пустое поле вставляются данные -> start RECOMPOSE новые данные для " + + "textValueState.value = [${fieldData.value}]", + ) textValueState.value = fieldData.value } } diff --git a/app/src/main/java/com/tangem/tap/common/compose/Undefined.kt b/app/src/main/java/com/tangem/tap/common/compose/Undefined.kt index 6cd0b70d72..10e2ec9956 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/Undefined.kt +++ b/app/src/main/java/com/tangem/tap/common/compose/Undefined.kt @@ -16,7 +16,7 @@ fun TitleSubtitle( title: String, subtitle: String ) { - Column() { + Column { Text(text = title) Text( text = subtitle, diff --git a/app/src/main/java/com/tangem/tap/common/compose/Warning.kt b/app/src/main/java/com/tangem/tap/common/compose/Warning.kt index 9614a6819c..ea4d150e51 100644 --- a/app/src/main/java/com/tangem/tap/common/compose/Warning.kt +++ b/app/src/main/java/com/tangem/tap/common/compose/Warning.kt @@ -49,6 +49,5 @@ fun AddCustomTokenWarning( lineHeight = 18.sp ) } - } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/entities/Button.kt b/app/src/main/java/com/tangem/tap/common/entities/Button.kt index a2d4127c8f..d9ff2b27f8 100644 --- a/app/src/main/java/com/tangem/tap/common/entities/Button.kt +++ b/app/src/main/java/com/tangem/tap/common/entities/Button.kt @@ -6,7 +6,7 @@ import com.tangem.tap.features.wallet.redux.ProgressState open class Button(val enabled: Boolean) open class IndeterminateProgressButton( - val state: ButtonState + val state: ButtonState ) : Button(state != ButtonState.DISABLED) { val progressState: ProgressState diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Activity.kt b/app/src/main/java/com/tangem/tap/common/extensions/Activity.kt index 8ed146440b..5f531a9bc8 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Activity.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Activity.kt @@ -26,11 +26,11 @@ fun Activity.sendEmail( ) { fun createEmailShareIntent(recipient: String, subject: String, text: String, file: File? = null): Intent { val builder = ShareCompat.IntentBuilder.from(this) - .setType("message/rfc822") - .setEmailTo(arrayOf(recipient)) - .setSubject(subject) - .setText(text) - file?.let { builder.setStream(FileProvider.getUriForFile(this, "${packageName}.provider", it)) } + .setType("message/rfc822") + .setEmailTo(arrayOf(recipient)) + .setSubject(subject) + .setText(text) + file?.let { builder.setStream(FileProvider.getUriForFile(this, "$packageName.provider", it)) } return builder.intent } @@ -41,17 +41,17 @@ fun Activity.sendEmail( val emailFilterIntentResults = packageManager.queryIntentActivities(emailFilterIntent, 0) val targetedIntents = originalIntentResults - .filter { originalResult -> - emailFilterIntentResults.any { - originalResult.activityInfo.packageName == it.activityInfo.packageName - } + .filter { originalResult -> + emailFilterIntentResults.any { + originalResult.activityInfo.packageName == it.activityInfo.packageName } - .map { - createEmailShareIntent(email, subject, message, file).apply { - setPackage(it.activityInfo.packageName) - } + } + .map { + createEmailShareIntent(email, subject, message, file).apply { + setPackage(it.activityInfo.packageName) } - .toMutableList() + } + .toMutableList() try { val chooserIntent = Intent.createChooser(targetedIntents.removeAt(0), "Send mail...") chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedIntents.toTypedArray()) diff --git a/app/src/main/java/com/tangem/tap/common/extensions/AssetManager.kt b/app/src/main/java/com/tangem/tap/common/extensions/AssetManager.kt index b2905ec473..9130b6c91d 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/AssetManager.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/AssetManager.kt @@ -3,4 +3,4 @@ package com.tangem.tap.common.extensions import android.content.res.AssetManager fun AssetManager.readJsonFileToString(fileName: String): String = - this.open("$fileName.json").bufferedReader().readText() \ No newline at end of file + this.open("$fileName.json").bufferedReader().readText() \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Context.kt b/app/src/main/java/com/tangem/tap/common/extensions/Context.kt index 1a6ff8b260..ee68830265 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Context.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Context.kt @@ -35,8 +35,8 @@ fun Context.isPermissionGranted(permission: String): Boolean { fun Context.resourceUri(@AnyRes resId: Int): Uri { return Uri.parse( ContentResolver.SCHEME_ANDROID_RESOURCE + - "://" + resources.getResourcePackageName(resId) - + '/' + resources.getResourceTypeName(resId) - + '/' + resources.getResourceEntryName(resId), + "://" + resources.getResourcePackageName(resId) + + '/' + resources.getResourceTypeName(resId) + + '/' + resources.getResourceEntryName(resId), ) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt b/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt index f3a7e1ca1c..a2f9dc5f7b 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Specific.kt @@ -11,9 +11,11 @@ import java.text.DecimalFormat import java.text.DecimalFormatSymbols import java.util.* -//todo move extensions to utils +// todo move extensions to utils fun BigDecimal.toFormattedString( - decimals: Int, roundingMode: RoundingMode = RoundingMode.DOWN, locale: Locale = Locale.US, + decimals: Int, + roundingMode: RoundingMode = RoundingMode.DOWN, + locale: Locale = Locale.US, ): String { val symbols = DecimalFormatSymbols(locale) val df = DecimalFormat() @@ -27,7 +29,9 @@ fun BigDecimal.toFormattedString( @Suppress("MagicNumber") fun BigDecimal.toFormattedCurrencyString( - decimals: Int, currency: String, roundingMode: RoundingMode = RoundingMode.DOWN, + decimals: Int, + currency: String, + roundingMode: RoundingMode = RoundingMode.DOWN, limitNumberOfDecimals: Boolean = true, ): String { val decimalsForRounding = if (limitNumberOfDecimals) { @@ -36,7 +40,8 @@ fun BigDecimal.toFormattedCurrencyString( decimals } val formattedAmount = this.toFormattedString( - decimals = decimalsForRounding, roundingMode = roundingMode, + decimals = decimalsForRounding, + roundingMode = roundingMode, ) return "$formattedAmount $currency" } @@ -70,7 +75,7 @@ fun BigDecimal.toFormattedFiatValue( ): String { val fiatValue = this.setScale(2, RoundingMode.HALF_UP) .let { if (formatWithSpaces) it.formatWithSpaces() else it } - return " ${fiatValue}  $fiatCurrencyName" + return " $fiatValue  $fiatCurrencyName" } fun BigDecimal.stripZeroPlainString(): String = this.stripTrailingZeros().toPlainString() diff --git a/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt b/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt index 80daecc1d9..aef0701282 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/TextView.kt @@ -18,7 +18,7 @@ fun EditText.update(text: String?) { val textLength = text?.length ?: 0 - //prevent cursor jumping while editing a text + // prevent cursor jumping while editing a text val cursorPosition = if (selectionEnd > textLength) textLength else selectionEnd this.setText(text) if (!isFocused || textLength == 0) return diff --git a/app/src/main/java/com/tangem/tap/common/extensions/UI.kt b/app/src/main/java/com/tangem/tap/common/extensions/UI.kt index b7743af30d..28bfaad264 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/UI.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/UI.kt @@ -86,7 +86,9 @@ fun View.invisible(invisible: Boolean = true, invokeBeforeStateChanged: (() -> U fun Context.dpToPixels(dp: Int): Int = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, dp.toFloat(), this.resources.displayMetrics, + TypedValue.COMPLEX_UNIT_DIP, + dp.toFloat(), + this.resources.displayMetrics, ).toInt() fun Context.pixelsToDp(pixels: Int): Int { diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Any.kt b/app/src/main/java/com/tangem/tap/common/extensions/ValueCallback.kt similarity index 100% rename from app/src/main/java/com/tangem/tap/common/extensions/Any.kt rename to app/src/main/java/com/tangem/tap/common/extensions/ValueCallback.kt diff --git a/app/src/main/java/com/tangem/tap/common/feature/Feature.kt b/app/src/main/java/com/tangem/tap/common/feature/Feature.kt index ce1313c772..1eb07546b4 100644 --- a/app/src/main/java/com/tangem/tap/common/feature/Feature.kt +++ b/app/src/main/java/com/tangem/tap/common/feature/Feature.kt @@ -4,5 +4,5 @@ package com.tangem.tap.common.feature [REDACTED_AUTHOR] */ interface Feature { - fun featureIsSwitchedOn():Boolean + fun featureIsSwitchedOn(): Boolean } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/images/Coil.kt b/app/src/main/java/com/tangem/tap/common/images/Coil.kt index 5224c40df0..4e5a88d6e0 100644 --- a/app/src/main/java/com/tangem/tap/common/images/Coil.kt +++ b/app/src/main/java/com/tangem/tap/common/images/Coil.kt @@ -30,13 +30,11 @@ fun createCoilImageLoader( } ) .build() - } } .build() } - private class CoilTimberLogger : Logger { override var level: Int = Log.DEBUG diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt index ba8ed416cf..b880c71872 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalMiddleware.kt @@ -72,7 +72,7 @@ private fun handleAction(action: Action, appState: () -> AppState?, dispatch: Di store.state.globalState.warningManager?.let { if (it.hideWarning(action.warning)) { if (WarningMessagesManager.isAlreadySignedHashesWarning(action.warning)) { - //TODO: No appropriate warningMessage identification. Make it better later + // TODO: No appropriate warningMessage identification. Make it better later store.dispatch(WalletAction.Warnings.CheckHashesCount.SaveCardId) } diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt index 07bf342432..7934a195f6 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalReducer.kt @@ -11,7 +11,6 @@ import org.rekotlin.Action @Suppress("LongMethod", "ComplexMethod") fun globalReducer(action: Action, state: AppState, appStateHolder: AppStateHolder): GlobalState { - if (action !is GlobalAction) return state.globalState val globalState = state.globalState diff --git a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt index e338a7fb4c..7febcfa59c 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/navigation/NavigationReducer.kt @@ -9,7 +9,6 @@ object NavigationReducer { } private fun internalReduce(action: Action, state: AppState): NavigationState { - val navigationAction = action as? NavigationAction ?: return state.navigationState val navState = state.navigationState diff --git a/app/src/main/java/com/tangem/tap/common/shop/TangemShopService.kt b/app/src/main/java/com/tangem/tap/common/shop/TangemShopService.kt index fb010875c5..4408155f8e 100644 --- a/app/src/main/java/com/tangem/tap/common/shop/TangemShopService.kt +++ b/app/src/main/java/com/tangem/tap/common/shop/TangemShopService.kt @@ -88,7 +88,8 @@ class TangemShopService(application: Application, shopifyShop: ShopifyShop) { fun buyWithGooglePay(productType: ProductType) { val totalPrice = checkouts[productType]!!.totalPriceV2.amount googlePayService.payWithGooglePay( - totalPriceCents = totalPrice, currencyCode = checkouts[productType]!!.currencyCode.name, + totalPriceCents = totalPrice, + currencyCode = checkouts[productType]!!.currencyCode.name, merchantID = shopifyService.shop.merchantID, ) } @@ -189,7 +190,7 @@ class TangemShopService(application: Application, shopifyShop: ShopifyShop) { appliedDiscount = it.getAppliedDiscount(), ), - ) + ) } return Result.failure(result.exceptionOrNull()!!) } diff --git a/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayService.kt b/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayService.kt index 37201242d9..757b207741 100644 --- a/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayService.kt +++ b/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayService.kt @@ -25,7 +25,6 @@ class GooglePayService(private val paymentsClient: PaymentsClient, private val a // var responseCallback: ((Result) -> Unit)? = null suspend fun checkIfGooglePayAvailable(): Result { - val isReadyToPayJson = GooglePayUtil.isReadyToPayRequest() ?: return Result.success(false) val request = IsReadyToPayRequest.fromJson(isReadyToPayJson.toString()) @@ -60,7 +59,9 @@ class GooglePayService(private val paymentsClient: PaymentsClient, private val a val request = PaymentDataRequest.fromJson(paymentDataRequestJson.toString()) AutoResolveHelper.resolveTask( - paymentsClient.loadPaymentData(request), activity, LOAD_PAYMENT_DATA_REQUEST_CODE, + paymentsClient.loadPaymentData(request), + activity, + LOAD_PAYMENT_DATA_REQUEST_CODE, ) } diff --git a/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayUtil.kt b/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayUtil.kt index c27680eef3..82509e1180 100644 --- a/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayUtil.kt +++ b/app/src/main/java/com/tangem/tap/common/shop/googlepay/GooglePayUtil.kt @@ -52,7 +52,6 @@ object GooglePayUtil { private fun baseCardPaymentMethod(): JSONObject { return JSONObject().apply { - val parameters = JSONObject().apply { put("allowedAuthMethods", allowedCardAuthMethods) put("allowedCardNetworks", allowedCardNetworks) diff --git a/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyService.kt b/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyService.kt index 4998c89da9..f51fbf0c4e 100644 --- a/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyService.kt +++ b/app/src/main/java/com/tangem/tap/common/shop/shopify/ShopifyService.kt @@ -64,7 +64,6 @@ class ShopifyService(private val application: Application, val shop: ShopifyShop } suspend fun checkout(pollUntilOrder: Boolean, checkoutID: ID): Result { - val query = query { rootQuery: QueryRootQuery -> rootQuery .node(checkoutID) { query -> @@ -76,7 +75,8 @@ class ShopifyService(private val application: Application, val shop: ShopifyShop } } val retryHandler = RetryHandler.build( - 1, TimeUnit.SECONDS, + delay = 1, + timeUnit = TimeUnit.SECONDS, ) { this.retryWhen { result -> when (result) { @@ -109,7 +109,6 @@ class ShopifyService(private val application: Application, val shop: ShopifyShop checkoutItems: List, checkoutID: ID? = null, ): Result { - val storefrontLineItems: MutableList = checkoutItems .map { CheckoutLineItemInput(it.quantity, it.id) }.toMutableList() @@ -117,7 +116,8 @@ class ShopifyService(private val application: Application, val shop: ShopifyShop mutation { mutationQuery: MutationQuery -> mutationQuery .checkoutLineItemsReplace( - storefrontLineItems, checkoutID, + storefrontLineItems, + checkoutID, ) { payloadQuery: CheckoutLineItemsReplacePayloadQuery -> payloadQuery .checkout { checkoutQuery: CheckoutQuery -> @@ -159,7 +159,8 @@ class ShopifyService(private val application: Application, val shop: ShopifyShop val query = mutation { mutationQuery: MutationQuery -> mutationQuery .checkoutDiscountCodeApplyV2( - discountCode, checkoutID, + discountCode, + checkoutID, ) { payloadQuery: CheckoutDiscountCodeApplyV2PayloadQuery -> payloadQuery .checkout { checkoutQuery: CheckoutQuery -> @@ -199,11 +200,11 @@ class ShopifyService(private val application: Application, val shop: ShopifyShop payment: TokenizedPaymentInputV3, checkoutID: ID, ): Result { - val query = mutation { mutationQuery: MutationQuery -> mutationQuery .checkoutCompleteWithTokenizedPaymentV3( - checkoutID, payment, + checkoutID, + payment, ) { payloadQuery: CheckoutCompleteWithTokenizedPaymentV3PayloadQuery -> payloadQuery .payment { paymentQuery: PaymentQuery -> diff --git a/app/src/main/java/com/tangem/tap/common/snackBar/MaxAmountSnackbar.kt b/app/src/main/java/com/tangem/tap/common/snackBar/MaxAmountSnackbar.kt index 69f2114528..d224143c98 100644 --- a/app/src/main/java/com/tangem/tap/common/snackBar/MaxAmountSnackbar.kt +++ b/app/src/main/java/com/tangem/tap/common/snackBar/MaxAmountSnackbar.kt @@ -17,15 +17,15 @@ import com.tangem.wallet.R [REDACTED_AUTHOR] */ class MaxAmountSnackbar( - parent: ViewGroup, - content: MaxAmountSnackbarView + parent: ViewGroup, + content: MaxAmountSnackbarView ) : BaseTransientBottomBar(parent, content, content) { companion object { fun make(view: View, onClick: () -> Unit): MaxAmountSnackbar { val parent = view.findSuitableParent() ?: throw IllegalArgumentException( - "No suitable parent found from the given view. Please provide a valid view." + "No suitable parent found from the given view. Please provide a valid view." ) val inflater = LayoutInflater.from(view.context) val customView = inflater.inflate(R.layout.view_snackbar_max_amount, parent, false) as MaxAmountSnackbarView @@ -57,14 +57,13 @@ class MaxAmountSnackbar( } while (view != null) return fallback } - } } class MaxAmountSnackbarView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), ContentViewCallback { init { @@ -72,10 +71,9 @@ class MaxAmountSnackbarView @JvmOverloads constructor( clipToPadding = false } - override fun animateContentIn(delay: Int, duration: Int) { } override fun animateContentOut(delay: Int, duration: Int) { } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/text/DecimalDigitsInputFilter.kt b/app/src/main/java/com/tangem/tap/common/text/DecimalDigitsInputFilter.kt index 067bcfb5df..2201e794cc 100644 --- a/app/src/main/java/com/tangem/tap/common/text/DecimalDigitsInputFilter.kt +++ b/app/src/main/java/com/tangem/tap/common/text/DecimalDigitsInputFilter.kt @@ -12,9 +12,10 @@ class DecimalDigitsInputFilter( digitsAfterDecimal: Int, private val decimalSeparator: String, ) : InputFilter { - @Suppress("MaxLineLength") - private val pattern: Pattern = - Pattern.compile("(([1-9]{1}[0-9]{0,${digitsBeforeDecimal - 1}})?||[0]{1})((\\$decimalSeparator[0-9]{0,$digitsAfterDecimal})?)||(\\$decimalSeparator)?") + private val pattern: Pattern = Pattern.compile( + "(([1-9]{1}[0-9]{0,${digitsBeforeDecimal - 1}})?||[0]{1})" + + "((\\$decimalSeparator[0-9]{0,$digitsAfterDecimal})?)||(\\$decimalSeparator)?", + ) override fun filter( source: CharSequence, @@ -56,4 +57,4 @@ class DecimalDigitsInputFilter( } } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/text/Truncate.kt b/app/src/main/java/com/tangem/tap/common/text/Truncate.kt index 3ed50ca1d2..0aeb17d6d2 100644 --- a/app/src/main/java/com/tangem/tap/common/text/Truncate.kt +++ b/app/src/main/java/com/tangem/tap/common/text/Truncate.kt @@ -16,9 +16,9 @@ interface Truncate { companion object { fun create(type: TruncateType): Truncate { return when (type) { - TruncateType.START -> TruncateStart() - TruncateType.MIDDLE -> TruncateMiddle() - TruncateType.END -> TruncateEnd() + TruncateType.START -> TruncateStart() + TruncateType.MIDDLE -> TruncateMiddle() + TruncateType.END -> TruncateEnd() } } } @@ -127,10 +127,10 @@ fun TextView.truncateWith(text: String, type: TruncateType, with: String = "..." } fun TextView.truncateStartWith(text: String, with: String = "..."): String = - this.truncateWith(text, TruncateType.START, with) + this.truncateWith(text, TruncateType.START, with) fun TextView.truncateMiddleWith(text: String, with: String = "..."): String = - this.truncateWith(text, TruncateType.MIDDLE, with) + this.truncateWith(text, TruncateType.MIDDLE, with) fun TextView.truncateEndWith(text: String, with: String = "..."): String = - this.truncateWith(text, TruncateType.END, with) \ No newline at end of file + this.truncateWith(text, TruncateType.END, with) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/toggleWidget/RefreshBalanceWidget.kt b/app/src/main/java/com/tangem/tap/common/toggleWidget/RefreshBalanceWidget.kt index 101c40a0d2..6a5bd17f60 100644 --- a/app/src/main/java/com/tangem/tap/common/toggleWidget/RefreshBalanceWidget.kt +++ b/app/src/main/java/com/tangem/tap/common/toggleWidget/RefreshBalanceWidget.kt @@ -67,9 +67,18 @@ class RefreshBalanceWidget( } ProgressState.Loading -> { progressViewAnimation = RotateAnimation( - 0f, 360f, - Animation.RELATIVE_TO_SELF, 0.5f, - Animation.RELATIVE_TO_SELF, 0.5f, + /* fromDegrees = */ + 0f, + /* toDegrees = */ + 360f, + /* pivotXType = */ + Animation.RELATIVE_TO_SELF, + /* pivotXValue = */ + 0.5f, + /* pivotYType = */ + Animation.RELATIVE_TO_SELF, + /* pivotYValue = */ + 0.5f, ) progressViewAnimation?.duration = 700 progressViewAnimation?.interpolator = AccelerateInterpolator() @@ -101,10 +110,14 @@ class ShowAnimation : AnimationSet(true) { init { addAnimation( ScaleAnimation( - 0f, 1f, - 0f, 1f, - Animation.RELATIVE_TO_SELF, 0.5f, - Animation.RELATIVE_TO_SELF, 0.5f, + 0f, + 1f, + 0f, + 1f, + Animation.RELATIVE_TO_SELF, + 0.5f, + Animation.RELATIVE_TO_SELF, + 0.5f, ), ) addAnimation(AlphaAnimation(0f, 1f)) diff --git a/app/src/main/java/com/tangem/tap/common/transitions/OnboardingTransitions.kt b/app/src/main/java/com/tangem/tap/common/transitions/OnboardingTransitions.kt index 32785f0147..e250846a42 100644 --- a/app/src/main/java/com/tangem/tap/common/transitions/OnboardingTransitions.kt +++ b/app/src/main/java/com/tangem/tap/common/transitions/OnboardingTransitions.kt @@ -1,33 +1,13 @@ package com.tangem.tap.common.transitions -import androidx.transition.* - -/** -[REDACTED_AUTHOR] - */ -class FrontCardEnterTransition : TransitionSet() { - init { - ordering = ORDERING_TOGETHER; - addTransition(Fade()) - addTransition(ChangeImageTransform()) // изменения внутри ImageView - addTransition(ChangeTransform()) // изменение размеров, углов накона - addTransition(ChangeBounds()) // изменение положения - } -} - -class FrontCardExitTransition : TransitionSet() { - init { - ordering = ORDERING_TOGETHER; - addTransition(Fade()) - addTransition(ChangeImageTransform()) - addTransition(ChangeTransform()) - addTransition(ChangeBounds()) - } -} +import androidx.transition.ChangeBounds +import androidx.transition.ChangeTransform +import androidx.transition.Fade +import androidx.transition.TransitionSet class HomeToOnboardingTransition : TransitionSet() { init { - ordering = ORDERING_TOGETHER; + ordering = ORDERING_TOGETHER addTransition(Fade()) addTransition(ChangeTransform()) addTransition(ChangeBounds()) @@ -36,7 +16,7 @@ class HomeToOnboardingTransition : TransitionSet() { class InternalNoteLayoutTransition : TransitionSet() { init { - ordering = ORDERING_TOGETHER; + ordering = ORDERING_TOGETHER addTransition(ChangeTransform()) addTransition(ChangeBounds()) addTransition(Fade()) diff --git a/app/src/main/java/com/tangem/tap/common/ui/SimpleAlertDialog.kt b/app/src/main/java/com/tangem/tap/common/ui/SimpleAlertDialog.kt index 0eaa8e2bf2..365f235f11 100644 --- a/app/src/main/java/com/tangem/tap/common/ui/SimpleAlertDialog.kt +++ b/app/src/main/java/com/tangem/tap/common/ui/SimpleAlertDialog.kt @@ -39,7 +39,6 @@ object SimpleCancelableAlertDialog { secondaryButtonAction: () -> Unit = {}, context: Context, ): AlertDialog { - return AlertDialog.Builder(context).apply { setTitle(titleRes?.let { context.getString(it) } ?: title) setMessage(messageRes?.let { context.getString(it) } ?: message) diff --git a/app/src/main/java/com/tangem/tap/domain/PayIdManager.kt b/app/src/main/java/com/tangem/tap/domain/PayIdManager.kt index f99f01f923..d66ac2ed73 100644 --- a/app/src/main/java/com/tangem/tap/domain/PayIdManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/PayIdManager.kt @@ -23,16 +23,15 @@ class PayIdManager { private fun Blockchain.getPayIdNetwork(): String { return when (this) { - Blockchain.XRP -> "XRPL" - Blockchain.RSK -> "RSK" - else -> this.currency - }.lowercase(Locale.getDefault()) + Blockchain.XRP -> "XRPL" + Blockchain.RSK -> "RSK" + else -> this.currency + }.lowercase(Locale.getDefault()) } companion object { - @Suppress("MaxLineLength") - val payIdRegExp = - "^[a-z0-9!#@%&*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#@%&*+/=?^_`{|}~-]+)*\\\$(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z-]*[a-z0-9])?|(?:[0-9]{1,3}\\.){3}[0-9]{1,3})\$".toRegex() + private val payIdRegExp = ("^[a-z0-9!#@%&*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#@%&*+/=?^_`{|}~-]+)*\\\$(?:(?:[a-z0-9]" + + "(?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z-]*[a-z0-9])?|(?:[0-9]{1,3}\\.){3}[0-9]{1,3})\$").toRegex() val payIdSupported: EnumSet = EnumSet.of( Blockchain.XRP, diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 1f535fa3c6..82f2159279 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -167,8 +167,8 @@ class TapWalletManager { store.dispatch(WalletConnectAction.RestoreSessions(data)) store.dispatch( WalletAction.MultiWallet.ShowWalletBackupWarning( - show = data.card.settings.isBackupAllowed - && data.card.backupStatus == CardDTO.BackupStatus.NoBackup, + show = data.card.settings.isBackupAllowed && + data.card.backupStatus == CardDTO.BackupStatus.NoBackup, ), ) loadData(data) @@ -181,8 +181,8 @@ class TapWalletManager { if (data.cardTypesResolver.isStart2Coin()) { configManager?.turnOff(ConfigManager.isSendingToPayIdEnabled) configManager?.turnOff(ConfigManager.isTopUpEnabled) - } else if (blockchain == Blockchain.Bitcoin - || data.walletData?.blockchain == Blockchain.Bitcoin.id + } else if (blockchain == Blockchain.Bitcoin || + data.walletData?.blockchain == Blockchain.Bitcoin.id ) { configManager?.resetToDefault(ConfigManager.isSendingToPayIdEnabled) configManager?.resetToDefault(ConfigManager.isTopUpEnabled) diff --git a/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessage.kt b/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessage.kt index 03c10daf6f..ddadfcfc70 100644 --- a/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessage.kt +++ b/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessage.kt @@ -24,7 +24,6 @@ data class WarningMessage( blockchains?.map { Blockchain.fromId(it.uppercase()) } } - var isHidden = false enum class Priority { @@ -40,15 +39,14 @@ data class WarningMessage( enum class Type { @Json(name = "permanent") - Permanent, // нельзя скрыть + Permanent, // нельзя скрыть @Json(name = "temporary") - Temporary, // можно скрыть (кнопка ОК) + Temporary, // можно скрыть (кнопка ОК) AppRating, TestCard - } enum class Location { diff --git a/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt b/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt index 93b80c5ca4..a0e382136a 100644 --- a/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt @@ -39,8 +39,8 @@ class WarningMessagesManager { val foundWarning = findWarning(warning) return when { foundWarning == null -> false - foundWarning.type == WarningMessage.Type.Temporary - || foundWarning.type == WarningMessage.Type.AppRating -> { + foundWarning.type == WarningMessage.Type.Temporary || + foundWarning.type == WarningMessage.Type.AppRating -> { if (foundWarning.isHidden) { false } else { diff --git a/app/src/main/java/com/tangem/tap/domain/extensions/WalletManagerFactory.kt b/app/src/main/java/com/tangem/tap/domain/extensions/WalletManagerFactory.kt index 4959e73705..07e92a313f 100644 --- a/app/src/main/java/com/tangem/tap/domain/extensions/WalletManagerFactory.kt +++ b/app/src/main/java/com/tangem/tap/domain/extensions/WalletManagerFactory.kt @@ -72,7 +72,8 @@ fun WalletManagerFactory.makeWalletManagerForApp( } fun WalletManagerFactory.makeWalletManagerForApp( - scanResponse: ScanResponse, blockchainNetwork: BlockchainNetwork, + scanResponse: ScanResponse, + blockchainNetwork: BlockchainNetwork, ): WalletManager? { return makeWalletManagerForApp( scanResponse, diff --git a/app/src/main/java/com/tangem/tap/domain/model/builders/UserWalletBuilder.kt b/app/src/main/java/com/tangem/tap/domain/model/builders/UserWalletBuilder.kt index 6b7f179e01..a2c699667a 100644 --- a/app/src/main/java/com/tangem/tap/domain/model/builders/UserWalletBuilder.kt +++ b/app/src/main/java/com/tangem/tap/domain/model/builders/UserWalletBuilder.kt @@ -87,6 +87,6 @@ class UserWalletBuilder( private fun getUrlForArtwork(cardId: String, cardPublicKeyHex: String, artworkId: String): String { return TangemApi.Companion.BaseUrl.VERIFY.url + TangemApi.ARTWORK + - "?artworkId=${artworkId}&CID=${cardId}&publicKey=$cardPublicKeyHex" + "?artworkId=$artworkId&CID=$cardId&publicKey=$cardPublicKeyHex" } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/moduleMessage/saltPay/SaltPayMessageConverter.kt b/app/src/main/java/com/tangem/tap/domain/moduleMessage/saltPay/SaltPayMessageConverter.kt index ac8c8cd359..9db1c78996 100644 --- a/app/src/main/java/com/tangem/tap/domain/moduleMessage/saltPay/SaltPayMessageConverter.kt +++ b/app/src/main/java/com/tangem/tap/domain/moduleMessage/saltPay/SaltPayMessageConverter.kt @@ -31,4 +31,4 @@ class SaltPayErrorConverter( is SaltPayActivationError -> SaltPayActivationErrorConverter(context).convert(message) else -> null } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/statePrinter/OnboardingWalletStateConverter.kt b/app/src/main/java/com/tangem/tap/domain/statePrinter/OnboardingWalletStateConverter.kt index baccb34947..3e98a50996 100644 --- a/app/src/main/java/com/tangem/tap/domain/statePrinter/OnboardingWalletStateConverter.kt +++ b/app/src/main/java/com/tangem/tap/domain/statePrinter/OnboardingWalletStateConverter.kt @@ -24,7 +24,7 @@ class OnboardingWalletStateConverter : StringStateConverter { BackupStepAdapter(), BigIntegerAdapter(), - ) + ) } override fun convert(stateHolder: AppState): String { diff --git a/app/src/main/java/com/tangem/tap/domain/statePrinter/ScanResponseConverter.kt b/app/src/main/java/com/tangem/tap/domain/statePrinter/ScanResponseConverter.kt index f8597dc48b..e59536ab1e 100644 --- a/app/src/main/java/com/tangem/tap/domain/statePrinter/ScanResponseConverter.kt +++ b/app/src/main/java/com/tangem/tap/domain/statePrinter/ScanResponseConverter.kt @@ -29,14 +29,12 @@ class ScanResponseConverter : StringStateConverter { ) } derivedKeysMap[keyWalletPubKey.bytes.toHexString()] = exPubKeysMap - } scanResponseMap["derivedKeys"] = derivedKeysMap val json = converter.prettyPrint(scanResponseMap) return json - } } diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletsTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletsTask.kt index 140a0ef72d..5c39928f88 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletsTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletsTask.kt @@ -13,9 +13,9 @@ import com.tangem.operations.wallet.CreateWalletTask class CreateWalletsTask(curves: List? = null) : CardSessionRunnable { private val curves = curves ?: listOf( - EllipticCurve.Secp256k1, - EllipticCurve.Ed25519, - EllipticCurve.Secp256r1, + EllipticCurve.Secp256k1, + EllipticCurve.Ed25519, + EllipticCurve.Secp256r1, ) private var index = 0 @@ -26,10 +26,10 @@ class CreateWalletsTask(curves: List? = null) : CardSessionRunnab } private fun createWallet( - curve: EllipticCurve, session: CardSession, + curve: EllipticCurve, + session: CardSession, callback: (result: CompletionResult) -> Unit ) { - CreateWalletTask(curve).run(session) { result -> when (result) { is CompletionResult.Success -> { diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/SignHashTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/SignHashTask.kt index 58520125ce..3e5d37ac4b 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/SignHashTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/SignHashTask.kt @@ -34,4 +34,4 @@ class SignHashTask( } } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt index c995f306e0..7bbd4d1811 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt @@ -210,7 +210,8 @@ private class CreateWalletTangemWallet : ProductCommandProcessor() override fun run(session: CardSession, callback: (result: CompletionResult) -> Unit) { - if (curves.isEmpty()){ + if (curves.isEmpty()) { callback(CompletionResult.Failure(TangemSdkError.WalletIsNotCreated())) return } diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/ResetToFactorySettingsTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/ResetToFactorySettingsTask.kt index bc11f4be74..398f369a54 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/ResetToFactorySettingsTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/ResetToFactorySettingsTask.kt @@ -18,7 +18,6 @@ class ResetToFactorySettingsTask : CardSessionRunnable { session: CardSession, callback: (result: CompletionResult) -> Unit, ) { - val wallet = session.environment.card?.wallets?.lastOrNull().guard { resetBackup(session, callback) return @@ -38,7 +37,6 @@ class ResetToFactorySettingsTask : CardSessionRunnable { session: CardSession, callback: (result: CompletionResult) -> Unit, ) { - val backupStatus = session.environment.card?.backupStatus if (backupStatus == null || backupStatus == Card.BackupStatus.NoBackup) { callback(CompletionResult.Success(session.environment.card!!)) diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt index a7c840e162..6cbd5923e6 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt @@ -101,24 +101,6 @@ class ScanProductTask( } } -private class ScanNoteProcessor : ProductCommandProcessor { - override fun proceed( - card: CardDTO, - session: CardSession, - callback: (result: CompletionResult) -> Unit, - ) { - callback( - CompletionResult.Success( - ScanResponse( - card = card, - productType = ProductType.Note, - walletData = session.environment.walletData, - ), - ), - ) - } -} - private class ScanWalletProcessor( private val userTokensRepository: UserTokensRepository?, private val additionalBlockchainsToDerive: Collection? = null, @@ -130,12 +112,10 @@ private class ScanWalletProcessor( session: CardSession, callback: (result: CompletionResult) -> Unit, ) { - - if (card.firmwareVersion.doubleValue >= 4.39) { - if (card.settings.maxWalletsCount == 1) { - readFile(card, session, callback) - return - } + @Suppress("MagicNumber") + if (card.firmwareVersion.doubleValue >= 4.39 && card.settings.maxWalletsCount == 1) { + readFile(card, session, callback) + return } createMissingWalletsIfNeeded(card, session, callback) @@ -198,7 +178,6 @@ private class ScanWalletProcessor( } } } - } } @@ -244,8 +223,8 @@ private class ScanWalletProcessor( val activationInProgress = preferencesStorage.usedCardsPrefStorage.isActivationInProgress(card.cardId) @Suppress("ComplexCondition") - if (card.backupStatus == CardDTO.BackupStatus.NoBackup && card.wallets.isNotEmpty() - && (activationInProgress || card.isSaltPay) + if (card.backupStatus == CardDTO.BackupStatus.NoBackup && card.wallets.isNotEmpty() && + (activationInProgress || card.isSaltPay) ) { StartPrimaryCardLinkingTask().run(session) { linkingResult -> when (linkingResult) { diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt index a4706680b7..b9338e42a3 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt @@ -83,7 +83,8 @@ class OldUserTokensRepository( } private suspend fun loadSavedCurrenciesOldWay( - cardId: String, isHdWalletSupported: Boolean = false, + cardId: String, + isHdWalletSupported: Boolean = false, ): List { val blockchains = loadSavedBlockchains(cardId) val tokens = loadSavedTokens(cardId) diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt b/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt index 0be009ce5a..8abb99b14d 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/models/BlockchainNetwork.kt @@ -44,7 +44,8 @@ data class BlockchainNetwork( } override fun hashCode(): Int = calculateHashCode( - blockchain.hashCode(), derivationPath?.hashCode() ?: 0, + blockchain.hashCode(), + derivationPath?.hashCode() ?: 0, ) companion object { diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/models/TokenDao.kt b/app/src/main/java/com/tangem/tap/domain/tokens/models/TokenDao.kt index a8a717b1ce..ef6f541f6e 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/models/TokenDao.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/models/TokenDao.kt @@ -26,5 +26,4 @@ data class TokenDao( customIconUrl?.let { this.setCustomIconUrl(it) } } } - } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/twins/FinalizeTwinTask.kt b/app/src/main/java/com/tangem/tap/domain/twins/FinalizeTwinTask.kt index d4e00cb3fe..b173602e3d 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/FinalizeTwinTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/FinalizeTwinTask.kt @@ -10,7 +10,8 @@ import com.tangem.operations.PreflightReadTask import com.tangem.tap.domain.tasks.product.ScanProductTask class FinalizeTwinTask( - private val twinPublicKey: ByteArray, private val issuerKeys: KeyPair, + private val twinPublicKey: ByteArray, + private val issuerKeys: KeyPair, ) : CardSessionRunnable { override val allowsRequestAccessCodeFromRepository: Boolean = false diff --git a/app/src/main/java/com/tangem/tap/domain/twins/WriteProtectedIssuerDataTask.kt b/app/src/main/java/com/tangem/tap/domain/twins/WriteProtectedIssuerDataTask.kt index 4b86581b80..2a415c6eda 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/WriteProtectedIssuerDataTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/WriteProtectedIssuerDataTask.kt @@ -15,7 +15,8 @@ import com.tangem.operations.issuerAndUserData.WriteIssuerDataCommand import com.tangem.operations.sign.SignHashCommand class WriteProtectedIssuerDataTask( - private val twinPublicKey: ByteArray, private val issuerKeys: KeyPair, + private val twinPublicKey: ByteArray, + private val issuerKeys: KeyPair, ) : CardSessionRunnable { override fun run( @@ -33,8 +34,12 @@ class WriteProtectedIssuerDataTask( when (readResult) { is CompletionResult.Success -> { writeIssuerData( - twinPublicKey, issuerKeys, signResult.data.signature, - readResult.data, session, callback, + twinPublicKey, + issuerKeys, + signResult.data.signature, + readResult.data, + session, + callback, ) } is CompletionResult.Failure -> callback( @@ -52,7 +57,9 @@ class WriteProtectedIssuerDataTask( @Suppress("LongParameterList") private fun writeIssuerData( - twinPublicKey: ByteArray, issuerKeys: KeyPair, cardSignature: ByteArray, + twinPublicKey: ByteArray, + issuerKeys: KeyPair, + cardSignature: ByteArray, readResponse: ReadIssuerDataResponse, session: CardSession, callback: ( diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultUserWalletsSensitiveInformationRepository.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultUserWalletsSensitiveInformationRepository.kt index 673ec51a10..8d1fdddb9f 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultUserWalletsSensitiveInformationRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultUserWalletsSensitiveInformationRepository.kt @@ -15,7 +15,6 @@ import com.tangem.tap.domain.userWalletList.UserWalletListError import com.tangem.tap.domain.userWalletList.model.UserWalletEncryptionKey import com.tangem.tap.domain.userWalletList.model.UserWalletSensitiveInformation import com.tangem.tap.domain.userWalletList.repository.UserWalletsSensitiveInformationRepository -import com.tangem.tap.domain.userWalletList.utils.encryptionKey import com.tangem.tap.domain.userWalletList.utils.sensitiveInformation import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -180,7 +179,7 @@ internal class DefaultUserWalletsSensitiveInformationRepository( } class SensitiveInformationIv(userWalletId: String) : StorageKey { - override val name: String = "user_wallet_sensitive_information_iv_${userWalletId}" + override val name: String = "user_wallet_sensitive_information_iv_$userWalletId" } } diff --git a/app/src/main/java/com/tangem/tap/domain/walletCurrencies/implementation/DefaultWalletCurrenciesManager.kt b/app/src/main/java/com/tangem/tap/domain/walletCurrencies/implementation/DefaultWalletCurrenciesManager.kt index dd19a02575..2af51d87a6 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletCurrencies/implementation/DefaultWalletCurrenciesManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletCurrencies/implementation/DefaultWalletCurrenciesManager.kt @@ -36,8 +36,8 @@ internal class DefaultWalletCurrenciesManager( ): CompletionResult = withContext(Dispatchers.Default) { val walletStore = walletStoresRepository.getSync(userWallet.walletId) .find { - it.blockchain == currency.blockchain - && it.derivationPath?.rawPath == currency.derivationPath + it.blockchain == currency.blockchain && + it.derivationPath?.rawPath == currency.derivationPath } if (walletStore != null) { diff --git a/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/DefaultWalletAmountsRepository.kt b/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/DefaultWalletAmountsRepository.kt index 4cf796096a..2739a8c2b1 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/DefaultWalletAmountsRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletStores/repository/implementation/DefaultWalletAmountsRepository.kt @@ -140,7 +140,7 @@ internal class DefaultWalletAmountsRepository( """ Unable to fetch fiat rates |- Coins ids: $coinsIds - """.trimIndent(), + """.trimIndent(), ) return@withContext CompletionResult.Failure(error) @@ -175,7 +175,7 @@ internal class DefaultWalletAmountsRepository( ): CompletionResult = coroutineScope { walletStores.map { walletStore -> async { - //TODO: Find wallet manager via [com.tangem.tap.domain.walletStores.repository.WalletManagersRepository] + // TODO: Find wallet manager via [com.tangem.tap.domain.walletStores.repository.WalletManagersRepository] val walletManager = walletStore.walletManager fetchAmountsForWalletStore(userWalletId, scanResponse, walletStore, walletManager) } diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt index 6b96fc0f6a..8759dc91d4 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectManager.kt @@ -195,9 +195,9 @@ class WalletConnectManager { fun removeSimilarSessions(activeData: WalletConnectActiveData) { val sessionsToRemove = sessions.filter { - it.value.wallet.walletPublicKey?.equals(activeData.wallet.walletPublicKey) == true - && it.value.peerMeta?.url == activeData.peerMeta?.url - && it.value.session != activeData.session + it.value.wallet.walletPublicKey?.equals(activeData.wallet.walletPublicKey) == true && + it.value.peerMeta?.url == activeData.peerMeta?.url && + it.value.session != activeData.session } Timber.d("RemoveSimilarSessions: ${sessionsToRemove.values.map { it.client.session }}") sessionsToRemove.forEach { disconnect(it.value.session) } @@ -288,7 +288,9 @@ class WalletConnectManager { } fun signBnb( - id: Long, data: ByteArray, sessionData: WCSession, + id: Long, + data: ByteArray, + sessionData: WCSession, ) { val activeData = sessions[sessionData] ?: return scope.launch { @@ -313,7 +315,9 @@ class WalletConnectManager { val activeData = sessions[session.session] ?: return scope.launch { val data = WalletConnectSdkHelper().prepareDataForPersonalSign( - message = message, session = session, id = id, + message = message, + session = session, + id = id, ) sessions[session.session] = activeData.copy(personalSignData = data) store.dispatchOnMain( @@ -435,15 +439,15 @@ class WalletConnectManager { } } - client.onBnbCancel = { id: Long, order: WCBinanceCancelOrder -> - } client.onBnbTrade = { id: Long, order: WCBinanceTradeOrder -> sessions[client.session]?.toWalletConnectSession()?.let { sessionData -> store.dispatchOnMain( WalletConnectAction.BinanceTransaction.Trade( - id = id, order = order, sessionData = sessionData, + id = id, + order = order, + sessionData = sessionData, ), ) } @@ -452,7 +456,9 @@ class WalletConnectManager { sessions[client.session]?.toWalletConnectSession()?.let { sessionData -> store.dispatchOnMain( WalletConnectAction.BinanceTransaction.Transfer( - id = id, order = order, sessionData = sessionData, + id = id, + order = order, + sessionData = sessionData, ), ) } diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt index 6448911980..316d44de9c 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt @@ -63,7 +63,7 @@ class WalletConnectSdkHelper { val gas = transaction.gas?.hexToBigDecimal() ?: transaction.gasLimit?.hexToBigDecimal() - ?: BigDecimal(300000) //Set high gasLimit if not provided + ?: BigDecimal(300000) // Set high gasLimit if not provided val decimals = wallet.blockchain.decimals() @@ -71,8 +71,7 @@ class WalletConnectSdkHelper { ?.movePointLeft(decimals) ?: return null val gasPrice = transaction.gasPrice?.hexToBigDecimal() - ?: when (val result = - (walletManager as? EthereumGasLoader)?.getGasPrice()) { + ?: when (val result = (walletManager as? EthereumGasLoader)?.getGasPrice()) { is Result.Success -> result.data.toBigDecimal() is Result.Failure -> { (result.error as? Throwable)?.let { Timber.e(it) } @@ -271,7 +270,9 @@ class WalletConnectSdkHelper { is CompletionResult.Success -> { val hash = result.data.signature return EthereumUtils.prepareSignedMessageData( - hash, hashToSign, CryptoUtils.decompressPublicKey(key!!), + signedHash = hash, + hashToSign = hashToSign, + publicKey = CryptoUtils.decompressPublicKey(key!!), ) } is CompletionResult.Failure -> { diff --git a/app/src/main/java/com/tangem/tap/features/BaseFragment.kt b/app/src/main/java/com/tangem/tap/features/BaseFragment.kt index f0e6016021..fe5c9a3926 100644 --- a/app/src/main/java/com/tangem/tap/features/BaseFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/BaseFragment.kt @@ -54,7 +54,7 @@ abstract class BaseFragment(layoutId: Int) : Fragment(layoutId), FragmentOnBackP } } - protected open fun loadToolbarMenu():MenuProvider? = null + protected open fun loadToolbarMenu(): MenuProvider? = null fun showRetrySnackbar(message: String, action: VoidCallback) { val snackbar = Snackbar.make(mainView, message, Snackbar.LENGTH_INDEFINITE) diff --git a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt index ec0f95eece..d763e26339 100644 --- a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt @@ -486,8 +486,7 @@ class DemoConfig { ) @Suppress("ClassOrdering") - private val debugTestDemoCardIds = listOf( - ) + private val debugTestDemoCardIds = listOf() } class DemoTransactionSender(private val walletManager: WalletManager) : TransactionSender { diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt index 402c9dd26c..4a438e519b 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt @@ -142,7 +142,8 @@ private fun handleSecurityAction( currentOption = state.cardSettingsState.manageSecurityState.selectedOption, allowedOptions = state.scanResponse?.cardTypesResolver?.let { prepareAllowedSecurityOptions( - it, state.cardSettingsState.manageSecurityState.selectedOption, + cardTypesResolver = it, + currentSecurityOption = state.cardSettingsState.manageSecurityState.selectedOption, ) } ?: EnumSet.of(SecurityOption.LongTap), ) diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt index 67b215dd51..a383235538 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectAction.kt @@ -33,7 +33,8 @@ sealed class WalletConnectAction : Action { object RefuseOpeningSession : WalletConnectAction() data class OpeningSessionTimeout(val session: WCSession) : WalletConnectAction() data class ScanCard( - val session: WalletConnectSession, val chainId: Int?, + val session: WalletConnectSession, + val chainId: Int?, ) : WalletConnectAction() data class ApproveSession( @@ -93,17 +94,21 @@ sealed class WalletConnectAction : Action { object BinanceTransaction : WalletConnectAction() { data class Trade( - val id: Long, val order: WCBinanceTradeOrder, + val id: Long, + val order: WCBinanceTradeOrder, val sessionData: WalletConnectSession, ) : WalletConnectAction() data class Transfer( - val id: Long, val order: WCBinanceTransferOrder, + val id: Long, + val order: WCBinanceTransferOrder, val sessionData: WalletConnectSession, ) : WalletConnectAction() data class Sign( - val id: Long, val data: ByteArray, val sessionData: WCSession, + val id: Long, + val data: ByteArray, + val sessionData: WCSession, ) : WalletConnectAction() } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt index b92891884c..0957c8f2dc 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt @@ -187,7 +187,9 @@ class WalletConnectMiddleware { } is WalletConnectAction.BinanceTransaction.Sign -> { walletConnectManager.signBnb( - action.id, action.data, action.sessionData, + id = action.id, + data = action.data, + sessionData = action.sessionData, ) } is WalletConnectAction.SwitchBlockchain -> { @@ -309,7 +311,9 @@ class WalletConnectMiddleware { } private fun getWalletManager( - wallet: WalletForSession, blockchain: Blockchain, walletState: WalletState, + wallet: WalletForSession, + blockchain: Blockchain, + walletState: WalletState, ): WalletManager? { val blockchainToMake = if (blockchain == Blockchain.Ethereum && wallet.isTestNet) { Blockchain.EthereumTestnet diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt index 811a934f3d..a4990f5d8b 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectReducer.kt @@ -4,7 +4,8 @@ import org.rekotlin.Action object WalletConnectReducer { fun reduce( - action: Action, state: WalletConnectState, + action: Action, + state: WalletConnectState, ): WalletConnectState { if (action !is WalletConnectAction) return state @@ -35,8 +36,7 @@ object WalletConnectReducer { is WalletConnectAction.FailureEstablishingSession -> state.copy(loading = false) is WalletConnectAction.UpdateBlockchain -> state.copy( sessions = state.sessions - .filterNot { it.peerId == action.updatedSession.peerId } - + action.updatedSession, + .filterNot { it.peerId == action.updatedSession.peerId } + action.updatedSession, ) else -> state diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt index 53e37c8d80..70e41f4f0c 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectState.kt @@ -83,7 +83,6 @@ data class WalletForSession( } } - sealed class WalletConnectDialog : StateDialog { data class ClipboardOrScanQr(val clipboardUri: String) : WalletConnectDialog() object UnsupportedCard : WalletConnectDialog() @@ -133,7 +132,7 @@ data class WcPersonalSignData( val id: Long, val dialogData: PersonalSignDialogData, - ) +) sealed class BinanceMessageData( val address: String, diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsScreen.kt index 4f4e28e4bf..005c55a4ea 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/AppSettingsScreen.kt @@ -149,7 +149,7 @@ private fun onCheckedChange( onSettingToggled: (PrivacySetting, Boolean) -> Unit, onDialogStateChange: (PrivacySetting?) -> Unit, ) { - //Show warning if user wants to disable the switch + // Show warning if user wants to disable the switch if (!enabled) { onDialogStateChange(element) } else { diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt index 1f5353c548..16b9836764 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/cardsettings/CardSettingsViewModel.kt @@ -13,7 +13,6 @@ import org.rekotlin.Store class CardSettingsViewModel(private val store: Store) { fun updateState(state: CardSettingsState?): CardSettingsScreenState { - return if (state?.manageSecurityState == null) { CardSettingsScreenState( cardDetails = null, diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/common/DetailsComposeElements.kt b/app/src/main/java/com/tangem/tap/features/details/ui/common/DetailsComposeElements.kt index df3b29d16e..34ed64cceb 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/common/DetailsComposeElements.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/common/DetailsComposeElements.kt @@ -132,9 +132,11 @@ fun DetailsMainButton( ), ) { Text(text = title) - Spacer(modifier = Modifier - .padding(start = 20.dp, end = 20.dp) - .size(8.dp)) + Spacer( + modifier = Modifier + .padding(start = 20.dp, end = 20.dp) + .size(8.dp), + ) Icon(painter = painterResource(id = R.drawable.ic_tangem_24), contentDescription = "") } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt index 5a9c1e203a..c80a04b785 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/details/DetailsScreen.kt @@ -174,7 +174,8 @@ private fun Preview() { tangemLinks = TangemSocialAccounts.accountsEn, tangemVersion = "Tangem 2.14.12 (343)", appCurrency = "Dollar", - onItemsClick = {}, onSocialNetworkClick = {}, + onItemsClick = {}, + onSocialNetworkClick = {}, ), onBackClick = {}, ) diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt index 944ed5a3b8..383fa7b498 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/securitymode/SecurityModeScreen.kt @@ -47,7 +47,6 @@ fun SecurityModeOptions(state: SecurityModeScreenState) { ) { ScreenTitle(titleRes = R.string.card_settings_security_mode, Modifier.padding(bottom = 36.dp)) - state.availableOptions.map { SecurityOption(option = it, state = state) } @@ -79,13 +78,14 @@ fun SecurityOption(option: SecurityOption, state: SecurityModeScreenState) { modifier = Modifier .fillMaxWidth() .selectable( - selected = selected, onClick = { state.onNewModeSelected(option) }, + selected = selected, + onClick = { state.onNewModeSelected(option) }, ) .padding(start = 20.dp, end = 20.dp, top = 16.dp, bottom = 16.dp), ) { - RadioButton( - selected = selected, onClick = null, + selected = selected, + onClick = null, modifier = Modifier.padding(end = 20.dp), colors = RadioButtonDefaults.colors( unselectedColor = colorResource(id = R.color.icon_secondary), diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt index 0ee7263879..927adfe845 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/QrScanFragment.kt @@ -88,5 +88,4 @@ class QrScanFragment : Fragment(0), ZXingScannerView.ResultHandler { private fun requestPermission() { requestPermissions(arrayOf(Manifest.permission.CAMERA), CameraView.PERMISSION_REQUEST_CODE) } - } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreen.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreen.kt index c9e1597a8d..caefb4546a 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreen.kt @@ -177,4 +177,4 @@ private fun WalletConnectScreenPreview() { ), {}, ) -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreenState.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreenState.kt index e1d915dc5b..e61b4c22e6 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreenState.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/WalletConnectScreenState.kt @@ -21,5 +21,4 @@ data class WcSessionForScreen( ) } } -} - +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/BnbTransactionDialog.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/BnbTransactionDialog.kt index f39ae20dde..3d8c70a937 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/BnbTransactionDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/BnbTransactionDialog.kt @@ -17,7 +17,6 @@ object BnbTransactionDialog { dAppName: String, context: Context, ): AlertDialog { - val message = when (data) { is BinanceMessageData.Trade -> data.tradeData.map { context.getString( @@ -38,7 +37,8 @@ object BnbTransactionDialog { val fullMessage = context.getString( R.string.wallet_connect_bnb_sign_message, - dAppName, message, + dAppName, + message, ) val positiveButtonTitle = context.getText(R.string.common_sign) diff --git a/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt b/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt index 9cedf97017..0e0dc87965 100644 --- a/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt @@ -99,9 +99,9 @@ class HomeFragment : Fragment(), StoreSubscriber { } /* - * !!! Workaround !!! - * Used to roll back the color of icons in the system bars after the stories screen - * */ + * !!! Workaround !!! + * Used to roll back the color of icons in the system bars after the stories screen + */ private fun rollbackStatusBarIconsColor() { val windowInsetsController = WindowInsetsControllerCompat( activity?.window ?: return, diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/content/CurrenciesWeb3Content.kt b/app/src/main/java/com/tangem/tap/features/home/compose/content/CurrenciesWeb3Content.kt index 0f4bae7cff..87cee39eb4 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/content/CurrenciesWeb3Content.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/content/CurrenciesWeb3Content.kt @@ -113,7 +113,6 @@ fun StoriesWeb3Content( ) } } - } } diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt b/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt index 579b4b640c..5dcfbb5f1f 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/content/FirstStoriesContent.kt @@ -83,7 +83,6 @@ fun FirstStoriesContent( val textId = screenState.textId() Box(modifier = Modifier.fillMaxSize()) { - if (screenState.isSplashingTextDisplaying()) { TextAutoSize( modifier = Modifier diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/content/FloatingCardsContent.kt b/app/src/main/java/com/tangem/tap/features/home/compose/content/FloatingCardsContent.kt index ee6e669569..fcb0fce154 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/content/FloatingCardsContent.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/content/FloatingCardsContent.kt @@ -19,7 +19,6 @@ fun FloatingCardsContent( isPaused: Boolean, stepDuration: Int, ) { - val imageBitmap = asImageBitmap(R.drawable.card_placeholder_wallet) val cards = listOf( FloatingCard.first(), diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/views/StoriesProgressBar.kt b/app/src/main/java/com/tangem/tap/features/home/compose/views/StoriesProgressBar.kt index f1b335440c..4692fa91aa 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/views/StoriesProgressBar.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/views/StoriesProgressBar.kt @@ -44,7 +44,6 @@ fun StoriesProgressBar( progress.snapTo(0f) onStepFinish() } - } Row( diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeReducer.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeReducer.kt index a398a92c9c..a998d9a359 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeReducer.kt @@ -8,7 +8,6 @@ object HomeReducer { } private fun internalReduce(action: Action, state: AppState): HomeState { - if (action !is HomeAction) return state.homeState var state = state.homeState diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt index dcc026a041..47caa1b85c 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/OnboardingManager.kt @@ -69,7 +69,8 @@ class OnboardingManager( return balance.copy( currency = Currency.Blockchain( - walletManager.wallet.blockchain, walletManager.wallet.publicKey.derivationPath?.rawPath, + blockchain = walletManager.wallet.blockchain, + derivationPath = walletManager.wallet.publicKey.derivationPath?.rawPath, ), ) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt index c4b34eba62..4135fd556e 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt @@ -159,7 +159,8 @@ class OnboardingNoteFragment : BaseOnboardingFragment() { state.walletBalance.amountToCreateAccount?.let { amount -> val tvBodyMessage = getString( R.string.onboarding_top_up_body_no_account_error, - amount, state.walletBalance.currency.currencySymbol, + amount, + state.walletBalance.currency.currencySymbol, ) tvBody.text = tvBodyMessage } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt index b041615397..a0a6b8b76b 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/otherCards/OnboardingOtherCardsFragment.kt @@ -88,7 +88,6 @@ class OnboardingOtherCardsFragment : BaseOnboardingFragment { - val shouldReturnCardBack = twinCardsState.mode == CreateTwinWalletMode.CreateWallet - && twinCardsState.currentStep != TwinCardsStep.TopUpWallet - && twinCardsState.currentStep != TwinCardsStep.Done + val shouldReturnCardBack = twinCardsState.mode == CreateTwinWalletMode.CreateWallet && + twinCardsState.currentStep != TwinCardsStep.TopUpWallet && + twinCardsState.currentStep != TwinCardsStep.Done if (twinCardsState.showAlert) { val onInterruptPrompt = { diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index 9e63233695..a8e20e6640 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -117,7 +117,7 @@ private fun handleWalletAction(action: Action, state: () -> AppState?, dispatch: when (result) { is CompletionResult.Success -> { Analytics.send(Onboarding.CreateWallet.WalletCreatedSuccessfully()) - //here we must use updated scanResponse after createWallet & derivation + // here we must use updated scanResponse after createWallet & derivation val updatedResponse = globalState.onboardingState.onboardingManager.scanResponse.copy( card = result.data.card, derivedKeys = result.data.derivedKeys, @@ -192,7 +192,8 @@ private fun handleWalletAction(action: Action, state: () -> AppState?, dispatch: } private fun updateScanResponseAfterBackup( - scanResponse: ScanResponse, backupState: BackupState, + scanResponse: ScanResponse, + backupState: BackupState, ): ScanResponse { val card = if (backupState.backupCardsNumber > 0) { val cardsCount = backupState.backupCardsNumber diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt index dec5422ae4..68099fff3f 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt @@ -35,31 +35,31 @@ private fun internalReduce(action: Action, appState: AppState): OnboardingWallet } private object ReducerForGlobalAction { - fun reduce(action: GlobalAction.Onboarding, state: OnboardingWalletState): OnboardingWalletState { - return when (action) { - is GlobalAction.Onboarding.Start -> { - OnboardingWalletState( - backupState = state.backupState.copy( - maxBackupCards = if (action.scanResponse.cardTypesResolver.isSaltPay()) 1 else 2, - canSkipBackup = - if (action.scanResponse.cardTypesResolver.isSaltPay()) false else action.canSkipBackup, - ), - isSaltPay = action.scanResponse.cardTypesResolver.isSaltPay(), - ) - } - is GlobalAction.Onboarding.StartForUnfinishedBackup -> { - OnboardingWalletState( - backupState = state.backupState.copy( - maxBackupCards = action.addedBackupCardsCount, - canSkipBackup = false, - ), - isSaltPay = false, - ) - } - else -> state + fun reduce(action: GlobalAction.Onboarding, state: OnboardingWalletState): OnboardingWalletState { + return when (action) { + is GlobalAction.Onboarding.Start -> { + OnboardingWalletState( + backupState = state.backupState.copy( + maxBackupCards = if (action.scanResponse.cardTypesResolver.isSaltPay()) 1 else 2, + canSkipBackup = + if (action.scanResponse.cardTypesResolver.isSaltPay()) false else action.canSkipBackup, + ), + isSaltPay = action.scanResponse.cardTypesResolver.isSaltPay(), + ) } + is GlobalAction.Onboarding.StartForUnfinishedBackup -> { + OnboardingWalletState( + backupState = state.backupState.copy( + maxBackupCards = action.addedBackupCardsCount, + canSkipBackup = false, + ), + isSaltPay = false, + ) + } + else -> state } } +} private object BackupReducer { @Suppress("ComplexMethod") diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/UtorgWebView.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/UtorgWebView.kt index fccce0450e..2a33de86f4 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/UtorgWebView.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/UtorgWebView.kt @@ -64,8 +64,8 @@ class UtorgWebChromeClient( if (!readyToShowFileChooser()) return false val type: String - if (fileChooserParams != null && fileChooserParams.acceptTypes != null - && fileChooserParams.acceptTypes.isNotEmpty() + if (fileChooserParams != null && fileChooserParams.acceptTypes != null && + fileChooserParams.acceptTypes.isNotEmpty() ) { type = if (!TextUtils.isEmpty(fileChooserParams.acceptTypes[0])) fileChooserParams.acceptTypes[0] else "*/*" this.filePathCallback = filePathCallback diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/dialog/NoFundsForActivationDialog.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/dialog/NoFundsForActivationDialog.kt index 175e53ae38..ace8913879 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/dialog/NoFundsForActivationDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/dialog/NoFundsForActivationDialog.kt @@ -18,7 +18,7 @@ object NoFundsForActivationDialog { return AlertDialog.Builder(context).apply { setTitle(R.string.saltpay_error_no_gas_title) setMessage(R.string.saltpay_error_no_gas_message) - //TODO: SaltPay: change onboarding_supplement_button_kyc_waiting -> to appropriate string + // TODO: SaltPay: change onboarding_supplement_button_kyc_waiting -> to appropriate string setPositiveButton(R.string.onboarding_supplement_button_kyc_waiting) { _, _ -> val config = store.state.globalState.configManager?.config?.saltPayConfig?.zendesk.guard { store.dispatchDebugErrorNotification("SaltPayConfig not initialized") diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt index a2194e9568..a8894ae74e 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/redux/OnboardingSaltPayAction.kt @@ -36,4 +36,4 @@ sealed class OnboardingSaltPayAction : Action { data class SetStep(val newStep: SaltPayActivationStep) : OnboardingSaltPayAction() data class SetAmountToClaim(val amount: Amount?) : OnboardingSaltPayAction() data class SetTokenBalance(val balanceValue: BigDecimal) : OnboardingSaltPayAction() -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/ui/OnboardingSaltPayView.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/ui/OnboardingSaltPayView.kt index 16f76fa654..8614da5fd0 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/ui/OnboardingSaltPayView.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/ui/OnboardingSaltPayView.kt @@ -93,7 +93,7 @@ internal class OnboardingSaltPayView( } private fun handleCardArtworks(state: OnboardingWalletState) = with(walletFragment.binding) { - //TODO: SaltPay: remove hardCode + // TODO: SaltPay: remove hardCode if (state.onboardingSaltPayState?.saltPayCardArtworkUrl == null) { imvFrontCard.load(R.drawable.img_salt_pay_visa) { scale(Scale.FILL) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/BackupInfoAdapter.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/BackupInfoAdapter.kt index 3388e72a96..5b62611410 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/BackupInfoAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/BackupInfoAdapter.kt @@ -15,7 +15,9 @@ class BackupInfoAdapter : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BackupInfoViewHolder = BackupInfoViewHolder( ItemBackupInfoAdapterBinding.inflate( - LayoutInflater.from(parent.context), parent, false + LayoutInflater.from(parent.context), + parent, + false ) ) @@ -51,7 +53,7 @@ private val backupInfoSnippets = listOf( R.string.onboarding_wallet_info_subtitle_fourth ), - ) +) class BackupInfoViewHolder(val binding: ItemBackupInfoAdapterBinding) : RecyclerView.ViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index 4086da388e..611c9d8bc4 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -78,7 +78,7 @@ class OnboardingWalletFragment : BaseFragment(R.layout.fragment_onboarding_walle binding.tabLayoutBackupInfo, binding.viewPagerBackupInfo, ) { tab, position -> - //Some implementation + // Some implementation }.attach() (activity as? AppCompatActivity)?.setSupportActionBar(binding.toolbar) @@ -436,4 +436,4 @@ class OnboardingWalletFragment : BaseFragment(R.layout.fragment_onboarding_walle resources.getValue(R.dimen.device_scale_factor_for_twins_welcome, typedValue, true) return typedValue.float } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AccessCodeDialog.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AccessCodeDialog.kt index c8b5e3ccb0..9244b75bb8 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AccessCodeDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AccessCodeDialog.kt @@ -65,7 +65,6 @@ class AccessCodeDialog(context: Context) : BottomSheetDialog(context) { store.dispatch(BackupAction.SaveAccessCodeConfirmation(etAccessCode.text.toString())) } } - } fun showError(error: AccessCodeError?) = with(binding!!.layoutBackupAccessCodeSubmit) { diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AddMoreBackupCardsDialog.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AddMoreBackupCardsDialog.kt index 950a2eb59e..f8b2c0bf66 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AddMoreBackupCardsDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AddMoreBackupCardsDialog.kt @@ -16,7 +16,6 @@ object AddMoreBackupCardsDialog { store.dispatch(BackupAction.ShowAccessCodeInfoScreen) } setNegativeButton(R.string.common_cancel) { _, _ -> - } setOnDismissListener { store.dispatch(GlobalAction.HideDialog) diff --git a/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt b/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt index 5d6c113e49..1a0c640c1a 100644 --- a/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt +++ b/app/src/main/java/com/tangem/tap/features/saveWallet/ui/components/SaveWalletScreenContent.kt @@ -62,7 +62,7 @@ internal fun SaveWalletScreenContent( } @Composable -private fun Header(onCloseClick: () -> Unit, ) { +private fun Header(onCloseClick: () -> Unit) { Column( modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing8), diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt index 33a7313b5d..7a94dce2a8 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt @@ -6,12 +6,17 @@ import com.tangem.common.services.Result import com.tangem.tap.common.redux.AppState import com.tangem.tap.domain.PayIdManager import com.tangem.tap.domain.isPayIdSupported -import com.tangem.tap.features.send.redux.* +import com.tangem.tap.features.send.redux.AddressPayIdActionUi +import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.AddressVerification.SetAddressError import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.AddressVerification.SetWalletAddress import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.Error import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.PayIdVerification.SetPayIdError import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.PayIdVerification.SetPayIdWalletAddress +import com.tangem.tap.features.send.redux.AmountAction +import com.tangem.tap.features.send.redux.AmountActionUi +import com.tangem.tap.features.send.redux.FeeAction +import com.tangem.tap.features.send.redux.TransactionExtrasAction import com.tangem.tap.scope import com.tangem.tap.store import kotlinx.coroutines.Dispatchers @@ -129,7 +134,7 @@ internal class AddressPayIdMiddleware { } } - val supposedAddress = noSchemeAddress.removeShareUriQuery() //TODO: parse query? + val supposedAddress = noSchemeAddress.removeShareUriQuery() // TODO: parse query? val failReason = isValidBlockchainAddressAndNotTheSameAsWallet(wallet, supposedAddress) if (failReason == null) { @@ -167,7 +172,6 @@ internal class AddressPayIdMiddleware { val addressPayId = input ?: return val wallet = appState?.sendState?.walletManager?.wallet ?: return - val internalDispatcher: (Action) -> Unit = { when (it) { is SetWalletAddress, is SetPayIdWalletAddress -> { @@ -193,7 +197,7 @@ internal class AddressPayIdMiddleware { fun String.splitToMap(firstDelimiter: String, secondDelimiter: String): Map { return this.split(firstDelimiter) - .map { it.split(secondDelimiter) } - .map { it.first() to it.last().toString() } - .toMap() + .map { it.split(secondDelimiter) } + .map { it.first() to it.last().toString() } + .toMap() } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index 45801327ea..c3431d6d45 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -83,7 +83,8 @@ class SendMiddleware { if (transactionData != null) { store.dispatchOnMain( AddressPayIdVerifyAction.AddressVerification.SetWalletAddress( - transactionData.destinationAddress, false, + address = transactionData.destinationAddress, + isUserInput = false, ), ) store.dispatchOnMain(AmountActionUi.SetMainCurrency(MainCurrencyType.CRYPTO)) @@ -104,7 +105,9 @@ class SendMiddleware { } private fun verifyAndSendTransaction( - action: SendActionUi.SendAmountToRecipient, appState: AppState?, dispatch: (Action) -> Unit, + action: SendActionUi.SendAmountToRecipient, + appState: AppState?, + dispatch: (Action) -> Unit, ) { val sendState = appState?.sendState ?: return val walletManager = sendState.walletManager ?: return diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/AmountReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/AmountReducer.kt index 7429910244..727964e0c4 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/AmountReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/AmountReducer.kt @@ -37,21 +37,21 @@ class AmountReducer : SendInternalReducer { val rescaledBalance = sendState.convertExtractCryptoToFiat(state.balanceCrypto, true) val viewValue = state.restoreDecimalSeparator(fiatToSend.stripZeroPlainString()) state.copy( - viewAmountValue = InputViewValue(viewValue), - viewBalanceValue = rescaledBalance.stripZeroPlainString(), - mainCurrency = state.createMainCurrency(currency, currencyCanBeSwitched), - maxLengthOfAmount = sendState.getDecimals(currency), - cursorAtTheSamePosition = false + viewAmountValue = InputViewValue(viewValue), + viewBalanceValue = rescaledBalance.stripZeroPlainString(), + mainCurrency = state.createMainCurrency(currency, currencyCanBeSwitched), + maxLengthOfAmount = sendState.getDecimals(currency), + cursorAtTheSamePosition = false ) } MainCurrencyType.CRYPTO -> { val viewValue = state.restoreDecimalSeparator(state.amountToSendCrypto.stripZeroPlainString()) state.copy( - viewAmountValue = InputViewValue(viewValue), - viewBalanceValue = state.balanceCrypto.stripZeroPlainString(), - mainCurrency = state.createMainCurrency(currency, currencyCanBeSwitched), - maxLengthOfAmount = sendState.getDecimals(currency), - cursorAtTheSamePosition = false + viewAmountValue = InputViewValue(viewValue), + viewBalanceValue = state.balanceCrypto.stripZeroPlainString(), + mainCurrency = state.createMainCurrency(currency, currencyCanBeSwitched), + maxLengthOfAmount = sendState.getDecimals(currency), + cursorAtTheSamePosition = false ) } } @@ -72,10 +72,10 @@ class AmountReducer : SendInternalReducer { } val viewValue = state.restoreDecimalSeparator(amount.stripZeroPlainString()) state.copy( - viewAmountValue = InputViewValue(viewValue, action.isUserInput), - amountToSendCrypto = action.amountCrypto, - cursorAtTheSamePosition = true, - error = null + viewAmountValue = InputViewValue(viewValue, action.isUserInput), + amountToSendCrypto = action.amountCrypto, + cursorAtTheSamePosition = true, + error = null ) } is AmountAction.SetAmountError -> state.copy(error = action.error) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt index ba22cc2af8..a0d911ccc8 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt @@ -68,7 +68,8 @@ private class SendReducer : SendInternalReducer { } private fun handleSendSpecificTransactionAction( - action: SendAction.SendSpecificTransaction, state: SendState, + action: SendAction.SendSpecificTransaction, + state: SendState, ): SendState { return state.copy( externalTransactionData = @@ -116,4 +117,4 @@ private class PrepareSendScreenStatesReducer : SendInternalReducer { internal fun updateLastState(sendState: SendState, lastChangedState: IdStateHolder): SendState { sendState.lastChangedStates.add(lastChangedState.stateId) return sendState -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/TransactionExtrasReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/TransactionExtrasReducer.kt index 5265a3c789..b59ed31979 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/TransactionExtrasReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/TransactionExtrasReducer.kt @@ -45,7 +45,8 @@ class TransactionExtrasReducer : SendInternalReducer { } else { TransactionExtrasState( xrpDestinationTag = XrpDestinationTagState( - InputViewValue("$tag", false), tag, + viewFieldValue = InputViewValue("$tag", false), + tag = tag, ), ) } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt index 90e22a0e9e..29a6b2e210 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt @@ -6,51 +6,51 @@ enum class ReceiptLayoutType { } data class ReceiptState( - val visibleTypeOfReceipt: ReceiptLayoutType? = null, - val fiat: ReceiptFiat? = null, - val crypto: ReceiptCrypto? = null, - val tokenFiat: ReceiptTokenFiat? = null, - val tokenCrypto: ReceiptTokenCrypto? = null, - val mainCurrency: MainCurrency? = null + val visibleTypeOfReceipt: ReceiptLayoutType? = null, + val fiat: ReceiptFiat? = null, + val crypto: ReceiptCrypto? = null, + val tokenFiat: ReceiptTokenFiat? = null, + val tokenCrypto: ReceiptTokenCrypto? = null, + val mainCurrency: MainCurrency? = null ) : SendScreenState { override val stateId: StateId = StateId.RECEIPT } data class ReceiptSymbols( - val fiat: String, - val crypto: String, - val token: String? = null + val fiat: String, + val crypto: String, + val token: String? = null ) data class ReceiptFiat( - val amountFiat: String, - val feeFiat: String, - val totalFiat: String, - val willSentCrypto: String, - val symbols: ReceiptSymbols + val amountFiat: String, + val feeFiat: String, + val totalFiat: String, + val willSentCrypto: String, + val symbols: ReceiptSymbols ) data class ReceiptCrypto( - val amountCrypto: String, - val feeCrypto: String, - val totalCrypto: String, - val feeFiat: String, - val willSentFiat: String, - val symbols: ReceiptSymbols + val amountCrypto: String, + val feeCrypto: String, + val totalCrypto: String, + val feeFiat: String, + val willSentFiat: String, + val symbols: ReceiptSymbols ) data class ReceiptTokenCrypto( - val amountToken: String, - val feeCoin: String, - val totalFiat: String, - val symbols: ReceiptSymbols + val amountToken: String, + val feeCoin: String, + val totalFiat: String, + val symbols: ReceiptSymbols ) data class ReceiptTokenFiat( - val amountFiat: String, - val feeFiat: String, - val totalFiat: String, - val willSentToken: String, - val willSentFeeCoin: String, - val symbols: ReceiptSymbols + val amountFiat: String, + val feeFiat: String, + val totalFiat: String, + val willSentToken: String, + val willSentFeeCoin: String, + val symbols: ReceiptSymbols ) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt index 6226a2b1a9..b74c5de850 100644 --- a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt +++ b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt @@ -72,7 +72,6 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : @Suppress("ComplexMethod") private fun handleTransactionExtrasState(fg: SendFragment, infoState: TransactionExtrasState) = with(fg.binding.lSendAddressPayid) { - fun showView(view: View, info: Any?) { view.show(info != null) } @@ -298,7 +297,6 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : else -> {} } - when (state.visibleTypeOfReceipt) { ReceiptLayoutType.FIAT -> { val receipt = state.fiat ?: return diff --git a/app/src/main/java/com/tangem/tap/features/shop/redux/ShopMiddleware.kt b/app/src/main/java/com/tangem/tap/features/shop/redux/ShopMiddleware.kt index 22073f9236..56e2b8507a 100644 --- a/app/src/main/java/com/tangem/tap/features/shop/redux/ShopMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/shop/redux/ShopMiddleware.kt @@ -27,7 +27,6 @@ class ShopMiddleware { @Suppress("LongMethod", "ComplexMethod") private fun handle(action: Action) { - val shopState = store.state.shopState if (action is NavigationAction.NavigateTo && action.screen == AppScreen.Shop) { @@ -109,7 +108,6 @@ private fun handle(action: Action) { ShopAction.CheckIfGooglePayAvailable.Failure } store.dispatchOnMain(newAction) - } } ShopAction.StartWebCheckout -> { diff --git a/app/src/main/java/com/tangem/tap/features/shop/redux/ShopReducer.kt b/app/src/main/java/com/tangem/tap/features/shop/redux/ShopReducer.kt index 633afe5727..8a97a1a58c 100644 --- a/app/src/main/java/com/tangem/tap/features/shop/redux/ShopReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/shop/redux/ShopReducer.kt @@ -8,7 +8,6 @@ object ShopReducer { @Suppress("ComplexMethod") private fun internalReduce(action: Action, state: ShopState): ShopState { - if (action !is ShopAction) return state return when (action) { @@ -25,7 +24,8 @@ private fun internalReduce(action: Action, state: ShopState): ShopState { } ShopAction.StartWebCheckout -> state ShopAction.ApplyPromoCode.InvalidPromoCode -> state.copy( - promoCode = null, promoCodeLoading = false, + promoCode = null, + promoCodeLoading = false, ) is ShopAction.ApplyPromoCode.Success -> { state.copy( @@ -33,7 +33,7 @@ private fun internalReduce(action: Action, state: ShopState): ShopState { availableProducts = action.products, promoCodeLoading = false, - ) + ) } is ShopAction.SelectProduct -> { state.copy( diff --git a/app/src/main/java/com/tangem/tap/features/shop/redux/ShopState.kt b/app/src/main/java/com/tangem/tap/features/shop/redux/ShopState.kt index a4ead917a3..ebbbb7cb79 100644 --- a/app/src/main/java/com/tangem/tap/features/shop/redux/ShopState.kt +++ b/app/src/main/java/com/tangem/tap/features/shop/redux/ShopState.kt @@ -15,11 +15,11 @@ data class ShopState( get() = availableProducts.firstOrNull { it.type == selectedProduct }?.totalSum?.finalValue val priceBeforeDiscount: String? - get() { - val totalSum = availableProducts.firstOrNull { it.type == selectedProduct }?.totalSum - if (totalSum?.finalValue != totalSum?.beforeDiscount) { - return totalSum?.beforeDiscount + get() { + val totalSum = availableProducts.firstOrNull { it.type == selectedProduct }?.totalSum + if (totalSum?.finalValue != totalSum?.beforeDiscount) { + return totalSum?.beforeDiscount + } + return null } - return null - } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt b/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt index dd0110b605..fb7db8ea33 100644 --- a/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt @@ -164,7 +164,6 @@ class ShopFragment : BaseStoreFragment(R.layout.fragment_shop), StoreSubscriber< tvTotalBeforeDiscount.text = state.priceBeforeDiscount pbPrice.show(state.total == null) - } private fun handlePromoCodeState(state: ShopState) = with(binding) { diff --git a/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/AddCustomTokenFragment.kt b/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/AddCustomTokenFragment.kt index 6cd4e7659a..2a41a990b6 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/AddCustomTokenFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/AddCustomTokenFragment.kt @@ -64,7 +64,6 @@ class AddCustomTokenFragment : BaseStoreFragment(R.layout.view_compose_fragment) ) { AddCustomTokenScreen(state, closePopupTrigger) } - } } } diff --git a/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/HangingOverKeyboardView.kt b/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/HangingOverKeyboardView.kt index 4e251f0838..ceae8063fa 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/HangingOverKeyboardView.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/addCustomToken/compose/HangingOverKeyboardView.kt @@ -20,9 +20,8 @@ fun HangingOverKeyboardView( modifier: Modifier = Modifier, keyboardState: State, spaceBetweenKeyboard: Dp = 0.dp, - content: @Composable() (BoxScope.() -> Unit) + content: @Composable (BoxScope.() -> Unit) ) { - val context = LocalContext.current val padding = when (keyboardState.value) { Keyboard.Closed -> 0.dp diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt index 79f171b03f..39ac838653 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensAction.kt @@ -21,11 +21,13 @@ sealed class TokensAction : Action { object Failure : TokensAction() } - data class LoadMore(val scanResponse: ScanResponse? = null + data class LoadMore( + val scanResponse: ScanResponse? = null ) : TokensAction() data class SetAddedCurrencies( - val wallets: List, val derivationStyle: DerivationStyle? + val wallets: List, + val derivationStyle: DerivationStyle? ) : TokensAction() data class SaveChanges( diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt index 7c513d06de..606ee227cc 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensMiddleware.kt @@ -63,8 +63,8 @@ class TokensMiddleware { ) } is TokensAction.LoadMore -> { - if (store.state.tokensState.needToLoadMore - && store.state.tokensState.currencies.isNotEmpty() + if (store.state.tokensState.needToLoadMore && + store.state.tokensState.currencies.isNotEmpty() ) { handleLoadCurrencies(action.scanResponse) } @@ -91,7 +91,6 @@ class TokensMiddleware { ) scope.launch { - val loadCoinsResult = if (newSearchInput == null) { loadCoinsService.getSupportedTokens( isTestcard, @@ -101,7 +100,10 @@ class TokensMiddleware { ) } else { loadCoinsService.getSupportedTokens( - isTestcard, supportedBlockchains, 0, newSearchInput.ifBlank { null }, + isTestNet = isTestcard, + supportedBlockchains = supportedBlockchains, + page = 0, + searchInput = newSearchInput.ifBlank { null }, ) } when (loadCoinsResult) { @@ -110,13 +112,13 @@ class TokensMiddleware { .filter(supportedBlockchains.toSet()) store.dispatchOnMain( TokensAction.LoadCurrencies.Success( - currencies, loadCoinsResult.data.moreAvailable, + currencies, + loadCoinsResult.data.moreAvailable, ), ) } is Result.Failure -> store.dispatchOnMain(TokensAction.LoadCurrencies.Failure) } - } } @@ -149,8 +151,8 @@ class TokensMiddleware { ) @Suppress("ComplexCondition") - if (tokensToAdd.isEmpty() && tokensToRemove.isEmpty() - && blockchainsToAdd.isEmpty() && blockchainsToRemove.isEmpty() + if (tokensToAdd.isEmpty() && tokensToRemove.isEmpty() && + blockchainsToAdd.isEmpty() && blockchainsToRemove.isEmpty() ) { store.dispatchDebugErrorNotification("Nothing to save") store.dispatchOnMain(NavigationAction.PopBackTo()) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt index 336d8a7982..e8ab2383d8 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/redux/TokensReducer.kt @@ -33,7 +33,6 @@ private fun internalReduce(action: Action, state: AppState): TokensState { ) } is TokensAction.SetAddedCurrencies -> { - tokensState.copy( addedBlockchains = action.wallets.toNonCustomBlockchains(action.derivationStyle), addedTokens = action.wallets.toNonCustomTokensWithBlockchains(action.derivationStyle), diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesScreen.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesScreen.kt index c069e5feba..88cc970852 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesScreen.kt @@ -131,7 +131,6 @@ fun CurrenciesScreen( ) } } - } } @@ -225,7 +224,6 @@ private fun AnalyticsParam.CurrencyType.sendOff() { @Composable fun SaveChangesButton(keyboardState: Keyboard, onSaveChanges: () -> Unit) { - val padding = if (keyboardState is Keyboard.Opened) { LocalContext.current.pixelsToDp(keyboardState.height) } else { diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesWarning.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesWarning.kt index d102ebda9f..bfd230a1c7 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesWarning.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrenciesWarning.kt @@ -29,8 +29,7 @@ fun CurrenciesWarning() { color = Color(0xFFF2F2F2), shape = RoundedCornerShape(10.dp), ), - ) - { + ) { val warning = stringResource(id = R.string.alert_manage_tokens_addresses_message) val end = warning.indexOf(" ") val spanStyles = listOf( diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrencyPlaceholderIcon.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrencyPlaceholderIcon.kt index cb00117ffa..c62f31075e 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrencyPlaceholderIcon.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/CurrencyPlaceholderIcon.kt @@ -16,7 +16,6 @@ import androidx.compose.ui.unit.sp @Composable fun CurrencyPlaceholderIcon(id: String) { - val letterColor: Color = Color.White val circleColor: Color = Color.Black @@ -24,8 +23,7 @@ fun CurrencyPlaceholderIcon(id: String) { contentAlignment = Alignment.Center, modifier = Modifier .background(circleColor, shape = CircleShape) - ) - { + ) { Text( text = id.firstOrNull()?.titlecase() ?: "", textAlign = TextAlign.Center, diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt index 5f3ccb4e18..1c5ba31d04 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/ListOfCurrencies.kt @@ -31,7 +31,6 @@ fun ListOfCurrencies( onNetworkItemClick: (ContractAddress) -> Unit, onLoadMore: () -> Unit, ) { - val expandedCurrencies = remember { mutableStateOf(listOf("")) } val onCurrencyClick = { currencyId: String -> diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt index e202018a5a..cc8562ac62 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt @@ -155,7 +155,6 @@ private fun NetworksRow( ) Spacer(Modifier.size(5.dp)) } - } } else { BlockchainNetworkItem( diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/NetworkItem.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/NetworkItem.kt index 8c195a0214..cf744085ba 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/NetworkItem.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/NetworkItem.kt @@ -165,7 +165,6 @@ private fun prepareNetworkNameSpannableText( blockchain: Blockchain, contractAddress: String?, ): AnnotatedString { - val blockchainName = blockchain.fullNameWithoutTestnet.uppercase() val additionalText = if (contractAddress == null) "MAIN" else blockchain.getNetworkName().uppercase() diff --git a/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt b/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt index f2cd8d24b1..0e3aea8db6 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt @@ -26,7 +26,7 @@ data class PendingTransaction( val currency: String = transactionData.amount.currencySymbol - fun nullIfUnknown(address: String):String? = if (address == "unknown") null else address + fun nullIfUnknown(address: String): String? = if (address == "unknown") null else address } enum class PendingTransactionType { Incoming, Outgoing, Unknown } @@ -99,7 +99,6 @@ fun Wallet.hasSendableAmountsOrPendingTransactions(): Boolean { fun Wallet.isSendableAmount(type: AmountType): Boolean { return amounts[type]?.isAboveZero() == true - } fun Wallet.isSendableAmount(token: Token): Boolean { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt index 44872ab399..c7cffcb201 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt @@ -81,7 +81,8 @@ sealed class WalletAction : Action { ) : MultiWallet() data class SaveCurrencies( - val blockchainNetworks: List, val card: CardDTO? = null, + val blockchainNetworks: List, + val card: CardDTO? = null, ) : MultiWallet() data class TokenLoaded( @@ -126,7 +127,8 @@ sealed class WalletAction : Action { } data class LoadFiatRate( - val wallet: Wallet? = null, val coinsList: List? = null, + val wallet: Wallet? = null, + val coinsList: List? = null, ) : WalletAction() { data class Success( val fiatRates: Map, 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 b5fdfafa3c..e3ee5ec356 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 @@ -190,8 +190,8 @@ data class WalletState( return when (val currency = walletData.currency) { is Currency.Blockchain -> { val walletStores = walletsStores.filterNot { - it.blockchainNetwork.blockchain == currency.blockchain - && it.blockchainNetwork.derivationPath == currency.derivationPath + it.blockchainNetwork.blockchain == currency.blockchain && + it.blockchainNetwork.derivationPath == currency.derivationPath } copy(walletsStores = walletStores) .updateTotalBalance() diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt index a9b2f6fb7c..78fbe2eae1 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt @@ -87,9 +87,9 @@ private fun List.mapToReduxModel( fiatRateString = fiatRateFormatted, pendingTransactions = status.pendingTransactions, mainButton = WalletMainButton.SendButton( - enabled = !blockchainAmountValue.isZero() - && !status.amount.isZero() - && status.pendingTransactions.isEmpty(), + enabled = !blockchainAmountValue.isZero() && + !status.amount.isZero() && + status.pendingTransactions.isEmpty(), ), walletRent = walletRent?.let { WalletRent( diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt index 10b3fff7cf..b3957806f4 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt @@ -44,7 +44,9 @@ import java.math.BigDecimal class MultiWalletMiddleware { @Suppress("LongMethod", "ComplexMethod") fun handle( - action: WalletAction.MultiWallet, walletState: WalletState?, globalState: GlobalState?, + action: WalletAction.MultiWallet, + walletState: WalletState?, + globalState: GlobalState?, ) { val globalState = globalState ?: return @@ -70,7 +72,6 @@ class MultiWalletMiddleware { val currencies: List = (walletState?.currencies ?: emptyList()) + action.blockchain.toCurrencies() - if (action.save && globalState.scanResponse != null) { scope.launch { userTokensRepository.saveUserTokens( @@ -92,7 +93,8 @@ class MultiWalletMiddleware { ) store.dispatch( WalletAction.LoadWallet( - action.blockchain, action.walletManager, + blockchain = action.blockchain, + walletManager = action.walletManager, ), ) } @@ -227,8 +229,10 @@ class MultiWalletMiddleware { } private fun addTokens( - tokens: List, blockchainNetwork: BlockchainNetwork, - walletState: WalletState?, globalState: GlobalState?, + tokens: List, + blockchainNetwork: BlockchainNetwork, + walletState: WalletState?, + globalState: GlobalState?, save: Boolean, ) { if (tokens.isEmpty()) return @@ -249,7 +253,9 @@ class MultiWalletMiddleware { WalletAction.LoadFiatRate( coinsList = tokens.map { token -> Currency.Token( - token, blockchainNetwork.blockchain, blockchainNetwork.derivationPath, + token, + blockchainNetwork.blockchain, + blockchainNetwork.derivationPath, ) }, ), diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 4ff0929fd3..c47055fc46 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -345,9 +345,9 @@ class WalletMiddleware { } private fun showSaveWalletIfNeeded() { - if (preferencesStorage.shouldShowSaveUserWalletScreen - && tangemSdkManager.canUseBiometry - && store.state.navigationState.backStack.lastOrNull() == AppScreen.Wallet + if (preferencesStorage.shouldShowSaveUserWalletScreen && + tangemSdkManager.canUseBiometry && + store.state.navigationState.backStack.lastOrNull() == AppScreen.Wallet ) { store.dispatchOnMain(NavigationAction.NavigateTo(AppScreen.SaveWallet)) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt index 93bae202ee..86a92f276a 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt @@ -138,15 +138,16 @@ class MultiWalletReducer { else -> BalanceStatus.VerifiedOnline } val tokenWalletData = state.getWalletData(currency) - val isTokenSendButtonEnabled = tokenWalletData?.shouldEnableTokenSendButton() == true - && pendingTransactions.isEmpty() + val isTokenSendButtonEnabled = tokenWalletData?.shouldEnableTokenSendButton() == true && + pendingTransactions.isEmpty() val newTokenWalletData = tokenWalletData?.copy( currencyData = tokenWalletData.currencyData.copy( status = tokenBalanceStatus, amount = action.amount.value, amountFormatted = action.amount.value?.toFormattedCurrencyString( - action.amount.decimals, action.amount.currencySymbol, + decimals = action.amount.decimals, + currency = action.amount.currencySymbol, ), fiatAmountFormatted = tokenWalletData.fiatRate?.let { action.amount.value?.toFiatString(it, store.state.globalState.appCurrency.symbol) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt index dc01666309..fe44bbbdaf 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/OnWalletLoadedReducer.kt @@ -90,8 +90,8 @@ class OnWalletLoadedReducer { val tokenFiatAmountFormatted = tokenFiatAmount?.toFormattedFiatValue(fiatCurrency.symbol) ?: UNKNOWN_AMOUNT_SIGN - val isTokenSendButtonEnabled = tokenWalletData?.shouldEnableTokenSendButton() == true - && pendingTransactions.isEmpty() + val isTokenSendButtonEnabled = tokenWalletData?.shouldEnableTokenSendButton() == true && + pendingTransactions.isEmpty() tokenWalletData?.copy( currencyData = tokenWalletData.currencyData.copy( status = tokenBalanceStatus, @@ -116,22 +116,19 @@ class OnWalletLoadedReducer { private fun onSingleWalletLoaded(wallet: Wallet, walletState: WalletState): WalletState { if (wallet.blockchain != walletState.primaryBlockchain) return walletState - val fiatCurrencyName = store.state.globalState.appCurrency.code val token = wallet.getFirstToken() val tokenData = if (token != null) { val tokenAmount = wallet.getTokenAmount(token) if (tokenAmount != null) { val tokenFiatRate = walletState.primaryWallet?.currencyData?.token?.fiatRate - val tokenFiatAmount = - tokenFiatRate?.let { tokenAmount.value?.toFiatString(it, fiatCurrencyName) } + val tokenFiatAmount = tokenFiatRate?.let { tokenAmount.value?.toFiatString(it, fiatCurrencyName) } TokenData( amount = tokenAmount.value ?: BigDecimal.ZERO, - tokenSymbol = tokenAmount.currencySymbol, fiatAmountFormatted = tokenFiatAmount, + tokenSymbol = tokenAmount.currencySymbol, + fiatAmountFormatted = tokenFiatAmount, fiatAmount = tokenFiatRate?.let { tokenAmount.value?.toFiatValue(tokenFiatRate) }, - amountFormatted = tokenAmount.value?.toFormattedCurrencyString( - token.decimals, token.symbol, - ) ?: "", + amountFormatted = tokenAmount.value?.toFormattedCurrencyString(token.decimals, token.symbol) ?: "", ) } else { null @@ -172,7 +169,8 @@ class OnWalletLoadedReducer { val updatedStore = walletState.getWalletStore(walletData?.currency)?.updateWallets(wallets) return walletState.updateWalletStore(updatedStore).copy( - state = ProgressState.Done, error = null, + state = ProgressState.Done, + error = null, ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt index 796f5e1a57..b99614de7b 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt @@ -45,7 +45,6 @@ object WalletReducer { @Suppress("LongMethod", "ComplexMethod") private fun internalReduce(action: Action, state: AppState, appStateHolder: AppStateHolder): WalletState { - val multiWalletReducer = MultiWalletReducer() val onWalletLoadedReducer = OnWalletLoadedReducer() val appCurrencyReducer = AppCurrencyReducer() @@ -255,7 +254,8 @@ private fun internalReduce(action: Action, state: AppState, appStateHolder: AppS .map { it.copy( currencyData = it.currencyData.copy( - status = BalanceStatus.Unreachable, errorMessage = message, + status = BalanceStatus.Unreachable, + errorMessage = message, ), ) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt index f4f1874710..45e23edca6 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt @@ -53,7 +53,6 @@ class BalanceWidget( @Suppress("LongMethod", "ComplexMethod") fun setup() { - when (data.status) { BalanceStatus.Loading -> { with(binding) { @@ -65,7 +64,6 @@ class BalanceWidget( lBalance.tvAmount.text = "" } - showStatus(R.id.tv_status_loading) if (data.token != null) { @@ -130,7 +128,8 @@ class BalanceWidget( tvErrorDescriptions.text = fragment.getString( R.string.no_account_generic, - data.amountToCreateAccount, data.currencySymbol, + data.amountToCreateAccount, + data.currencySymbol, ) } BalanceStatus.UnknownBlockchain -> with(binding.lBalanceError) { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt index a35ba51df9..fdc0f2fd60 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt @@ -401,7 +401,8 @@ class WalletDetailsFragment : Fragment(R.layout.fragment_wallet_details), lBalanceError.tvErrorDescriptions.text = getString( R.string.no_account_generic, - data.amountToCreateAccount, data.currencySymbol, + data.amountToCreateAccount, + data.currencySymbol, ) } else -> {} 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 b1991cf9a9..964cafee2b 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 @@ -217,7 +217,7 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), StoreSubscriber { context.getString( R.string.warning_existential_deposit_message, - message.currencyName, message.edStringValueWithSymbol, + message.currencyName, + message.edStringValueWithSymbol, ) } is WalletWarning.BalanceNotEnoughForFee -> { context.getString( R.string.token_details_send_blocked_fee_format, - message.blockchainFullName, message.blockchainFullName, + message.blockchainFullName, + message.blockchainFullName, ) } is WalletWarning.TransactionInProgress -> { @@ -36,7 +38,8 @@ class WalletWarningConverter( is WalletWarning.Rent -> { context.getString( R.string.solana_rent_warning, - message.walletRent.minRentValue, message.walletRent.rentExemptValue, + message.walletRent.minRentValue, + message.walletRent.rentExemptValue, ) } } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/PendingTransactionsAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/PendingTransactionsAdapter.kt index bafc35673b..6d50e30035 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/PendingTransactionsAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/PendingTransactionsAdapter.kt @@ -13,12 +13,14 @@ import com.tangem.tap.features.wallet.models.PendingTransactionType import com.tangem.wallet.R import com.tangem.wallet.databinding.ItemPendingTransactionBinding -class PendingTransactionsAdapter - : ListAdapter(DiffUtilCallback) { +class PendingTransactionsAdapter : + ListAdapter(DiffUtilCallback) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TransactionsViewHolder { val binding = ItemPendingTransactionBinding.inflate( - LayoutInflater.from(parent.context), parent, false + LayoutInflater.from(parent.context), + parent, + false ) return TransactionsViewHolder(binding) } @@ -29,19 +31,20 @@ class PendingTransactionsAdapter object DiffUtilCallback : DiffUtil.ItemCallback() { override fun areContentsTheSame( - oldItem: PendingTransaction, newItem: PendingTransaction + oldItem: PendingTransaction, + newItem: PendingTransaction ) = oldItem == newItem override fun areItemsTheSame( - oldItem: PendingTransaction, newItem: PendingTransaction + oldItem: PendingTransaction, + newItem: PendingTransaction ) = oldItem == newItem } class TransactionsViewHolder(val binding: ItemPendingTransactionBinding) : - RecyclerView.ViewHolder(binding.root) { + RecyclerView.ViewHolder(binding.root) { fun bind(transaction: PendingTransaction) { - if (transaction.type == PendingTransactionType.Unknown) { binding.root.hide() } @@ -69,7 +72,7 @@ class PendingTransactionsAdapter if (transaction.address != null) { binding.tvPendingTransactionAddress.text = - binding.root.getString(transactionAddressRes, transaction.address) + binding.root.getString(transactionAddressRes, transaction.address) } binding.ivPendingTransaction.setImageDrawable(binding.root.context.getDrawableCompat(image)) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt index fb19f281bc..60c0d65fbc 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt @@ -6,8 +6,8 @@ import androidx.core.view.isVisible import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.tangem.domain.common.TapWorkarounds.derivationStyle import com.tangem.core.analytics.Analytics +import com.tangem.domain.common.TapWorkarounds.derivationStyle import com.tangem.tap.common.analytics.events.Portfolio import com.tangem.tap.common.extensions.getString import com.tangem.tap.common.extensions.hide @@ -28,7 +28,9 @@ class WalletAdapter : ListAdapter(D override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WalletsViewHolder { val layout = ItemCurrencyWalletBinding.inflate( - LayoutInflater.from(parent.context), parent, false, + LayoutInflater.from(parent.context), + parent, + false, ) return WalletsViewHolder(layout) } @@ -39,11 +41,13 @@ class WalletAdapter : ListAdapter(D object DiffUtilCallback : DiffUtil.ItemCallback() { override fun areContentsTheSame( - oldItem: WalletData, newItem: WalletData, + oldItem: WalletData, + newItem: WalletData, ) = oldItem == newItem override fun areItemsTheSame( - oldItem: WalletData, newItem: WalletData, + oldItem: WalletData, + newItem: WalletData, ) = oldItem == newItem } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletDetailWarningMessagesAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletDetailWarningMessagesAdapter.kt index 5164928569..a96101b35a 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletDetailWarningMessagesAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletDetailWarningMessagesAdapter.kt @@ -13,8 +13,8 @@ import com.tangem.wallet.databinding.LayoutWarningCardBinding /** [REDACTED_AUTHOR] */ -class WalletDetailWarningMessagesAdapter - : ListAdapter(DiffUtilCallback()) { +class WalletDetailWarningMessagesAdapter : + ListAdapter(DiffUtilCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WalletDetailsWarningMessageVH { val inflater = LayoutInflater.from(parent.context) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt index 1aca923c9d..090a503220 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WarningMessagesAdapter.kt @@ -28,7 +28,9 @@ class WarningMessagesAdapter : ListAdapter(Dif override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WarningMessageVH { val binding = LayoutWarningCardActionBinding.inflate( - LayoutInflater.from(parent.context), parent, false, + LayoutInflater.from(parent.context), + parent, + false, ) return WarningMessageVH(binding) } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/AmountToSendBottomSheetDialog.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/AmountToSendBottomSheetDialog.kt index ff82942f2b..db783afc52 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/AmountToSendBottomSheetDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/AmountToSendBottomSheetDialog.kt @@ -5,7 +5,11 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.view.ContextThemeWrapper -import androidx.recyclerview.widget.* +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView import com.google.android.material.bottomsheet.BottomSheetDialog import com.tangem.blockchain.common.Amount import com.tangem.tap.common.extensions.toFormattedString @@ -51,13 +55,13 @@ class AmountToSendBottomSheetDialog( } } - -class ChooseAmountAdapter - : ListAdapter(DiffUtilCallback) { +class ChooseAmountAdapter : ListAdapter(DiffUtilCallback) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AmountViewHolder { val binding = ItemWalletAmountToSendBinding.inflate( - LayoutInflater.from(parent.context), parent, false + LayoutInflater.from(parent.context), + parent, + false ) return AmountViewHolder(binding) } @@ -68,11 +72,13 @@ class ChooseAmountAdapter object DiffUtilCallback : DiffUtil.ItemCallback() { override fun areContentsTheSame( - oldItem: Amount, newItem: Amount + oldItem: Amount, + newItem: Amount ) = oldItem.currencySymbol == newItem.currencySymbol override fun areItemsTheSame( - oldItem: Amount, newItem: Amount + oldItem: Amount, + newItem: Amount ) = oldItem == newItem } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/ChooseTradeActionBottomSheetDialog.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/ChooseTradeActionBottomSheetDialog.kt index cb940267b1..1495219c54 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/ChooseTradeActionBottomSheetDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/ChooseTradeActionBottomSheetDialog.kt @@ -32,8 +32,7 @@ class ChooseTradeActionBottomSheetDialog( } binding?.let { - with(it) - { + with(it) { dialogBtnBuy.show(dialogData.buyAllowed) dialogBtnSell.show(dialogData.sellAllowed) dialogBtnSwap.show(dialogData.swapAllowed) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/RussianCardholdersWarningBottomSheetDialog.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/RussianCardholdersWarningBottomSheetDialog.kt index ca665749bb..29bef197e1 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/RussianCardholdersWarningBottomSheetDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/dialogs/RussianCardholdersWarningBottomSheetDialog.kt @@ -20,7 +20,7 @@ class RussianCardholdersWarningBottomSheetDialog( context: Context, private val dialogData: WalletDialog.RussianCardholdersWarningDialog.Data?, ) : BottomSheetDialog - (context) { +(context) { private var binding: DialogRussiansCardholdersWarningBinding? = null diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt index a20ebd503d..3a66140412 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/MultiWalletView.kt @@ -239,7 +239,9 @@ class MultiWalletView : WalletView() { } private fun showErrorState( - binding: FragmentWalletBinding, errorTitle: CharSequence, errorDescription: CharSequence, + binding: FragmentWalletBinding, + errorTitle: CharSequence, + errorDescription: CharSequence, ) = with(binding) { lCardBalance.root.show() with(lCardBalance) { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SaltPayBalanceWidget.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SaltPayBalanceWidget.kt index 3741a4c59d..33a0923029 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SaltPayBalanceWidget.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/wallet/SaltPayBalanceWidget.kt @@ -39,7 +39,7 @@ class SaltPayBalanceWidget( show = data.state != ProgressState.Error, ) if (data.fiatAmount == null) { - //TODO: SaltPay: A tricky solution to the problem with displaying rates + // TODO: SaltPay: A tricky solution to the problem with displaying rates // If the rates are loaded after the walletManager.update() is completely updated, // then this problem can be avoided actionDebouncer(WalletAction.LoadFiatRate()) @@ -60,5 +60,4 @@ class SaltPayBalanceWidget( } } -private val actionDebouncer = debounce(500, mainScope) { store.dispatch(it) } - +private val actionDebouncer = debounce(500, mainScope) { store.dispatch(it) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/ExchangeService.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/ExchangeService.kt index 8d6e8e2187..0309ce9ee9 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/ExchangeService.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/ExchangeService.kt @@ -7,11 +7,11 @@ import com.tangem.tap.features.wallet.models.Currency interface Exchanger { fun isBuyAllowed(): Boolean fun isSellAllowed(): Boolean - fun availableForBuy(currency: Currency):Boolean - fun availableForSell(currency: Currency):Boolean + fun availableForBuy(currency: Currency): Boolean + fun availableForSell(currency: Currency): Boolean } -interface ExchangeService: Feature, Exchanger { +interface ExchangeService : Feature, Exchanger { suspend fun update() companion object { @@ -26,7 +26,7 @@ interface ExchangeService: Feature, Exchanger { } } -interface ExchangeRules: Feature, Exchanger { +interface ExchangeRules : Feature, Exchanger { companion object { fun dummy(): ExchangeRules = object : ExchangeRules { diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt index b326ccbb79..48700b18ea 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/mercuryo/MercuryoService.kt @@ -147,4 +147,4 @@ class MercuryoService( companion object { private const val RESPONSE_SUCCESS_STATUS_CODE = 200 } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayApi.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayApi.kt index 37dbe6185a..27dc8d0c3b 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayApi.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayApi.kt @@ -17,7 +17,6 @@ interface MoonPayApi { @Query("apiKey") moonPayApiKey: String, ): List - companion object { const val MOOONPAY_BASE_URL = "https://api.moonpay.com/" const val MOOONPAY_IP_ADDRESS_REQUEST_URL = "v4/ip_address/" @@ -25,7 +24,6 @@ interface MoonPayApi { } } - @JsonClass(generateAdapter = true) data class MoonPayUserStatus( val isBuyAllowed: Boolean, diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayService.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayService.kt index 645d5182ed..e6752f1272 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayService.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/moonpay/MoonPayService.kt @@ -5,8 +5,8 @@ import android.util.Base64 import com.tangem.blockchain.common.Blockchain import com.tangem.common.services.Result import com.tangem.common.services.performRequest -import com.tangem.domain.common.extensions.withIOContext import com.tangem.datasource.api.common.createRetrofitInstance +import com.tangem.domain.common.extensions.withIOContext import com.tangem.tap.common.extensions.urlEncode import com.tangem.tap.common.redux.global.CryptoCurrencyName import com.tangem.tap.features.wallet.models.Currency @@ -130,7 +130,6 @@ class MoonPayService( .appendPath("transaction_receipt") .appendQueryParameter("transactionId", transactionId).build().toString() return url - } private fun createSignature(data: String): String { diff --git a/app/src/main/java/com/tangem/tap/network/payid/PayIdApi.kt b/app/src/main/java/com/tangem/tap/network/payid/PayIdApi.kt deleted file mode 100644 index 8b00ecefd7..0000000000 --- a/app/src/main/java/com/tangem/tap/network/payid/PayIdApi.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.tangem.tap.network.payid - -import retrofit2.http.GET -import retrofit2.http.POST -import retrofit2.http.Query - -interface PayIdApi { - @GET(API_PAY_ID_TANGEM) - suspend fun getPayId( - @Query("cid") cardId: String, - @Query("key") publicKey: String - ): PayIdResponse - - @POST(API_PAY_ID_TANGEM) - suspend fun setPayId( - @Query("cid") cardId: String, - @Query("key") publicKey: String, - @Query("payid") payId: String, - @Query("address") address: String, - @Query("network") network: String - ): SetPayIdResponse - - companion object { - const val API_PAY_ID_TANGEM = "https://payid.tangem.com/" - } -} diff --git a/app/src/main/java/com/tangem/tap/network/payid/PayIdService.kt b/app/src/main/java/com/tangem/tap/network/payid/PayIdService.kt deleted file mode 100644 index d9cc63b72a..0000000000 --- a/app/src/main/java/com/tangem/tap/network/payid/PayIdService.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.tangem.tap.network.payid - -import com.squareup.moshi.JsonClass -import com.tangem.common.services.Result -import com.tangem.common.services.performRequest -import com.tangem.datasource.api.common.createRetrofitInstance -import retrofit2.Retrofit - -class PayIdService { - - private val payIdApi: PayIdApi by lazy { - provideRetrofit() - .create(PayIdApi::class.java) - } - - suspend fun getPayId(cardId: String, publicKey: String): Result { - return performRequest { payIdApi.getPayId(cardId, publicKey) } - } - - suspend fun setPayId( - cardId: String, publicKey: String, payId: String, address: String, network: String - ): Result { - return performRequest { payIdApi.setPayId(cardId, publicKey, payId, address, network) } - } - - private fun provideRetrofit(): Retrofit = createRetrofitInstance( - baseUrl = "https://tangem.com/", - logEnabled = false, - ) - -} - -@JsonClass(generateAdapter = true) -data class PayIdResponse( - val payId: String -) - -@JsonClass(generateAdapter = true) -data class SetPayIdResponse( - val success: Boolean -) diff --git a/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt index c29c2e92af..77eb280ccc 100644 --- a/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt @@ -73,12 +73,12 @@ class UserWalletManagerImpl( requireNotNull(appStateHolder.userTokensRepository) { "userTokensRepository is null" } if (card != null) { return userTokensRepository.getUserTokens(card) - .any { it.coinId.equals(currency.id) } //todo ensure that its the same ids + .any { it.coinId.equals(currency.id) } // todo ensure that its the same ids } return false } - //todo check is it sync operation + // todo check is it sync operation override fun addToken(currency: Currency) { val action = if (currency is NativeToken) { val card = appStateHolder.getActualCard() @@ -180,7 +180,7 @@ class UserWalletManagerImpl( } private fun createDerivationParams(derivationStyle: DerivationStyle?): DerivationParams? { - //todo clarify if its need to add Custom + // todo clarify if its need to add Custom return derivationStyle?.let { DerivationParams.Default(derivationStyle) } } diff --git a/buildSrc/src/main/java/Dependency.kt b/buildSrc/src/main/java/Dependency.kt index e80049f27b..cee8ea2a90 100644 --- a/buildSrc/src/main/java/Dependency.kt +++ b/buildSrc/src/main/java/Dependency.kt @@ -78,6 +78,7 @@ object Tangem { object Tools { const val composeDetektRules = "ru.kode:detekt-rules-compose:" + Versions.composeDetektRules + const val formattingDetektRules = "io.gitlab.arturbosch.detekt:detekt-formatting:" + Versions.formattingDetektRules } object Test { diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index 2733a9cf9c..4c6cb088ef 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -63,12 +63,13 @@ object Versions { const val tangemBlockchainSdk = "develop-151" // const val tangemBlockchainSdk = "0.0.1" // Keep it! - used for local builds - const val tangemCardSgk = "develop-180" + const val tangemCardSdk = "develop-180" // const val tangemCardSgk = "0.0.1" // Keep it! - used for local builds // endregion Tangem // region Tools const val composeDetektRules = "1.2.2" + const val formattingDetektRules = "1.21.0" // endregion Tools // region Testing diff --git a/buildSrc/src/main/java/detekt-convention.gradle.kts b/buildSrc/src/main/java/detekt-convention.gradle.kts index ad110e1d9c..3509e1a74c 100644 --- a/buildSrc/src/main/java/detekt-convention.gradle.kts +++ b/buildSrc/src/main/java/detekt-convention.gradle.kts @@ -25,4 +25,5 @@ tasks.withType { dependencies { detektPlugins(Tools.composeDetektRules) + detektPlugins(Tools.formattingDetektRules) } \ No newline at end of file diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 8482adf3cc..570cb574d9 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -295,8 +295,8 @@ naming: LambdaParameterNaming: active: false parameterPattern: '[a-z][A-Za-z0-9]*|_' - MatchingDeclarationName: - active: true + MatchingDeclarationName: # Same as FileName + active: false mustBeFirst: true MemberNameEqualsClassName: active: false @@ -528,7 +528,7 @@ style: active: true maxChainedCalls: 5 MaxLineLength: - active: true + active: false # Same as MaximumLineLength maxLineLength: 120 excludePackageStatements: true excludeImportStatements: true @@ -536,13 +536,13 @@ style: MayBeConst: active: true ModifierOrder: - active: true + active: false # Same as ModifierOrdering MultilineLambdaItParameter: active: true NestedClassesVisibility: active: true NewLineAtEndOfFile: - active: false + active: false # This rules overlaps with style>NewLineAtEndOfFile from the standard rules NoTabs: active: true NullableBooleanCheck: @@ -655,6 +655,154 @@ style: excludeImports: - 'java.util.*' +formatting: + active: true + android: true + AnnotationOnSeparateLine: + active: false + AnnotationSpacing: + active: true + ArgumentListWrapping: + active: true + indentSize: 4 + maxLineLength: 120 + BlockCommentInitialStarAlignment: + active: true + ChainWrapping: + active: true + CommentSpacing: + active: true + CommentWrapping: + active: false + indentSize: 4 + DiscouragedCommentLocation: + active: true + EnumEntryNameCase: + active: true + Filename: + active: true # This rules overlaps with naming>MatchingDeclarationName from the standard rules + mustBeFirst: true + FinalNewline: + active: false + insertFinalNewLine: true + FunKeywordSpacing: + active: true + FunctionReturnTypeSpacing: + active: true + FunctionSignature: + active: true + forceMultilineWhenParameterCountGreaterOrEqualThan: 2147483647 + functionBodyExpressionWrapping: 'default' + maxLineLength: 120 + indentSize: 4 + FunctionStartOfBodySpacing: + active: true + FunctionTypeReferenceSpacing: + active: true + ImportOrdering: + active: false + layout: 'java.**,javax.**,kotlin.**,kotlinx.**,android.**,androidx.**,*,^' + Indentation: + active: true + indentSize: 4 + KdocWrapping: + active: true + indentSize: 4 + MaximumLineLength: + excludes: [ "**/assets/**" ] + active: true # This rules overlaps with style>MaxLineLength from the standard rules + maxLineLength: 120 + excludePackageStatements: true + excludeImportStatements: true + excludeCommentStatements: false + ModifierListSpacing: + active: true + ModifierOrdering: + active: true # This rules overlaps with style>ModifierOrder from the standard rules + MultiLineIfElse: + active: true + NoBlankLineBeforeRbrace: + active: true + NoBlankLinesInChainedMethodCalls: + active: true + NoConsecutiveBlankLines: + active: true + NoEmptyClassBody: + active: true + NoEmptyFirstLineInMethodBlock: + active: true + NoLineBreakAfterElse: + active: true + NoLineBreakBeforeAssignment: + active: true + NoMultipleSpaces: + active: true + NoSemicolons: + active: true + NoTrailingSpaces: + active: true + NoUnitReturn: + active: true + NoUnusedImports: + active: true + NoWildcardImports: + active: false + packagesToUseImportOnDemandProperty: 'java.util.*,kotlinx.android.synthetic.**' + NullableTypeSpacing: + active: true + PackageName: + active: true + ParameterListSpacing: + active: true + ParameterListWrapping: + active: true + maxLineLength: 120 + SpacingAroundAngleBrackets: + active: true + SpacingAroundColon: + active: true + SpacingAroundComma: + active: true + SpacingAroundCurly: + active: true + SpacingAroundDot: + active: true + SpacingAroundDoubleColon: + active: true + SpacingAroundKeyword: + active: true + SpacingAroundOperators: + active: true + SpacingAroundParens: + active: true + SpacingAroundRangeOperator: + active: true + SpacingAroundUnaryOperator: + active: true + SpacingBetweenDeclarationsWithAnnotations: + active: true + SpacingBetweenDeclarationsWithComments: + active: false + SpacingBetweenFunctionNameAndOpeningParenthesis: + active: true + StringTemplate: + active: true + TrailingCommaOnCallSite: + active: true + useTrailingCommaOnCallSite: false + TrailingCommaOnDeclarationSite: + active: true + useTrailingCommaOnCallSite: false + TypeArgumentListSpacing: + active: true + TypeParameterListSpacing: + active: true + UnnecessaryParenthesesBeforeTrailingLambda: + active: true + Wrapping: + active: false + indentSize: 4 + compose: ReusedModifierInstance: active: true diff --git a/core/analytics/src/main/java/com/tangem/core/analytics/di/AnalyticsModule.kt b/core/analytics/src/main/java/com/tangem/core/analytics/di/AnalyticsModule.kt index 512686e026..3b12478c96 100644 --- a/core/analytics/src/main/java/com/tangem/core/analytics/di/AnalyticsModule.kt +++ b/core/analytics/src/main/java/com/tangem/core/analytics/di/AnalyticsModule.kt @@ -15,6 +15,6 @@ class AnalyticsModule { @Singleton @Provides fun provideAnalyticsHandler(): AnalyticsEventHandler { - return Analytics //todo replace after refactoring calling Analytics in whole project + return Analytics // todo replace after refactoring calling Analytics in whole project } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt index 6bd52cfecb..1457807f3e 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt @@ -8,7 +8,7 @@ import retrofit2.converter.moshi.MoshiConverterFactory /** [REDACTED_AUTHOR] */ -//TODO("Remove after removing Redux") +// TODO("Remove after removing Redux") @Deprecated("Provide by DI") object MoshiConverter { diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt b/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt index ddf7762dca..f660c1fc47 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt @@ -8,7 +8,7 @@ import retrofit2.Retrofit /** [REDACTED_AUTHOR] */ -//TODO("Remove after removing Redux") +// TODO("Remove after removing Redux") @Deprecated("Use PaymentologyApi") object PaymentologyApiService { val api = createApi() diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt index e9ee67a9e7..50f11aa961 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt @@ -12,7 +12,7 @@ import retrofit2.Retrofit /** [REDACTED_AUTHOR] */ -//TODO("Remove after removing Redux") +// TODO("Remove after removing Redux") @Deprecated("Use TangemTechApi") object TangemTechService { diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CurrenciesResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CurrenciesResponse.kt index 64b69d3240..bab2e292de 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CurrenciesResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CurrenciesResponse.kt @@ -8,10 +8,10 @@ data class CurrenciesResponse( data class Currency( @Json(name = "id") val id: String, - @Json(name = "code") val code: String, // this is an uppercase id + @Json(name = "code") val code: String, // this is an uppercase id @Json(name = "name") val name: String, @Json(name = "rateBTC") val rateBTC: String, - @Json(name = "unit") val unit: String, // $, €, ₽ + @Json(name = "unit") val unit: String, // $, €, ₽ @Json(name = "type") val type: String, ) } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/RatesResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/RatesResponse.kt index 7355984410..c743ff9147 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/RatesResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/RatesResponse.kt @@ -2,7 +2,7 @@ package com.tangem.datasource.api.tangemTech.models import com.squareup.moshi.Json -//rates.keys = networkId's +// rates.keys = networkId's data class RatesResponse( @Json(name = "rates") val rates: Map, ) \ No newline at end of file diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/ButtonsDeprecated.kt b/core/ui/src/main/java/com/tangem/core/ui/components/ButtonsDeprecated.kt index a6aa96ec52..b51b955875 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/ButtonsDeprecated.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/ButtonsDeprecated.kt @@ -150,7 +150,9 @@ fun PrimaryStartIconButton( enabled: Boolean = true, ) { PrimaryButtonRow( - modifier = modifier, enabled = enabled, onClick = onClick, + modifier = modifier, + enabled = enabled, + onClick = onClick, content = { Icon( painter = painterResource(id = iconResId), @@ -184,7 +186,9 @@ fun PrimaryEndIconButton( enabled: Boolean = true, ) { PrimaryButtonRow( - modifier = modifier, enabled = enabled, onClick = onClick, + modifier = modifier, + enabled = enabled, + onClick = onClick, content = { Text(text = text) Spacer(modifier = Modifier.width(dimensionResource(R.dimen.spacing8))) diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt index 2a51162e97..dd8efe92a9 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Cards.kt @@ -83,7 +83,6 @@ fun SmallInfoCardWithWarning( verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { - CardInfoBox(startText = startText, endText = endText) Divider( @@ -195,7 +194,6 @@ fun IconWithTitleAndDescription( horizontalArrangement = Arrangement.Start, verticalAlignment = Alignment.CenterVertically, ) { - Box( modifier = Modifier .background( diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt b/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt index bea33706ab..24434c3c80 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/CurrencyPlaceholderIcon.kt @@ -17,7 +17,6 @@ import com.tangem.core.ui.res.TangemTheme @Composable fun CurrencyPlaceholderIcon(id: String, modifier: Modifier = Modifier) { - val letterColor: Color = TangemTheme.colors.text.primary2 val circleColor: Color = TangemTheme.colors.icon.secondary @@ -25,8 +24,7 @@ fun CurrencyPlaceholderIcon(id: String, modifier: Modifier = Modifier) { contentAlignment = Alignment.Center, modifier = modifier .background(circleColor, shape = CircleShape), - ) - { + ) { Text( text = id.firstOrNull()?.titlecase() ?: "", textAlign = TextAlign.Center, diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt index a7ae0f67b7..072332f939 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Keyboard.kt @@ -28,7 +28,6 @@ fun keyboardAsState(): State { } DisposableEffect(view) { val onGlobalListener = ViewTreeObserver.OnGlobalLayoutListener { - val rect = Rect() view.getWindowVisibleDisplayFrame(rect) val screenHeight = view.rootView.height diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt b/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt index 3feb9ca15c..8d5527b5a6 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/MiddleEllipsisText.kt @@ -22,6 +22,7 @@ import androidx.compose.ui.unit.TextUnit /** * https://stackoverflow.com/questions/69083061/how-to-make-middle-ellipsis-in-text-with-jetpack-compose */ +@Suppress("LongMethod") @Composable fun MiddleEllipsisText( text: String, @@ -71,25 +72,28 @@ fun MiddleEllipsisText( return@SubcomposeLayout layout(0, 0) {} val placeable = subcompose("visible") { val finalText = remember(text, textLayoutResult, constraints.maxWidth) { - if (text.isEmpty() || textLayoutResult.getBoundingBox(text.indices.last).right <= constraints.maxWidth) { + if ( + text.isEmpty() || + textLayoutResult.getBoundingBox(text.indices.last).right <= constraints.maxWidth + ) { // text not including ellipsis fits on the first line. return@remember text } val ellipsisWidth = layoutText.indices.toList() - .takeLast(ellipsisCharactersCount) + .takeLast(ELLIPSIS_CHARACTERS_COUNT) .let widthLet@{ indices -> // fix this bug: https://issuetracker.google.com/issues/197146630 // in this case width is invalid for (i in indices) { val width = textLayoutResult.getBoundingBox(i).width if (width > 0) { - return@widthLet width * ellipsisCharactersCount + return@widthLet width * ELLIPSIS_CHARACTERS_COUNT } } // this should not happen, because // this error occurs only for the last character in the string - throw IllegalStateException("all ellipsis chars have invalid width") + error("all ellipsis chars have invalid width") } val availableWidth = constraints.maxWidth - ellipsisWidth val startCounter = BoundCounter(text, textLayoutResult) { it } @@ -98,8 +102,8 @@ fun MiddleEllipsisText( while (availableWidth - startCounter.width - endCounter.width > 0) { val possibleEndWidth = endCounter.widthWithNextChar() if ( - startCounter.width >= possibleEndWidth - && availableWidth - startCounter.width - possibleEndWidth >= 0 + startCounter.width >= possibleEndWidth && + availableWidth - startCounter.width - possibleEndWidth >= 0 ) { endCounter.addNextChar() } else if (availableWidth - startCounter.widthWithNextChar() - endCounter.width >= 0) { @@ -132,9 +136,9 @@ fun MiddleEllipsisText( } } -private const val ellipsisCharactersCount = 3 -private const val ellipsisCharacter = '.' -private val ellipsisText = List(ellipsisCharactersCount) { ellipsisCharacter }.joinToString(separator = "") +private const val ELLIPSIS_CHARACTERS_COUNT = 3 +private const val ELLIPSIS_CHARACTER = '.' +private val ellipsisText = List(ELLIPSIS_CHARACTERS_COUNT) { ELLIPSIS_CHARACTER }.joinToString(separator = "") private class BoundCounter( private val text: String, diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/SuccessScreen.kt b/core/ui/src/main/java/com/tangem/core/ui/components/SuccessScreen.kt index 29d24784d5..3e767ca2f5 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/SuccessScreen.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/SuccessScreen.kt @@ -47,15 +47,15 @@ import com.tangem.core.ui.res.TangemTheme */ @Composable fun ResultScreenContent( - modifier: Modifier = Modifier, resultMessage: AnnotatedString, + onButtonClick: () -> Unit, + modifier: Modifier = Modifier, @StringRes title: Int = R.string.common_success, resultColor: Color = TangemTheme.colors.icon.accent, @DrawableRes icon: Int = R.drawable.ic_check_24, @DrawableRes secondaryButtonIcon: Int? = null, @StringRes secondaryButtonText: Int? = null, onSecondaryButtonClick: (() -> Unit)? = null, - onButtonClick: () -> Unit, ) { Column( modifier = modifier @@ -93,8 +93,6 @@ fun ResultScreenContent( secondaryButtonText = secondaryButtonText, secondaryButtonIcon = secondaryButtonIcon, onSecondaryButtonClick = onSecondaryButtonClick, - modifier = Modifier - .fillMaxWidth(), ) SpacerH12() } @@ -143,23 +141,22 @@ fun SuccessImage( @Composable private fun SecondaryButtonForResultScreen( - modifier: Modifier = Modifier, @StringRes secondaryButtonText: Int, + onSecondaryButtonClick: () -> Unit, @DrawableRes secondaryButtonIcon: Int? = null, - onSecondaryButtonClick: (() -> Unit), ) { if (secondaryButtonIcon != null) { SecondaryButtonIconLeft( text = stringResource(id = secondaryButtonText), icon = painterResource(id = secondaryButtonIcon), onClick = onSecondaryButtonClick, - modifier = modifier, + modifier = Modifier.fillMaxWidth(), ) } else { SecondaryButton( text = stringResource(id = secondaryButtonText), onClick = onSecondaryButtonClick, - modifier = modifier, + modifier = Modifier.fillMaxWidth(), ) } } @@ -178,7 +175,7 @@ private fun SuccessScreenPreview() { @Preview(showBackground = true) @Composable -fun Preview_SuccessScreenContent_InLightTheme() { +private fun Preview_SuccessScreenContent_InLightTheme() { TangemTheme(isDark = false) { SuccessScreenPreview() } @@ -186,7 +183,7 @@ fun Preview_SuccessScreenContent_InLightTheme() { @Preview(showBackground = true) @Composable -fun Preview_SuccessScreenContent_InDarkTheme() { +private fun Preview_SuccessScreenContent_InDarkTheme() { TangemTheme(isDark = true) { SuccessScreenPreview() } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/Warnings.kt b/core/ui/src/main/java/com/tangem/core/ui/components/Warnings.kt index 989b165a26..a959f0a897 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/Warnings.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/Warnings.kt @@ -25,13 +25,11 @@ import com.tangem.core.ui.res.TangemTheme */ @Composable fun WarningCard( - modifier: Modifier = Modifier, title: String, description: String, icon: @Composable (() -> Unit)? = null, ) { WarningCardSurface( - modifier = modifier, content = { WarningBody( title = title, @@ -54,14 +52,12 @@ fun WarningCard( */ @Composable fun ClickableWarningCard( - modifier: Modifier = Modifier, title: String, description: String, icon: @Composable (() -> Unit)? = null, onClick: () -> Unit, ) { WarningCardSurface( - modifier = modifier, content = { WarningBody(title = title, description = description, icon = icon) { SpacerW12() @@ -88,14 +84,12 @@ fun ClickableWarningCard( */ @Composable fun RefreshableWaringCard( - modifier: Modifier = Modifier, title: String, description: String, icon: @Composable (() -> Unit)? = null, onClick: () -> Unit, ) { WarningCardSurface( - modifier = modifier, content = { WarningBody(title = title, description = description, icon = icon) { SpacerW12() @@ -114,7 +108,6 @@ fun RefreshableWaringCard( @Composable private fun WarningBody( - modifier: Modifier = Modifier, title: String, description: String, icon: @Composable (() -> Unit)? = null, @@ -136,7 +129,6 @@ private fun WarningBody( @OptIn(ExperimentalMaterialApi::class) @Composable private fun WarningCardSurface( - modifier: Modifier = Modifier, onClick: (() -> Unit)? = null, content: @Composable () -> Unit, ) { @@ -146,7 +138,6 @@ private fun WarningCardSurface( elevation = TangemTheme.dimens.elevation2, onClick = { onClick ?: Unit }, enabled = onClick != null, - modifier = modifier, ) { content() } diff --git a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt index 6ccbf2c858..ba83e98119 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/components/appbar/AppBarWithSearch.kt @@ -45,8 +45,8 @@ import com.tangem.core.ui.res.TangemTheme * @param expandedInitially whether the search is expanded on launch * @param tint tint for most of the visual elements of toolbar * @param onBackClick action when close button is clicked - * @param onSearchChanged action when search is modified - * @param onSearchDisplayClosed action when search is closed + * @param onSearchChange action when search is modified + * @param onSearchDisplayClose action when search is closed * * @see Unit, + onSearchChange: (String) -> Unit, + onSearchDisplayClose: () -> Unit, title: String? = null, placeholderSearchText: String = "", expandedInitially: Boolean = false, tint: Color = TangemTheme.colors.icon.primary1, - onBackClick: () -> Unit, - onSearchChanged: (String) -> Unit, - onSearchDisplayClosed: () -> Unit, ) { - val (expanded, onExpandedChanged) = remember { - mutableStateOf(expandedInitially) - } + val (expanded, onExpandedChanged) = remember { mutableStateOf(expandedInitially) } Crossfade(targetState = expanded) { isSearchFieldVisible -> if (isSearchFieldVisible) { ExpandedSearchView( placeholderSearchText = placeholderSearchText, - onSearchChanged = onSearchChanged, - onSearchDisplayClosed = onSearchDisplayClosed, - onExpandedChanged = onExpandedChanged, - modifier = modifier, + onSearchChange = onSearchChange, + onSearchDisplayClose = onSearchDisplayClose, + onExpandedChange = onExpandedChanged, tint = tint, ) } else { CollapsedSearchView( title = title, onBackClick = onBackClick, - onExpandedChanged = onExpandedChanged, - modifier = modifier, + onExpandedChange = onExpandedChanged, tint = tint, ) } @@ -91,14 +86,13 @@ fun ExpandableSearchView( @Composable private fun CollapsedSearchView( - modifier: Modifier = Modifier, - title: String? = null, - onBackClick: () -> Unit, - onExpandedChanged: (Boolean) -> Unit, tint: Color, + onBackClick: () -> Unit, + onExpandedChange: (Boolean) -> Unit, + title: String? = null, ) { Row( - modifier = modifier + modifier = Modifier .background(TangemTheme.colors.background.secondary) .padding(TangemTheme.dimens.spacing16) .fillMaxWidth(), @@ -127,7 +121,7 @@ private fun CollapsedSearchView( tint = tint, contentDescription = null, modifier = Modifier - .clickable { onExpandedChanged(true) }, + .clickable { onExpandedChange(true) }, ) } } @@ -135,10 +129,9 @@ private fun CollapsedSearchView( @Composable private fun ExpandedSearchView( placeholderSearchText: String, - onSearchChanged: (String) -> Unit, - onSearchDisplayClosed: () -> Unit, - onExpandedChanged: (Boolean) -> Unit, - modifier: Modifier = Modifier, + onSearchChange: (String) -> Unit, + onSearchDisplayClose: () -> Unit, + onExpandedChange: (Boolean) -> Unit, tint: Color, ) { val focusManager = LocalFocusManager.current @@ -151,7 +144,7 @@ private fun ExpandedSearchView( var textFieldValue by remember { mutableStateOf(TextFieldValue("", TextRange("".length))) } Row( - modifier = modifier + modifier = Modifier .background(TangemTheme.colors.background.secondary) .fillMaxWidth(), horizontalArrangement = Arrangement.Start, @@ -159,8 +152,8 @@ private fun ExpandedSearchView( ) { IconButton( onClick = { - onExpandedChanged(false) - onSearchDisplayClosed() + onExpandedChange(false) + onSearchDisplayClose() }, ) { Icon( @@ -173,7 +166,7 @@ private fun ExpandedSearchView( value = textFieldValue, onValueChange = { textFieldValue = it - onSearchChanged(it.text) + onSearchChange(it.text) }, singleLine = true, modifier = Modifier @@ -205,8 +198,8 @@ private fun CollapsedSearchViewPreview() { title = "Choose Token", onBackClick = {}, placeholderSearchText = "Search", - onSearchChanged = {}, - onSearchDisplayClosed = {}, + onSearchChange = {}, + onSearchDisplayClose = {}, ) } } @@ -219,10 +212,9 @@ private fun ExpandedSearchViewPreview() { title = "Choose Token", onBackClick = {}, placeholderSearchText = "Search", - onSearchChanged = {}, + onSearchChange = {}, expandedInitially = true, - onSearchDisplayClosed = {}, + onSearchDisplayClose = {}, ) } -} - +} \ No newline at end of file diff --git a/core/ui/src/main/java/com/tangem/core/ui/extensions/Blockchain.kt b/core/ui/src/main/java/com/tangem/core/ui/extensions/Blockchain.kt index 200c7a08ed..352a685b6c 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/extensions/Blockchain.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/extensions/Blockchain.kt @@ -34,5 +34,4 @@ fun getActiveIconRes(blockchainId: String): Int { "DASH" -> R.drawable.img_dash_22 else -> R.drawable.ic_alert_24 } -} - +} \ No newline at end of file diff --git a/core/utils/src/main/java/com/tangem/utils/FormatExtensions.kt b/core/utils/src/main/java/com/tangem/utils/FormatExtensions.kt index 261e6811de..fef3fe945a 100644 --- a/core/utils/src/main/java/com/tangem/utils/FormatExtensions.kt +++ b/core/utils/src/main/java/com/tangem/utils/FormatExtensions.kt @@ -6,9 +6,11 @@ import java.text.DecimalFormat import java.text.DecimalFormatSymbols import java.util.* -//todo determine where to place this extensions +// todo determine where to place this extensions fun BigDecimal.toFormattedString( - decimals: Int, roundingMode: RoundingMode = RoundingMode.DOWN, locale: Locale = Locale.US, + decimals: Int, + roundingMode: RoundingMode = RoundingMode.DOWN, + locale: Locale = Locale.US, ): String { val symbols = DecimalFormatSymbols(locale) val df = DecimalFormat().apply { @@ -36,7 +38,7 @@ fun BigDecimal.toFormattedFiatValue( ): String { val fiatValue = this.setScale(2, RoundingMode.HALF_UP) .let { if (formatWithSpaces) it.formatWithSpaces() else it } - return " ${fiatValue}  $fiatCurrencyName" + return " $fiatValue  $fiatCurrencyName" } @Suppress("MagicNumber") diff --git a/core/utils/src/main/java/com/tangem/utils/coroutines/FeatureCoroutineExceptionHandler.kt b/core/utils/src/main/java/com/tangem/utils/coroutines/FeatureCoroutineExceptionHandler.kt index 6075186448..9b92b1cf18 100644 --- a/core/utils/src/main/java/com/tangem/utils/coroutines/FeatureCoroutineExceptionHandler.kt +++ b/core/utils/src/main/java/com/tangem/utils/coroutines/FeatureCoroutineExceptionHandler.kt @@ -16,9 +16,10 @@ object FeatureCoroutineExceptionHandler { val sw = StringWriter() throwable.printStackTrace(PrintWriter(sw)) val exceptionAsString: String = sw.toString() - //it delegates logging to android Logger, cause cant use timber in java module + // it delegates logging to android Logger, cause cant use timber in java module Logger.getLogger("CoroutineExceptHandler").log( - Level.INFO, "CoroutineException: from: $from, exception: $exceptionAsString", + Level.INFO, + "CoroutineException: from: $from, exception: $exceptionAsString", ) throw throwable } diff --git a/core/utils/src/main/java/com/tangem/utils/detekt/UnusedRequiredComponent.kt b/core/utils/src/main/java/com/tangem/utils/detekt/UnusedRequiredComponent.kt index 05e6016541..273d9dc981 100644 --- a/core/utils/src/main/java/com/tangem/utils/detekt/UnusedRequiredComponent.kt +++ b/core/utils/src/main/java/com/tangem/utils/detekt/UnusedRequiredComponent.kt @@ -25,4 +25,4 @@ package com.tangem.utils.detekt AnnotationTarget.TYPEALIAS ) @Retention(AnnotationRetention.SOURCE) -annotation class UnusedRequiredComponent(val description: String) +annotation class UnusedRequiredComponent(val description: String) \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/DomainWrapped.kt b/domain/src/main/java/com/tangem/domain/DomainWrapped.kt index 3872eeaab1..1b41d0e9cd 100644 --- a/domain/src/main/java/com/tangem/domain/DomainWrapped.kt +++ b/domain/src/main/java/com/tangem/domain/DomainWrapped.kt @@ -6,7 +6,7 @@ import com.tangem.blockchain.common.DerivationStyle [REDACTED_AUTHOR] * Provides a temporary copies of the app module classes, data structures, etc. */ -//TODO: refactoring: : after refactoring they should be unwrapped and moved +// TODO: refactoring: : after refactoring they should be unwrapped and moved // to appropriate parts of module sealed interface DomainWrapped { diff --git a/domain/src/main/java/com/tangem/domain/common/CardDTO.kt b/domain/src/main/java/com/tangem/domain/common/CardDTO.kt index ca1ae08ae2..63695e8fdc 100644 --- a/domain/src/main/java/com/tangem/domain/common/CardDTO.kt +++ b/domain/src/main/java/com/tangem/domain/common/CardDTO.kt @@ -128,6 +128,9 @@ data class CardDTO( .append(type.rawValue ?: "") .toString() + val doubleValue: Double + get() = "$major.$minor".toDouble() + constructor(firmwareVersion: SdkFirmwareVersion) : this( major = firmwareVersion.major, minor = firmwareVersion.minor, @@ -135,9 +138,6 @@ data class CardDTO( type = firmwareVersion.type, ) - val doubleValue: Double - get() = "$major.$minor".toDouble() - override fun compareTo(other: SdkFirmwareVersion): Int = when { major != other.major -> major.compareTo(other.major) minor != other.minor -> minor.compareTo(other.minor) diff --git a/domain/src/main/java/com/tangem/domain/common/ScanResponse.kt b/domain/src/main/java/com/tangem/domain/common/ScanResponse.kt index 9031c1dd89..17f4e1c64a 100644 --- a/domain/src/main/java/com/tangem/domain/common/ScanResponse.kt +++ b/domain/src/main/java/com/tangem/domain/common/ScanResponse.kt @@ -60,4 +60,4 @@ data class ScanResponse( } } -typealias KeyWalletPublicKey = ByteArrayKey +typealias KeyWalletPublicKey = ByteArrayKey \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt b/domain/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt index dfb2fb262e..41764fb5cf 100644 --- a/domain/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt +++ b/domain/src/main/java/com/tangem/domain/common/TangemCardTypesResolver.kt @@ -14,14 +14,16 @@ import com.tangem.domain.common.TapWorkarounds.isStart2Coin import com.tangem.domain.common.TapWorkarounds.isTestCard class TangemCardTypesResolver( - private val card: CardDTO, private val productType: ProductType, private val walletData: WalletData?, + private val card: CardDTO, + private val productType: ProductType, + private val walletData: WalletData?, ) : CardTypesResolver { override fun isTangemNote(): Boolean = productType == ProductType.Note - override fun isTangemWallet(): Boolean = card.settings.isBackupAllowed - && card.settings.isHDWalletAllowed - && card.firmwareVersion >= FirmwareVersion.MultiWalletAvailable - && !card.isSaltPay + override fun isTangemWallet(): Boolean = card.settings.isBackupAllowed && + card.settings.isHDWalletAllowed && + card.firmwareVersion >= FirmwareVersion.MultiWalletAvailable && + !card.isSaltPay override fun isSaltPay(): Boolean = productType == ProductType.SaltPay override fun isSaltPayVisa(): Boolean = card.isSaltPayVisa diff --git a/domain/src/main/java/com/tangem/domain/common/TapWorkarounds.kt b/domain/src/main/java/com/tangem/domain/common/TapWorkarounds.kt index 521d74759c..dabbd0e150 100644 --- a/domain/src/main/java/com/tangem/domain/common/TapWorkarounds.kt +++ b/domain/src/main/java/com/tangem/domain/common/TapWorkarounds.kt @@ -16,7 +16,7 @@ object TapWorkarounds { val CardDTO.isTangemTwins: Boolean get() = TwinsHelper.getTwinCardNumber(cardId) != null - //TODO: replace by reading files from a card + // TODO: replace by reading files from a card val CardDTO.isTangemNote: Boolean get() = tangemNoteBatches.contains(batchId) @@ -65,7 +65,7 @@ object TapWorkarounds { "AB06" to Blockchain.XRP, "AB07" to Blockchain.Bitcoin, "AB08" to Blockchain.Ethereum, - "AB09" to Blockchain.Bitcoin, // new batches for 3.34 + "AB09" to Blockchain.Bitcoin, // new batches for 3.34 "AB10" to Blockchain.Ethereum, "AB11" to Blockchain.Bitcoin, "AB12" to Blockchain.Ethereum, diff --git a/domain/src/main/java/com/tangem/domain/common/extensions/ResultCardSdk.kt b/domain/src/main/java/com/tangem/domain/common/extensions/ResultCardSdk.kt index d3d0f8e112..ea01ed7eaa 100644 --- a/domain/src/main/java/com/tangem/domain/common/extensions/ResultCardSdk.kt +++ b/domain/src/main/java/com/tangem/domain/common/extensions/ResultCardSdk.kt @@ -18,5 +18,4 @@ inline fun CompletionResult.successOr(failureClause: (CompletionResult.Fa is CompletionResult.Success -> this.data is CompletionResult.Failure -> failureClause(this) } -} - +} \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/common/form/Form.kt b/domain/src/main/java/com/tangem/domain/common/form/Form.kt index 7cf9b4e41d..b63423436e 100644 --- a/domain/src/main/java/com/tangem/domain/common/form/Form.kt +++ b/domain/src/main/java/com/tangem/domain/common/form/Form.kt @@ -59,4 +59,4 @@ abstract class BaseDataField( override fun visitDataConverter(dataConverter: FieldDataConverter<*>) { dataConverter.visit(getData()) } -} +} \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenHub.kt b/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenHub.kt index 080b0b2601..ba47bee24f 100644 --- a/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenHub.kt +++ b/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenHub.kt @@ -486,7 +486,8 @@ internal class AddCustomTokenHub : BaseStoreHub("AddCustomT @Throws private fun throwUnAppropriateInitialization(objName: String) { throw AddCustomTokenError.UnAppropriateInitialization( - "AddCustomTokenHub", "$objName must be not NULL", + "AddCustomTokenHub", + "$objName must be not NULL", ) } diff --git a/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenState.kt b/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenState.kt index 8a722f7e52..829077bc70 100644 --- a/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenState.kt +++ b/domain/src/main/java/com/tangem/domain/features/addCustomToken/redux/AddCustomTokenState.kt @@ -210,9 +210,12 @@ data class AddCustomTokenState( .filter { card.isTestCard == it.isTestnet() } val additionalBlockchains = listOf( - Blockchain.Binance, Blockchain.BinanceTestnet, - Blockchain.Solana, Blockchain.SolanaTestnet, - Blockchain.Tron, Blockchain.TronTestnet, + Blockchain.Binance, + Blockchain.BinanceTestnet, + Blockchain.Solana, + Blockchain.SolanaTestnet, + Blockchain.Tron, + Blockchain.TronTestnet, ) val supportedByCard = when (type) { diff --git a/domain/src/main/java/com/tangem/domain/redux/DomainStore.kt b/domain/src/main/java/com/tangem/domain/redux/DomainStore.kt index 8d849a2e82..fbd4fe3735 100644 --- a/domain/src/main/java/com/tangem/domain/redux/DomainStore.kt +++ b/domain/src/main/java/com/tangem/domain/redux/DomainStore.kt @@ -40,4 +40,4 @@ private fun reduce(action: Action, domainState: DomainState?): DomainState { DomainLayer.actionStateLogger.log(reducedStatesByAction) return assembleReducedDomainState -} +} \ No newline at end of file diff --git a/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalAction.kt b/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalAction.kt index d58d26a864..f4256b644e 100644 --- a/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalAction.kt +++ b/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalAction.kt @@ -7,7 +7,7 @@ import org.rekotlin.Action /** [REDACTED_AUTHOR] */ -//TODO: refactoring: is alias for the GlobalAction +// TODO: refactoring: is alias for the GlobalAction sealed class DomainGlobalAction : Action { data class SaveScanNoteResponse(val scanResponse: ScanResponse) : DomainGlobalAction() data class ShowDialog(val stateDialog: DomainDialog?) : DomainGlobalAction() diff --git a/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalHub.kt b/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalHub.kt index 2e255c502b..37f01870cc 100644 --- a/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalHub.kt +++ b/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalHub.kt @@ -12,7 +12,7 @@ import org.rekotlin.Action /** [REDACTED_AUTHOR] */ -//TODO: refactoring: is alias for the GlobalMiddleware and the GlobalReducer +// TODO: refactoring: is alias for the GlobalMiddleware and the GlobalReducer internal class DomainGlobalHub : BaseStoreHub("DomainGlobalHub") { override fun getHubState(storeState: DomainState): DomainGlobalState { diff --git a/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalState.kt b/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalState.kt index c71c7da659..231584ecf6 100644 --- a/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalState.kt +++ b/domain/src/main/java/com/tangem/domain/redux/global/DomainGlobalState.kt @@ -20,4 +20,4 @@ data class DomainGlobalState( data class NetworkServices( val tangemTechService: TangemTechService = TangemTechService, val paymentologyService: PaymentologyApiService = PaymentologyApiService, -) +) \ No newline at end of file diff --git a/domain/src/test/java/com/tangem/domain/features/BlockchainTests.kt b/domain/src/test/java/com/tangem/domain/features/BlockchainTests.kt index b6e967037c..292d9e5e06 100644 --- a/domain/src/test/java/com/tangem/domain/features/BlockchainTests.kt +++ b/domain/src/test/java/com/tangem/domain/features/BlockchainTests.kt @@ -16,7 +16,7 @@ class BlockchainTests { remove(Blockchain.Optimism) } .map { it to Blockchain.fromNetworkId(it.toNetworkId()) } - .mapNotNull { if(it.second == null) it.first else null } + .mapNotNull { if (it.second == null) it.first else null } Truth.assertThat(unimplementedIds).isEmpty() } diff --git a/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt b/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt index 0f0c22b0f0..f991068cd5 100644 --- a/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt +++ b/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt @@ -25,7 +25,10 @@ class ReferralDomainModule { tokensConverter: TokensConverter, ): ReferralInteractor { return ReferralInteractorImpl( - referralRepository, derivationManager, userWalletManager, tokensConverter, + repository = referralRepository, + derivationManager = derivationManager, + userWalletManager = userWalletManager, + tokensConverter = tokensConverter, ) } } \ No newline at end of file diff --git a/features/referral/presentation/src/main/java/com/tangem/feature/referral/models/ReferralStateHolder.kt b/features/referral/presentation/src/main/java/com/tangem/feature/referral/models/ReferralStateHolder.kt index 1270b0df36..90e8def3d6 100644 --- a/features/referral/presentation/src/main/java/com/tangem/feature/referral/models/ReferralStateHolder.kt +++ b/features/referral/presentation/src/main/java/com/tangem/feature/referral/models/ReferralStateHolder.kt @@ -49,4 +49,4 @@ internal data class ReferralStateHolder( val onCopyClicked: () -> Unit, val onShareClicked: () -> Unit, ) -} +} \ No newline at end of file diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt index f7ec74b40b..486b25e1ad 100644 --- a/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt +++ b/features/swap/data/src/main/java/com/tangem/feature/swap/SwapRepositoryImpl.kt @@ -10,11 +10,11 @@ import com.tangem.feature.swap.converters.QuotesConverter import com.tangem.feature.swap.converters.SwapConverter import com.tangem.feature.swap.converters.TokensConverter import com.tangem.feature.swap.domain.SwapRepository +import com.tangem.feature.swap.domain.models.data.AggregatedSwapDataModel import com.tangem.feature.swap.domain.models.domain.ApproveModel import com.tangem.feature.swap.domain.models.domain.Currency import com.tangem.feature.swap.domain.models.domain.QuoteModel import com.tangem.feature.swap.domain.models.domain.SwapDataModel -import com.tangem.feature.swap.domain.models.data.AggregatedSwapDataModel import com.tangem.feature.swap.domain.models.mapErrors import com.tangem.utils.coroutines.CoroutineDispatcherProvider import kotlinx.coroutines.withContext @@ -45,9 +45,11 @@ internal class SwapRepositoryImpl @Inject constructor( } override suspend fun findBestQuote( - networkId: String, fromTokenAddress: String, toTokenAddress: String, + networkId: String, + fromTokenAddress: String, + toTokenAddress: String, amount: - String, + String, ): AggregatedSwapDataModel { return withContext(coroutineDispatcher.io) { try { diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/AllowPermissionsHandlerImpl.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/AllowPermissionsHandlerImpl.kt index e5e25bc327..8f73c36ee7 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/AllowPermissionsHandlerImpl.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/AllowPermissionsHandlerImpl.kt @@ -2,7 +2,7 @@ package com.tangem.feature.swap.domain class AllowPermissionsHandlerImpl : AllowPermissionsHandler { - //todo maybe need to save in store + // todo maybe need to save in store private val allowPermissionsInProgress = mutableSetOf() override fun addAddressToInProgress(tokenAddress: String) { diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt index 0bfe04ae49..11c1e149ed 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt @@ -46,7 +46,7 @@ internal class SwapInteractorImpl @Inject constructor( tokens }.filter { it.symbol != initialCurrency.symbol } - //replace tokens in wallet tokens list with loaded same + // replace tokens in wallet tokens list with loaded same val loadedOnWalletsMap = mutableSetOf() val tokensInWallet = userWalletManager.getUserTokens(networkId) .filter { it.symbol != initialCurrency.symbol } @@ -82,13 +82,13 @@ internal class SwapInteractorImpl @Inject constructor( val searchQueryLowerCase = searchQuery.lowercase() val tokensInWallet = cache.getInWalletTokens() .filter { - it.name.lowercase().contains(searchQueryLowerCase) - || it.symbol.lowercase().contains(searchQueryLowerCase) + it.name.lowercase().contains(searchQueryLowerCase) || + it.symbol.lowercase().contains(searchQueryLowerCase) } val loadedTokens = cache.getLoadedTokens() .filter { - it.name.lowercase().contains(searchQueryLowerCase) - || it.symbol.lowercase().contains(searchQueryLowerCase) + it.name.lowercase().contains(searchQueryLowerCase) || + it.symbol.lowercase().contains(searchQueryLowerCase) } val tokensBalance = userWalletManager.getCurrentWalletTokensBalance(networkId) val appCurrency = userWalletManager.getUserAppCurrency() @@ -420,7 +420,7 @@ internal class SwapInteractorImpl @Inject constructor( return quotesLoadedState.copy( permissionState = PermissionDataState.PermissionReadyForRequest( currency = userWalletManager.getCurrencyByNetworkId(networkId), - amount = "infinite", //FIXME + amount = "infinite", // FIXME walletAddress = getWalletAddress(networkId), spenderAddress = transactionData.toAddress, fee = transactionManager.calculateFee( diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/models/ui/TokensDataState.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/models/ui/TokensDataState.kt index 2fcb993b1d..8d17d05808 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/models/ui/TokensDataState.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/models/ui/TokensDataState.kt @@ -25,4 +25,4 @@ data class TokenWithBalance( data class TokenBalanceData( val amount: String?, val amountEquivalent: String?, -) +) \ No newline at end of file diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/presentation/SwapFragment.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/presentation/SwapFragment.kt index e7080813fa..1d673deed0 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/presentation/SwapFragment.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/presentation/SwapFragment.kt @@ -51,6 +51,7 @@ class SwapFragment : Fragment() { } } + @Suppress("TopLevelComposableFunctions") @Composable private fun ScreenContent(viewModel: SwapViewModel) { Crossfade(targetState = viewModel.currentScreen) { screen -> diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapPermissionBottomSheetContent.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapPermissionBottomSheetContent.kt index 526001e25a..727ae7d2ec 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapPermissionBottomSheetContent.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapPermissionBottomSheetContent.kt @@ -96,13 +96,16 @@ fun SwapPermissionBottomSheetContent( ) SpacerH32() - } } @Composable private fun ApprovalBottomSheetInfo( - currency: String, amount: String, walletAddress: String, spenderAddress: String, fee: String, + currency: String, + amount: String, + walletAddress: String, + spenderAddress: String, + fee: String, ) { Column( modifier = Modifier @@ -114,7 +117,6 @@ private fun ApprovalBottomSheetInfo( ), horizontalAlignment = Alignment.CenterHorizontally, ) { - AmountItem(currency = currency, amount = amount) DividerBottomSheet() WalletAddressItem(walletAddress = walletAddress) @@ -142,7 +144,6 @@ private fun InformationItem(subtitle: String, value: String) { .fillMaxWidth() .padding(TangemTheme.dimens.spacing16), ) { - Text( text = subtitle, color = TangemTheme.colors.text.primary1, diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt index 733c699f43..bbc2c92a36 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreen.kt @@ -39,8 +39,8 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) { sheetContent = { SwapPermissionBottomSheetContent( data = stateHolder.permissionState as? SwapPermissionState.ReadyForRequest, - onCancel = { coroutineScope.launch { bottomSheetScaffoldState.bottomSheetState.collapse() } }, - ) + onCancel = { coroutineScope.launch { bottomSheetScaffoldState.bottomSheetState.collapse() } }, + ) }, scaffoldState = bottomSheetScaffoldState, sheetShape = RoundedCornerShape( @@ -54,8 +54,8 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) { state = stateHolder, onPermissionWarningClick = { coroutineScope.launch { - if (bottomSheetScaffoldState.bottomSheetState.isCollapsed - && stateHolder.permissionState is SwapPermissionState.ReadyForRequest + if (bottomSheetScaffoldState.bottomSheetState.isCollapsed && + stateHolder.permissionState is SwapPermissionState.ReadyForRequest ) { bottomSheetScaffoldState.bottomSheetState.expand() } else { diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt index 045371003d..06d84f65c5 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt @@ -58,7 +58,6 @@ internal fun SwapScreenContent(state: SwapStateHolder, onPermissionWarningClick: .fillMaxSize() .background(color = TangemTheme.colors.background.secondary), ) { - Column( modifier = Modifier .fillMaxWidth() @@ -72,7 +71,6 @@ internal fun SwapScreenContent(state: SwapStateHolder, onPermissionWarningClick: horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing16), ) { - MainInfo(state) FeeItem(feeState = state.fee, currency = state.networkCurrency) @@ -130,7 +128,6 @@ internal fun SwapScreenContent(state: SwapStateHolder, onPermissionWarningClick: color = TangemTheme.colors.text.primary1, modifier = Modifier .fillMaxWidth() - .background(TangemTheme.colors.button.secondary) .clickable { state.onMaxAmountSelected } .padding( @@ -207,7 +204,6 @@ private fun MainInfo(state: SwapStateHolder) { @Composable private fun FeeItem(feeState: FeeState, currency: String) { - val titleString = stringResource(id = R.string.send_fee_label) when (feeState) { is FeeState.Loaded -> { @@ -229,7 +225,8 @@ private fun FeeItem(feeState: FeeState, currency: String) { @Composable private fun SwapWarnings( - warnings: List, onApproveWarningClick: () -> Unit, + warnings: List, + onApproveWarningClick: () -> Unit, ) { Column( modifier = Modifier @@ -322,4 +319,4 @@ private fun SwapScreenContentPreview() { } } -// endregion preview +// endregion preview \ No newline at end of file diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt index bfbf78fd86..43095f4132 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt @@ -38,7 +38,6 @@ import com.valentinilk.shimmer.shimmer @Composable fun SwapSelectTokenScreen(state: SwapSelectTokenStateHolder, onBack: () -> Unit) { - TangemTheme { Scaffold( content = { padding -> @@ -49,8 +48,8 @@ fun SwapSelectTokenScreen(state: SwapSelectTokenStateHolder, onBack: () -> Unit) title = stringResource(R.string.swapping_token_list_your_title), onBackClick = onBack, placeholderSearchText = stringResource(id = R.string.search_tokens_title), - onSearchChanged = state.onSearchEntered, - onSearchDisplayClosed = { state.onSearchEntered("") }, + onSearchChange = state.onSearchEntered, + onSearchDisplayClose = { state.onSearchEntered("") }, ) }, modifier = Modifier.background(color = TangemTheme.colors.background.secondary), @@ -66,8 +65,7 @@ private fun ListOfTokens(state: SwapSelectTokenStateHolder, modifier: Modifier = .fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, - ) { - + ) { itemsIndexed(items = state.tokens) { index, item -> TokenItem(token = item, onTokenClick = { state.onTokenSelected(item.id) }) @@ -82,13 +80,11 @@ private fun ListOfTokens(state: SwapSelectTokenStateHolder, modifier: Modifier = } @Composable -private fun TokenItem(token: TokenToSelect, onTokenClick: (String) -> Unit) { +private fun TokenItem(token: TokenToSelect, onTokenClick: () -> Unit) { Row( modifier = Modifier .fillMaxWidth() - .clickable( - onClick = { onTokenClick(token.id) }, - ) + .clickable(onClick = onTokenClick) .padding( vertical = TangemTheme.dimens.spacing14, horizontal = TangemTheme.dimens.spacing16, @@ -210,9 +206,10 @@ private val tokenNotAvailable = token.copy(available = false) private fun TokenScreenPreview() { SwapSelectTokenScreen( state = SwapSelectTokenStateHolder( - listOf(token, tokenNotAvailable, token), {}, {}, + tokens = listOf(token, tokenNotAvailable, token), + onSearchEntered = {}, + onTokenSelected = {}, ), - ) { - - } + onBack = {}, + ) } \ No newline at end of file diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt index 2c49728c7a..9a64b57259 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/TransactionCard.kt @@ -68,7 +68,6 @@ import com.valentinilk.shimmer.shimmer @Suppress("LongParameterList") @Composable fun TransactionCard( - modifier: Modifier = Modifier, type: TransactionCardType, balance: String, amount: String?, @@ -79,7 +78,6 @@ fun TransactionCard( onChangeTokenClick: (() -> Unit)? = null, ) { Card( - modifier = modifier, shape = RoundedCornerShape(TangemTheme.dimens.radius12), backgroundColor = TangemTheme.colors.background.primary, elevation = TangemTheme.dimens.elevation2, @@ -92,7 +90,6 @@ fun TransactionCard( verticalArrangement = Arrangement.SpaceBetween, horizontalAlignment = Alignment.Start, ) { - Header(balance = balance, type = type) Content( @@ -126,7 +123,6 @@ fun TransactionCard( ) } } - } } @@ -193,7 +189,6 @@ private fun Content( verticalArrangement = Arrangement.SpaceBetween, horizontalAlignment = Alignment.Start, ) { - when (type) { is TransactionCardType.ReceiveCard -> { if (amount != null) { @@ -219,7 +214,7 @@ private fun Content( is TransactionCardType.SendCard -> { AutoSizeTextField( amount = amount ?: "1", - onAmoutChanged = { type.onAmountChanged(it) }, + onAmountChange = { type.onAmountChanged(it) }, ) } } @@ -249,18 +244,16 @@ private fun Content( ) } } - } } @Suppress("MagicNumber") @Composable -private fun AutoSizeTextField(amount: String, onAmoutChanged: (String) -> Unit) { +private fun AutoSizeTextField(amount: String, onAmountChange: (String) -> Unit) { val focusManager = LocalFocusManager.current val textFieldFocusRequester = remember { FocusRequester() } BoxWithConstraints(modifier = Modifier.fillMaxWidth()) { - var shrunkFontSize = TangemTheme.typography.h2.fontSize val calculateIntrinsics = @Composable { ParagraphIntrinsics( @@ -289,12 +282,9 @@ private fun AutoSizeTextField(amount: String, onAmoutChanged: (String) -> Unit) CompositionLocalProvider( LocalTextSelectionColors provides customTextSelectionColors, ) { - BasicTextField( value = amount, - onValueChange = { - onAmoutChanged(it) - }, + onValueChange = onAmountChange, singleLine = true, modifier = Modifier .fillMaxWidth() @@ -334,7 +324,6 @@ fun Token( verticalArrangement = Arrangement.Bottom, horizontalAlignment = Alignment.End, ) { - Box( modifier = Modifier .padding(end = TangemTheme.dimens.spacing16) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt index f99d5d9ac5..764a1d9a85 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt @@ -49,7 +49,7 @@ internal class SwapViewModel @Inject constructor( var uiState: SwapStateHolder by mutableStateOf(stateBuilder.createInitialLoadingState(currency.symbol)) private set - //shows currency order (direct - swap initial to selected, reversed = selected to initial) + // shows currency order (direct - swap initial to selected, reversed = selected to initial) private var isOrderReversed = false private val lastAmount = mutableStateOf(INITIAL_AMOUNT) private var swapRouter: SwapRouter by Delegates.notNull() diff --git a/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt b/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt index f4c84822ed..9d5651b23b 100644 --- a/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt +++ b/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt @@ -50,8 +50,8 @@ interface UserWalletManager { fun getCurrentWalletTokensBalance(networkId: String): Map /** - * Returns selected app currency - */ + * Returns selected app currency + */ fun getUserAppCurrency(): ProxyFiatCurrency /**