Skip to content

Commit d3818ab

Browse files
committed
Merge remote-tracking branch 'origin/feat/new-receive-sheet' into feat/new-receive-sheet
2 parents e023fa2 + eeb6818 commit d3818ab

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+50
-121
lines changed

.github/workflows/claude-code-review.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
runs-on: ubuntu-latest
2222
permissions:
2323
contents: read
24-
pull-requests: read
25-
issues: read
24+
pull-requests: write
25+
issues: write
2626
id-token: write
2727

2828
steps:
@@ -36,6 +36,8 @@ jobs:
3636
uses: anthropics/claude-code-action@v1
3737
with:
3838
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39+
use_sticky_comment: true
40+
additional_permissions: "actions:read"
3941
prompt: |
4042
REPO: ${{ github.repository }}
4143
PR NUMBER: ${{ github.event.pull_request.number }}
@@ -49,9 +51,7 @@ jobs:
4951
5052
Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
5153
52-
Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.
53-
5454
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
5555
# or https://docs.claude.com/en/docs/claude-code/cli-reference for available options
56-
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
56+
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
5757

.github/workflows/claude.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ jobs:
1919
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
2020
runs-on: ubuntu-latest
2121
permissions:
22-
contents: read
23-
pull-requests: read
24-
issues: read
22+
contents: write # Allow creating branches/commits
23+
pull-requests: write # Allow pushing to PR branches
24+
issues: write # Allow updating issue comments
2525
id-token: write
26-
actions: read # Required for Claude to read CI results on PRs
26+
actions: read # Required for Claude to read CI results on PRs
2727
steps:
2828
- name: Checkout repository
2929
uses: actions/checkout@v4
3030
with:
31-
fetch-depth: 1
31+
fetch-depth: 0 # Full history for git operations
3232

3333
- name: Run Claude Code
3434
id: claude

README.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,45 @@ Increment `versionCode` and `versionName` in `app/build.gradle.kts`, then run:
134134
APK is generated in `app/build/outputs/apk/_flavor_/release`. (`_flavor_` can be any of 'dev', 'mainnet', 'tnet').
135135
Example for dev: `app/build/outputs/apk/dev/release`
136136

137+
## Contributing
138+
139+
### AI Code Review with Claude
140+
141+
This repository has Claude Code integrated for on-demand AI assistance on issues and pull requests.
142+
143+
#### How to Use
144+
145+
Mention `@claude` in any PR comment, issue, or review to trigger Claude:
146+
147+
| Command | Description |
148+
|---------|-------------|
149+
| `@claude review` | Request a code review of the PR |
150+
| `@claude /review` | Same as above (slash command) |
151+
| `@claude review focus on security` | Review with specific focus |
152+
| `@claude explain this change` | Ask questions about the code |
153+
| `@claude fix the null pointer issue` | Request Claude to implement a fix |
154+
| `@claude /help` | Show available commands |
155+
156+
#### Notes
157+
158+
- Claude follows the project guidelines defined in `CLAUDE.md`
159+
- **Automatic reviews** run on every PR open and push (updates same comment)
160+
- **On-demand assistance** via `@claude` mentions in comments/issues
161+
- Claude can read CI results to provide context-aware feedback
162+
- For implementation requests, Claude will create commits on your branch
163+
164+
#### Example
165+
166+
```
167+
@claude review
168+
169+
Please focus on:
170+
- Kotlin idioms and best practices
171+
- Potential memory leaks
172+
- Thread safety in coroutines
173+
```
174+
137175
## License
138176

139-
This project is licensed under the MIT License.
177+
This project is licensed under the MIT License.
140178
See the [LICENSE](./LICENSE) file for more details.

app/src/main/java/to/bitkit/ui/ContentView.kt

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,6 @@ private fun RootNavHost(
561561
navController.navigateToTransferFunding()
562562
settingsViewModel.setHasSeenTransferIntro(true)
563563
},
564-
onCloseClick = { navController.navigateToHome() },
565564
)
566565
}
567566
composableWithDefaultTransitions<Routes.SavingsIntro> {
@@ -571,7 +570,6 @@ private fun RootNavHost(
571570
settingsViewModel.setHasSeenSavingsIntro(true)
572571
},
573572
onBackClick = { navController.popBackStack() },
574-
onCloseClick = { navController.navigateToHome() },
575573
)
576574
}
577575
composableWithDefaultTransitions<Routes.SavingsAvailability> {
@@ -586,14 +584,12 @@ private fun RootNavHost(
586584
onConfirm = { navController.navigate(Routes.SavingsProgress) },
587585
onAdvancedClick = { navController.navigate(Routes.SavingsAdvanced) },
588586
onBackClick = { navController.popBackStack() },
589-
onCloseClick = { navController.navigateToHome() },
590587
)
591588
}
592589
composableWithDefaultTransitions<Routes.SavingsAdvanced> {
593590
SavingsAdvancedScreen(
594591
onContinueClick = { navController.popBackStack<Routes.SavingsConfirm>(inclusive = false) },
595592
onBackClick = { navController.popBackStack() },
596-
onCloseClick = { navController.navigateToHome() },
597593
)
598594
}
599595
composableWithDefaultTransitions<Routes.SavingsProgress> {
@@ -602,7 +598,6 @@ private fun RootNavHost(
602598
wallet = walletViewModel,
603599
transfer = transferViewModel,
604600
onContinueClick = { navController.popBackStack<Routes.TransferRoot>(inclusive = true) },
605-
onCloseClick = { navController.popBackStack<Routes.TransferRoot>(inclusive = true) },
606601
)
607602
}
608603
composableWithDefaultTransitions<Routes.SpendingIntro> {
@@ -612,14 +607,12 @@ private fun RootNavHost(
612607
settingsViewModel.setHasSeenSpendingIntro(true)
613608
},
614609
onBackClick = { navController.popBackStack() },
615-
onCloseClick = { navController.navigateToHome() },
616610
)
617611
}
618612
composableWithDefaultTransitions<Routes.SpendingAmount> {
619613
SpendingAmountScreen(
620614
viewModel = transferViewModel,
621615
onBackClick = { navController.popBackStack() },
622-
onCloseClick = { navController.navigateToHome() },
623616
onOrderCreated = { navController.navigate(Routes.SpendingConfirm) },
624617
toastException = { appViewModel.toast(it) },
625618
toast = { title, description ->
@@ -651,7 +644,6 @@ private fun RootNavHost(
651644
composableWithDefaultTransitions<Routes.TransferLiquidity> {
652645
LiquidityScreen(
653646
onBackClick = { navController.popBackStack() },
654-
onCloseClick = { navController.navigateToHome() },
655647
onContinueClick = { navController.popBackStack() }
656648
)
657649
}
@@ -683,7 +675,6 @@ private fun RootNavHost(
683675
},
684676
onAdvanced = { navController.navigate(Routes.FundingAdvanced) },
685677
onBackClick = { navController.popBackStack() },
686-
onCloseClick = { navController.navigateToHome() },
687678
isGeoBlocked = isGeoBlocked,
688679
)
689680
}
@@ -692,7 +683,6 @@ private fun RootNavHost(
692683
onLnurl = { navController.navigateToScanner() },
693684
onManual = { navController.navigate(Routes.ExternalNav) },
694685
onBackClick = { navController.popBackStack() },
695-
onCloseClick = { navController.navigateToHome() },
696686
)
697687
}
698688
navigationWithDefaultTransitions<Routes.ExternalNav>(
@@ -710,7 +700,6 @@ private fun RootNavHost(
710700
onNodeConnected = { navController.navigate(Routes.ExternalAmount) },
711701
onScanClick = { navController.navigateToScanner(isCalledForResult = true) },
712702
onBackClick = { navController.popBackStack() },
713-
onCloseClick = { navController.navigateToHome() },
714703
)
715704
}
716705
composableWithDefaultTransitions<Routes.ExternalAmount> {
@@ -721,7 +710,6 @@ private fun RootNavHost(
721710
viewModel = viewModel,
722711
onContinue = { navController.navigate(Routes.ExternalConfirm) },
723712
onBackClick = { navController.popBackStack() },
724-
onCloseClick = { navController.navigateToHome() },
725713
)
726714
}
727715
composableWithDefaultTransitions<Routes.ExternalConfirm> {
@@ -736,7 +724,6 @@ private fun RootNavHost(
736724
},
737725
onNetworkFeeClick = { navController.navigate(Routes.ExternalFeeCustom) },
738726
onBackClick = { navController.popBackStack() },
739-
onCloseClick = { navController.navigateToHome() },
740727
)
741728
}
742729
composableWithDefaultTransitions<Routes.LnurlChannel> {
@@ -837,7 +824,6 @@ private fun NavGraphBuilder.settings(
837824
composableWithDefaultTransitions<Routes.LanguageSettings> {
838825
LanguageSettingsScreen(
839826
onBackClick = { navController.popBackStack() },
840-
onCloseClick = { navController.navigateToHome() },
841827
)
842828
}
843829
}
@@ -1125,7 +1111,6 @@ private fun NavGraphBuilder.activityItem(
11251111
listViewModel = activityListViewModel,
11261112
route = it.toRoute(),
11271113
onBackClick = { navController.popBackStack() },
1128-
onCloseClick = { navController.navigateToHome() },
11291114
)
11301115
}
11311116
}
@@ -1359,7 +1344,6 @@ private fun NavGraphBuilder.widgets(
13591344

13601345
BlocksEditScreen(
13611346
blocksViewModel = viewModel,
1362-
onClose = { navController.navigateToHome() },
13631347
onBack = { navController.popBackStack() },
13641348
navigatePreview = { navController.navigate(Routes.BlocksPreview) }
13651349
)

app/src/main/java/to/bitkit/ui/screens/transfer/FundingAdvancedScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ fun FundingAdvancedScreen(
3131
onLnurl: () -> Unit = {},
3232
onManual: () -> Unit = {},
3333
onBackClick: () -> Unit = {},
34-
onCloseClick: () -> Unit = {},
3534
) {
3635
ScreenColumn {
3736
AppTopBar(

app/src/main/java/to/bitkit/ui/screens/transfer/FundingScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ fun FundingScreen(
4646
onFund: () -> Unit = {},
4747
onAdvanced: () -> Unit = {},
4848
onBackClick: () -> Unit = {},
49-
onCloseClick: () -> Unit = {},
5049
) {
5150
val balances = LocalBalances.current
5251
val canTransfer = remember(balances.totalOnchainSats) {

app/src/main/java/to/bitkit/ui/screens/transfer/LiquidityScreen.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import to.bitkit.ui.utils.withAccent
3232
fun LiquidityScreen(
3333
onContinueClick: () -> Unit = {},
3434
onBackClick: () -> Unit = {},
35-
onCloseClick: () -> Unit = {},
3635
) {
3736
val transfer = transferViewModel ?: return
3837
val state by transfer.spendingUiState.collectAsStateWithLifecycle()
@@ -47,7 +46,6 @@ fun LiquidityScreen(
4746
localBalance = localBalance,
4847
remoteBalance = remoteBalance,
4948
onBackClick = onBackClick,
50-
onCloseClick = onCloseClick,
5149
onContinueClick = onContinueClick,
5250
)
5351
}
@@ -58,7 +56,6 @@ private fun LiquidityScreen(
5856
localBalance: Long,
5957
remoteBalance: Long,
6058
onBackClick: () -> Unit = {},
61-
onCloseClick: () -> Unit = {},
6259
onContinueClick: () -> Unit = {},
6360
) {
6461
ScreenColumn {

app/src/main/java/to/bitkit/ui/screens/transfer/SavingsAdvancedScreen.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import to.bitkit.ui.walletViewModel
4848
fun SavingsAdvancedScreen(
4949
onContinueClick: () -> Unit,
5050
onBackClick: () -> Unit,
51-
onCloseClick: () -> Unit,
5251
) {
5352
val currency = currencyViewModel ?: return
5453
val wallet = walletViewModel ?: return
@@ -93,7 +92,6 @@ fun SavingsAdvancedScreen(
9392
onContinueClick()
9493
},
9594
onBackClick = onBackClick,
96-
onCloseClick = onCloseClick,
9795
)
9896
}
9997

@@ -104,7 +102,6 @@ private fun SavingsAdvancedContent(
104102
onAmountClick: () -> Unit = {},
105103
onContinueClick: () -> Unit = {},
106104
onBackClick: () -> Unit = {},
107-
onCloseClick: () -> Unit = {},
108105
) {
109106
val totalAmount = channelItems.filter { it.isSelected }.sumOf { it.balance }
110107

app/src/main/java/to/bitkit/ui/screens/transfer/SavingsConfirmScreen.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ fun SavingsConfirmScreen(
4949
onConfirm: () -> Unit,
5050
onAdvancedClick: () -> Unit,
5151
onBackClick: () -> Unit,
52-
onCloseClick: () -> Unit,
5352
) {
5453
val currency = currencyViewModel ?: return
5554
val transfer = transferViewModel ?: return
@@ -76,7 +75,6 @@ fun SavingsConfirmScreen(
7675
hasMultiple = hasMultiple,
7776
hasSelected = hasSelected,
7877
onBackClick = onBackClick,
79-
onCloseClick = onCloseClick,
8078
onAmountClick = { currency.switchUnit() },
8179
onAdvancedClick = onAdvancedClick,
8280
onSelectAllClick = { transfer.setSelectedChannelIds(emptySet()) },
@@ -93,7 +91,6 @@ private fun SavingsConfirmContent(
9391
hasMultiple: Boolean,
9492
hasSelected: Boolean,
9593
onBackClick: () -> Unit = {},
96-
onCloseClick: () -> Unit = {},
9794
onAmountClick: () -> Unit = {},
9895
onAdvancedClick: () -> Unit = {},
9996
onSelectAllClick: () -> Unit = {},

app/src/main/java/to/bitkit/ui/screens/transfer/SavingsIntroScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import to.bitkit.ui.utils.withAccent
3232
fun SavingsIntroScreen(
3333
onContinueClick: () -> Unit = {},
3434
onBackClick: () -> Unit = {},
35-
onCloseClick: () -> Unit = {},
3635
) {
3736
Box(
3837
contentAlignment = Alignment.TopCenter,

0 commit comments

Comments
 (0)