Skip to content

Commit a1dd84f

Browse files
author
mirror-bot
committed
Release 20.1.1
0 parents  commit a1dd84f

3,378 files changed

Lines changed: 292274 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
- OS: [e.g. iOS]
28+
- Browser [e.g. chrome, safari]
29+
- Version [e.g. 22]
30+
31+
**Smartphone (please complete the following information):**
32+
- Device: [e.g. iPhone6]
33+
- OS: [e.g. iOS8.1]
34+
- Browser [e.g. stock browser, safari]
35+
- Version [e.g. 22]
36+
37+
**Additional context**
38+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/dependabot.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
# Maintain dependencies for GitHub Actions
9+
- package-ecosystem: "github-actions"
10+
directory: "/"
11+
schedule:
12+
interval: "monthly"
13+
14+
- package-ecosystem: "gradle"
15+
directory: "/"
16+
schedule:
17+
interval: "monthly"
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Android generate baseline profile
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
baseline:
8+
name: generate-baselineprofile
9+
runs-on: linux-x64-16
10+
11+
env:
12+
EMULATOR_API_LEVEL: '30'
13+
EMULATOR_AVD_TARGET: 'aosp_atd'
14+
EMULATOR_AVD_ARCH: 'x86'
15+
16+
steps:
17+
- name: Checkout to git repository
18+
uses: actions/checkout@v6
19+
with:
20+
lfs: 'true'
21+
22+
- name: Check LFS files
23+
uses: actionsdesk/lfs-warning@v3.3
24+
25+
- name: Install JDK
26+
uses: actions/setup-java@v5
27+
with:
28+
distribution: 'zulu'
29+
java-version: '22'
30+
31+
- name: Setup Gradle
32+
uses: gradle/actions/setup-gradle@v5
33+
34+
- name: Build benchmark
35+
id: gradle
36+
run: ./gradlew :apps:wallet:instance:main:generateReleaseBaselineProfile
37+
38+
- name: AVD cache
39+
uses: actions/cache@v5
40+
id: avd-cache
41+
with:
42+
path: |
43+
~/.android/avd/*
44+
~/.android/adb*
45+
key: avd-${{ env.EMULATOR_API_LEVEL }}
46+
47+
- name: create AVD and generate snapshot for caching
48+
if: steps.avd-cache.outputs.cache-hit != 'true'
49+
uses: reactivecircus/android-emulator-runner@v2
50+
with:
51+
api-level: ${{ env.EMULATOR_API_LEVEL }}
52+
target: ${{ env.EMULATOR_AVD_TARGET }}
53+
arch: ${{ env.EMULATOR_AVD_ARCH }}
54+
force-avd-creation: false
55+
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
56+
disable-animations: false
57+
script: echo "Generated AVD snapshot for caching."

.github/workflows/beta.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Android Beta Build
2+
3+
on:
4+
workflow_dispatch:
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
8+
cancel-in-progress: true
9+
10+
jobs:
11+
beta-build:
12+
name: Build Beta APK
13+
runs-on: linux-x64-16
14+
15+
steps:
16+
- name: Checkout to git repository
17+
uses: actions/checkout@v6
18+
19+
- name: Get VERSION_CODE from commit timestamp
20+
run: echo "VERSION_CODE=$(git log -1 --format=%ct)" >> $GITHUB_ENV
21+
22+
- name: Setup Java
23+
uses: actions/setup-java@v5
24+
with:
25+
java-version: '21'
26+
distribution: 'temurin'
27+
28+
- name: Cache Gradle Wrapper
29+
uses: actions/cache@v5
30+
with:
31+
path: ~/.gradle/wrapper
32+
key: gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
33+
34+
- name: Accept Android SDK licenses
35+
run: yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses
36+
37+
- name: Setup Gradle
38+
uses: gradle/actions/setup-gradle@v5
39+
40+
- name: Decode Keystore
41+
run: echo "${{ secrets.ANDROID_DIST_SIGNING_KEY }}" | base64 -d > ${{ github.workspace }}/release.keystore
42+
43+
- name: Build Beta APK
44+
run: |
45+
./gradlew :apps:wallet:instance:main:assembleDefaultRelease \
46+
--no-daemon \
47+
--no-build-cache \
48+
--no-configuration-cache \
49+
-Pandroid.injected.signing.store.file=${{ github.workspace }}/release.keystore \
50+
-Pandroid.injected.signing.store.password=${{ secrets.TONKEEPER_UPLOAD_STORE_PASSWORD }} \
51+
-Pandroid.injected.signing.key.alias=${{ secrets.TONKEEPER_UPLOAD_KEY_ALIAS }} \
52+
-Pandroid.injected.signing.key.password=${{ secrets.TONKEEPER_UPLOAD_KEY_PASSWORD }}
53+
54+
- name: Upload Beta APK to artifacts
55+
uses: actions/upload-artifact@v6
56+
with:
57+
name: tonkeeper-beta-${{ env.VERSION_CODE }}
58+
path: apps/wallet/instance/main/build/outputs/apk/default/release/*.apk

.github/workflows/claude.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Claude PR Review
2+
3+
on:
4+
pull_request:
5+
types: [ opened, reopened ]
6+
branches:
7+
- dev
8+
- 'release/**'
9+
10+
permissions:
11+
pull-requests: write
12+
contents: read
13+
id-token: write
14+
15+
jobs:
16+
overview:
17+
if: contains(github.event.pull_request.body, '/claude-overview') || contains(github.event.pull_request.body, '@claude')
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v6
21+
22+
- name: Main changes summary
23+
uses: anthropics/claude-code-action@v1
24+
with:
25+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
26+
settings: '{"permissions":{"allow":["Bash(gh pr comment:*)","Bash(gh pr diff:*)","Bash(gh pr view:*)"]}}'
27+
prompt: |
28+
REPO: ${{ github.repository }}
29+
PR NUMBER: ${{ github.event.pull_request.number }}
30+
31+
You are a senior software engineer reviewing a pull request.
32+
33+
Provide a concise summary of the main changes.
34+
Group changes by area/module when possible.
35+
Use bullet points. Be specific but brief.
36+
Do NOT mention security concerns.
37+
38+
If commit messages or the diff contain task numbers (e.g. TK-123, TK-456),
39+
list them at the top of your summary under a "Related Tasks" heading.
40+
41+
After composing your summary, post it as a single PR comment using:
42+
gh pr comment <PR_NUMBER> --repo ${{ github.repository }} --body "<your summary>"
43+
claude_args: |
44+
--max-turns 8
45+
--model claude-sonnet-4-5-20250929
46+
--allowedTools "Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"
47+
48+
review:
49+
if: contains(github.event.pull_request.body, '/claude-review') || contains(github.event.pull_request.body, '@claude')
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v6
53+
54+
- uses: anthropics/claude-code-action@v1
55+
with:
56+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
57+
settings: '{"permissions":{"allow":["Bash(gh pr comment:*)","Bash(gh pr diff:*)","Bash(gh pr view:*)"]}}'
58+
prompt: |
59+
REPO: ${{ github.repository }}
60+
PR NUMBER: ${{ github.event.pull_request.number }}
61+
62+
You are a senior software engineer performing a thorough code review on an Android (Kotlin) project.
63+
64+
Provide actionable feedback. Focus on:
65+
- Bugs and logic errors
66+
- Performance issues
67+
- Security issues
68+
- Code readability and maintainability
69+
- Kotlin/Android best practices
70+
- Error handling gaps
71+
- Potential race conditions or threading issues
72+
73+
For each issue found, reference the file name and provide a clear explanation.
74+
Do NOT comment on things that are correct or well-written — only comment on actual problems.
75+
If the code looks good and has no issues, post a single brief PR comment saying so.
76+
Do not invent problems. Be constructive and concise.
77+
78+
Use inline comments for specific issues found in the code.
79+
claude_args: |
80+
--max-turns 25
81+
--model claude-opus-4-6
82+
--allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"

.github/workflows/debug.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Android Debug Build
2+
3+
on:
4+
push:
5+
branches:
6+
- 'dev'
7+
- 'release/**'
8+
pull_request:
9+
types: [ opened, synchronize ]
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
debug-build:
18+
name: Build Debug APK
19+
runs-on: linux-x64-16
20+
21+
steps:
22+
- name: Checkout to git repository
23+
uses: actions/checkout@v6
24+
25+
- name: Get VERSION_CODE from commit timestamp
26+
run: echo "VERSION_CODE=$(git log -1 --format=%ct)" >> $GITHUB_ENV
27+
28+
- name: Setup Java
29+
uses: actions/setup-java@v5
30+
with:
31+
java-version: '21'
32+
distribution: 'temurin'
33+
34+
- name: Cache Gradle Wrapper
35+
uses: actions/cache@v5
36+
with:
37+
path: ~/.gradle/wrapper
38+
key: gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
39+
40+
- name: Accept Android SDK licenses
41+
run: yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses
42+
43+
- name: Setup Gradle
44+
uses: gradle/actions/setup-gradle@v5
45+
46+
- name: Decode Keystore
47+
run: echo "${{ secrets.TONKEEPER_DEBUG_STORE_FILE }}" | base64 -d > ${{ github.workspace }}/internal.keystore
48+
49+
- name: Build Debug APK
50+
run: |
51+
./gradlew :apps:wallet:instance:main:assembleDefaultDebug \
52+
--no-daemon \
53+
--no-build-cache \
54+
--no-configuration-cache \
55+
-Pandroid.injected.signing.debug.file=${{ github.workspace }}/internal.keystore \
56+
-Pandroid.injected.signing.debug.password=${{ secrets.TONKEEPER_DEBUG_STORE_PASSWORD }} \
57+
-Pandroid.injected.signing.debug.key.alias=${{ secrets.TONKEEPER_DEBUG_KEY_ALIAS }} \
58+
-Pandroid.injected.signing.debug.key.password=${{ secrets.TONKEEPER_DEBUG_KEY_PASSWORD }}
59+
60+
- name: Upload Debug APK to artifacts
61+
uses: actions/upload-artifact@v6
62+
with:
63+
name: tonkeeper-debug-${{ env.VERSION_CODE }}
64+
path: apps/wallet/instance/main/build/outputs/apk/default/debug/*.apk

0 commit comments

Comments
 (0)