Skip to content

Commit d42a876

Browse files
authored
Merge pull request #370 from synonymdev/fix/custom-numpad
refactor: custom numberpad
2 parents 8177510 + 656b829 commit d42a876

39 files changed

+2276
-1357
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ CLAUDE.md
1414

1515
# Secrets
1616
google-services.json
17+
.env
1718
*.keystore
1819
!debug.keystore
1920
keystore.properties

app/detekt-baseline.xml

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@
2323
<ID>ComposableParamOrder:CalculatorCard.kt$CalculatorCard</ID>
2424
<ID>ComposableParamOrder:CalculatorCard.kt$CalculatorCardContent</ID>
2525
<ID>ComposableParamOrder:CalculatorPreviewScreen.kt$CalculatorPreviewScreen</ID>
26-
<ID>ComposableParamOrder:EditInvoiceScreen.kt$EditInvoiceScreen</ID>
2726
<ID>ComposableParamOrder:FactsCard.kt$FactsCard</ID>
2827
<ID>ComposableParamOrder:HeadlineCard.kt$HeadlineCard</ID>
2928
<ID>ComposableParamOrder:HomeScreen.kt$Content</ID>
3029
<ID>ComposableParamOrder:InfoScreenContent.kt$InfoScreenContent</ID>
31-
<ID>ComposableParamOrder:Keyboard.kt$KeyTextButton</ID>
3230
<ID>ComposableParamOrder:Money.kt$MoneyCaptionB</ID>
3331
<ID>ComposableParamOrder:NumberPadTextField.kt$MoneyAmount</ID>
3432
<ID>ComposableParamOrder:OnboardingSlidesScreen.kt$OnboardingSlidesScreen</ID>
@@ -37,8 +35,6 @@
3735
<ID>ComposableParamOrder:ReceiveConfirmScreen.kt$ReceiveConfirmScreen</ID>
3836
<ID>ComposableParamOrder:ReportIssueScreen.kt$ReportIssueScreen</ID>
3937
<ID>ComposableParamOrder:RestoreWalletScreen.kt$MnemonicInputField</ID>
40-
<ID>ComposableParamOrder:SendAmountScreen.kt$SendAmountContent</ID>
41-
<ID>ComposableParamOrder:SendAmountScreen.kt$SendAmountScreen</ID>
4238
<ID>ComposableParamOrder:SheetHost.kt$SheetHost</ID>
4339
<ID>ComposableParamOrder:SpendingAmountScreen.kt$SpendingAmountScreen</ID>
4440
<ID>ComposableParamOrder:SuggestionCard.kt$SuggestionCard</ID>
@@ -89,8 +85,6 @@
8985
<ID>CyclomaticComplexMethod:HomeScreen.kt$@Composable fun HomeScreen( mainUiState: MainUiState, drawerState: DrawerState, rootNavController: NavController, walletNavController: NavHostController, settingsViewModel: SettingsViewModel, walletViewModel: WalletViewModel, appViewModel: AppViewModel, activityListViewModel: ActivityListViewModel, homeViewModel: HomeViewModel = hiltViewModel(), )</ID>
9086
<ID>CyclomaticComplexMethod:HomeScreen.kt$@OptIn(ExperimentalMaterial3Api::class, ExperimentalHazeMaterialsApi::class) @Composable private fun Content( mainUiState: MainUiState, homeUiState: HomeUiState, rootNavController: NavController, walletNavController: NavController, drawerState: DrawerState, hazeState: HazeState = rememberHazeState(), latestActivities: List&lt;Activity&gt;?, onClickProfile: () -&gt; Unit = {}, onRefresh: () -&gt; Unit = {}, onRemoveSuggestion: (Suggestion) -&gt; Unit = {}, onClickSuggestion: (Suggestion) -&gt; Unit = {}, onClickAddWidget: () -&gt; Unit = {}, onClickEditWidgetList: () -&gt; Unit = {}, onClickEditWidget: (WidgetType) -&gt; Unit = {}, onClickDeleteWidget: (WidgetType) -&gt; Unit = {}, onMoveWidget: (Int, Int) -&gt; Unit = { _, _ -&gt; }, onDismissEmptyState: () -&gt; Unit = {}, onDismissHighBalanceSheet: () -&gt; Unit = {}, onClickEmptyActivityRow: () -&gt; Unit = {}, balances: BalanceState = LocalBalances.current, )</ID>
9187
<ID>CyclomaticComplexMethod:LightningService.kt$LightningService$private fun logEvent(event: Event)</ID>
92-
<ID>CyclomaticComplexMethod:NumberPadTextField.kt$@Composable fun AmountInputHandler( input: String, primaryDisplay: PrimaryDisplay, displayUnit: BitcoinDisplayUnit, onInputChanged: (String) -&gt; Unit, onAmountCalculated: (String) -&gt; Unit, currencyVM: CurrencyViewModel = hiltViewModel(), overrideSats: Long? = null, )</ID>
93-
<ID>CyclomaticComplexMethod:NumberPadTextField.kt$@Composable fun NumberPadTextField( input: String, displayUnit: BitcoinDisplayUnit, primaryDisplay: PrimaryDisplay, modifier: Modifier = Modifier, showSecondaryField: Boolean = true, )</ID>
9488
<ID>CyclomaticComplexMethod:ReceiveQrScreen.kt$@Composable fun ReceiveQrScreen( cjitInvoice: MutableState&lt;String?&gt;, cjitActive: MutableState&lt;Boolean&gt;, walletState: MainUiState, onCjitToggle: (Boolean) -&gt; Unit, onClickEditInvoice: () -&gt; Unit, onClickReceiveOnSpending: () -&gt; Unit, modifier: Modifier = Modifier, )</ID>
9589
<ID>CyclomaticComplexMethod:RestoreWalletScreen.kt$@Composable fun RestoreWalletView( onBackClick: () -&gt; Unit, onRestoreClick: (mnemonic: String, passphrase: String?) -&gt; Unit, )</ID>
9690
<ID>CyclomaticComplexMethod:SendSheet.kt$@Composable fun SendSheet( appViewModel: AppViewModel, walletViewModel: WalletViewModel, startDestination: SendRoute = SendRoute.Recipient, )</ID>
@@ -128,7 +122,6 @@
128122
<ID>ForbiddenComment:Notifications.kt$// TODO: review if needed:</ID>
129123
<ID>ForbiddenComment:SuccessScreen.kt$// TODO: verify backup</ID>
130124
<ID>ForbiddenComment:TransferViewModel.kt$TransferViewModel$// TODO: showBottomSheet: forceTransfer</ID>
131-
<ID>FunctionOnlyReturningConstant:RepoModule.kt$RepoModule$@Provides @Named("enablePolling") fun provideEnablePolling(): Boolean</ID>
132125
<ID>FunctionOnlyReturningConstant:ShopWebViewInterface.kt$ShopWebViewInterface$@JavascriptInterface fun isReady(): Boolean</ID>
133126
<ID>ImplicitDefaultLocale:BlocksService.kt$BlocksService$String.format("%.2f", blockInfo.difficulty / 1_000_000_000_000.0)</ID>
134127
<ID>ImplicitDefaultLocale:PriceService.kt$PriceService$String.format("%.2f", price)</ID>
@@ -152,8 +145,6 @@
152145
<ID>LambdaParameterInRestartableEffect:EditInvoiceScreen.kt$updateInvoice</ID>
153146
<ID>LambdaParameterInRestartableEffect:InitializingWalletView.kt$onComplete</ID>
154147
<ID>LambdaParameterInRestartableEffect:LnurlChannelScreen.kt$onConnected</ID>
155-
<ID>LambdaParameterInRestartableEffect:NumberPadTextField.kt$onAmountCalculated</ID>
156-
<ID>LambdaParameterInRestartableEffect:NumberPadTextField.kt$onInputChanged</ID>
157148
<ID>LambdaParameterInRestartableEffect:PinConfirmScreen.kt$onPinConfirmed</ID>
158149
<ID>LambdaParameterInRestartableEffect:PricePreviewScreen.kt$onClose</ID>
159150
<ID>LambdaParameterInRestartableEffect:QrCodeImage.kt$onBitmapGenerated</ID>
@@ -234,8 +225,6 @@
234225
<ID>MagicNumber:BackupNavSheetViewModel.kt$BackupNavSheetViewModel$200</ID>
235226
<ID>MagicNumber:BackupRepo.kt$BackupRepo$60000</ID>
236227
<ID>MagicNumber:BackupSettingsScreen.kt$1000</ID>
237-
<ID>MagicNumber:BackupSettingsScreen.kt$35</ID>
238-
<ID>MagicNumber:BackupSettingsScreen.kt$5</ID>
239228
<ID>MagicNumber:BackupSettingsScreen.kt$60</ID>
240229
<ID>MagicNumber:BackupsViewModel.kt$BackupsViewModel$500</ID>
241230
<ID>MagicNumber:BiometricCrypto.kt$BiometricCrypto$256</ID>
@@ -269,15 +258,10 @@
269258
<ID>MagicNumber:ContentView.kt$100</ID>
270259
<ID>MagicNumber:ContentView.kt$500</ID>
271260
<ID>MagicNumber:Context.kt$1024</ID>
272-
<ID>MagicNumber:CoreService.kt$ActivityService$10</ID>
273-
<ID>MagicNumber:CoreService.kt$ActivityService$1000</ID>
274-
<ID>MagicNumber:CoreService.kt$ActivityService$1_000_000</ID>
275261
<ID>MagicNumber:CoreService.kt$ActivityService$24</ID>
276-
<ID>MagicNumber:CoreService.kt$ActivityService$3</ID>
277262
<ID>MagicNumber:CoreService.kt$ActivityService$30L</ID>
278263
<ID>MagicNumber:CoreService.kt$ActivityService$60</ID>
279264
<ID>MagicNumber:CoreService.kt$ActivityService$64</ID>
280-
<ID>MagicNumber:CoreService.kt$ActivityService$7</ID>
281265
<ID>MagicNumber:CoreService.kt$ActivityService$8</ID>
282266
<ID>MagicNumber:Crypto.kt$Crypto$128</ID>
283267
<ID>MagicNumber:Crypto.kt$Crypto$16</ID>
@@ -296,7 +280,6 @@
296280
<ID>MagicNumber:HttpModule.kt$HttpModule$60_000</ID>
297281
<ID>MagicNumber:InitializingWalletView.kt$500</ID>
298282
<ID>MagicNumber:InitializingWalletView.kt$99.9</ID>
299-
<ID>MagicNumber:Keyboard.kt$0.2f</ID>
300283
<ID>MagicNumber:LightningChannel.kt$0.5f</ID>
301284
<ID>MagicNumber:LightningConnectionsViewModel.kt$LightningConnectionsViewModel$10</ID>
302285
<ID>MagicNumber:LightningConnectionsViewModel.kt$LightningConnectionsViewModel$500</ID>
@@ -526,7 +509,7 @@
526509
<ID>ModifierMissing:WeatherEditScreen.kt$WeatherEditContent</ID>
527510
<ID>ModifierMissing:WeatherPreviewScreen.kt$WeatherPreviewContent</ID>
528511
<ID>ModifierMissing:WidgetsIntroScreen.kt$WidgetsIntroScreen</ID>
529-
<ID>ModifierNotUsedAtRoot:AmountInput.kt$modifier = modifier.clickableAlpha { currency.togglePrimaryDisplay() }</ID>
512+
<ID>ModifierNotUsedAtRoot:AmountInput.kt$modifier = modifier.clickableAlpha { currency.switchUnit() }</ID>
530513
<ID>ModifierNotUsedAtRoot:SettingsTextButtonRow.kt$modifier = modifier.then(if (!enabled) Modifier.alpha(0.5f) else Modifier)</ID>
531514
<ID>ModifierWithoutDefault:ReceiveQrScreen.kt$modifier</ID>
532515
<ID>ModifierWithoutDefault:SyncNodeView.kt$modifier</ID>
@@ -551,22 +534,17 @@
551534
<ID>ParameterNaming:AddressViewerScreen.kt$onSearchTextChanged</ID>
552535
<ID>ParameterNaming:BiometricPrompt.kt$onFailed</ID>
553536
<ID>ParameterNaming:BiometricPrompt.kt$onUnsupported</ID>
554-
<ID>ParameterNaming:EditInvoiceScreen.kt$onInputChanged</ID>
555-
<ID>ParameterNaming:EditInvoiceScreen.kt$onInputUpdated</ID>
556537
<ID>ParameterNaming:EditInvoiceScreen.kt$onTextChanged</ID>
557538
<ID>ParameterNaming:ExternalConnectionScreen.kt$onNodeConnected</ID>
558539
<ID>ParameterNaming:FundingScreen.kt$onAdvanced</ID>
559540
<ID>ParameterNaming:LnurlChannelScreen.kt$onConnected</ID>
560541
<ID>ParameterNaming:LocationBlockScreen.kt$onBackPressed</ID>
561-
<ID>ParameterNaming:NumberPadTextField.kt$onAmountCalculated</ID>
562-
<ID>ParameterNaming:NumberPadTextField.kt$onInputChanged</ID>
563542
<ID>ParameterNaming:PinChooseScreen.kt$onPinChosen</ID>
564543
<ID>ParameterNaming:PinConfirmScreen.kt$onPinConfirmed</ID>
565544
<ID>ParameterNaming:QrCodeImage.kt$onBitmapGenerated</ID>
566545
<ID>ParameterNaming:ReceiveAmountScreen.kt$onCjitCreated</ID>
567546
<ID>ParameterNaming:RestoreWalletScreen.kt$onPositionChanged</ID>
568547
<ID>ParameterNaming:RestoreWalletScreen.kt$onValueChanged</ID>
569-
<ID>ParameterNaming:SendAmountScreen.kt$onInputChanged</ID>
570548
<ID>ParameterNaming:SpendingAdvancedScreen.kt$onOrderCreated</ID>
571549
<ID>ParameterNaming:SpendingAmountScreen.kt$onOrderCreated</ID>
572550
<ID>ParameterNaming:TransactionSpeedSettingsScreen.kt$onSpeedSelected</ID>
@@ -653,7 +631,6 @@
653631
<ID>TooManyFunctions:ContentView.kt$to.bitkit.ui.ContentView.kt</ID>
654632
<ID>TooManyFunctions:CoreService.kt$ActivityService</ID>
655633
<ID>TooManyFunctions:CoreService.kt$BlocktankService</ID>
656-
<ID>TooManyFunctions:CurrencyRepo.kt$CurrencyRepo</ID>
657634
<ID>TooManyFunctions:DevSettingsViewModel.kt$DevSettingsViewModel : ViewModel</ID>
658635
<ID>TooManyFunctions:ElectrumConfigViewModel.kt$ElectrumConfigViewModel : ViewModel</ID>
659636
<ID>TooManyFunctions:ExternalNodeViewModel.kt$ExternalNodeViewModel : ViewModel</ID>
@@ -663,14 +640,12 @@
663640
<ID>TooManyFunctions:LightningService.kt$LightningService : BaseCoroutineScope</ID>
664641
<ID>TooManyFunctions:Logger.kt$Logger</ID>
665642
<ID>TooManyFunctions:NodeInfoScreen.kt$to.bitkit.ui.NodeInfoScreen.kt</ID>
666-
<ID>TooManyFunctions:NumberPadTextField.kt$to.bitkit.ui.components.NumberPadTextField.kt</ID>
667643
<ID>TooManyFunctions:SendAmountScreen.kt$to.bitkit.ui.screens.wallets.send.SendAmountScreen.kt</ID>
668644
<ID>TooManyFunctions:SendConfirmScreen.kt$to.bitkit.ui.screens.wallets.send.SendConfirmScreen.kt</ID>
669645
<ID>TooManyFunctions:SettingsViewModel.kt$SettingsViewModel : ViewModel</ID>
670646
<ID>TooManyFunctions:TOS.kt$to.bitkit.ui.onboarding.TOS.kt</ID>
671647
<ID>TooManyFunctions:TagMetadataDao.kt$TagMetadataDao</ID>
672648
<ID>TooManyFunctions:Text.kt$to.bitkit.ui.components.Text.kt</ID>
673-
<ID>TooManyFunctions:Text.kt$to.bitkit.ui.utils.Text.kt</ID>
674649
<ID>TooManyFunctions:TransferViewModel.kt$TransferViewModel : ViewModel</ID>
675650
<ID>TooManyFunctions:WalletRepo.kt$WalletRepo</ID>
676651
<ID>TooManyFunctions:WalletViewModel.kt$WalletViewModel : ViewModel</ID>
@@ -680,7 +655,6 @@
680655
<ID>TopLevelPropertyNaming:DrawerMenu.kt$private const val zIndexScrim = 10f</ID>
681656
<ID>UnusedPrivateProperty:ActivityRepoTest.kt$ActivityRepoTest$private val testOnChainActivity = mock&lt;Activity.Onchain&gt; { on { v1 } doReturn testOnChainActivityV1 }</ID>
682657
<ID>UnusedPrivateProperty:CurrencyRepoTest.kt$CurrencyRepoTest$private val toastEventBus: ToastEventBus = mock()</ID>
683-
<ID>UseCheckOrError:CurrencyRepo.kt$CurrencyRepo$throw IllegalStateException( "Rate not found for currency: $targetCurrency. Available currencies: ${ _currencyState.value.rates.joinToString { it.quote } }" )</ID>
684658
<ID>ViewModelForwarding:ActivityDetailScreen.kt$ActivityAddTagSheet( listViewModel = listViewModel, activityViewModel = detailViewModel, onDismiss = { showAddTagSheet = false }, )</ID>
685659
<ID>ViewModelForwarding:ContentView.kt$BackupSheet(sheet, appViewModel)</ID>
686660
<ID>ViewModelForwarding:ContentView.kt$LnurlAuthSheet(sheet, appViewModel)</ID>

app/src/androidTest/java/to/bitkit/ui/components/KeyboardTest.kt

Lines changed: 0 additions & 90 deletions
This file was deleted.

0 commit comments

Comments
 (0)