Skip to content

Commit 4608981

Browse files
authored
Merge branch 'release/4.0' into navigation-menus
2 parents c3fb487 + 62b9545 commit 4608981

467 files changed

Lines changed: 17299 additions & 7104 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.

.github/pull_request_template.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,35 @@ complete them.
1515

1616
#### Automatic tests
1717
<!-- remember to do manual testing when making UI changes! -->
18-
- [ ] Added test cases
18+
- [ ] Added unit tests for specific individual functions
19+
- [ ] Added headless tests for new app functionality
20+
- [ ] Added emulator tests for new UI elements
1921

2022
#### Manual tests
21-
- [ ] Done
23+
- [ ] Done
2224

23-
<!-- If yes, -->
24-
<!--
2525
- Device:
2626
- OS:
27-
-->
2827

2928
#### Build tasks success
3029
<!-- run these! -->
3130
Successfully running following tasks on local:
3231
- [ ] `./gradlew assembledebug`
3332
- [ ] `./gradlew spotlessCheck`
3433

34+
#### Generative code
35+
36+
- [ ] This PR used generative code tools (GenAI, LLMs, etc.)
37+
38+
39+
- Model:
40+
- Version:
41+
- Provider:
42+
43+
44+
3545
<!-- If there are related PRs please add them here -->
3646
<!--
3747
#### Related PR
3848
Related to PR #
39-
-->
49+
-->

.github/workflows/android-build.yml

Lines changed: 86 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,100 @@ jobs:
1515
name: Check spotless
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v4
19-
- name: Set up JDK 11
20-
uses: actions/setup-java@v4
18+
- uses: actions/checkout@v6
19+
- name: Set up JDK 17
20+
uses: actions/setup-java@v5
2121
with:
2222
distribution: "temurin"
23-
java-version: 11
24-
- name: Check formatting using spotless
25-
uses: gradle/actions/setup-gradle@v3
23+
java-version: 17
24+
- name: Set up NDK
25+
uses: nttld/setup-ndk@v1
26+
with:
27+
ndk-version: r28c
28+
link-to-sdk: true
29+
local-cache: true
30+
- name: Install Rust
31+
uses: dtolnay/rust-toolchain@stable
2632
with:
27-
arguments: spotlessCheck --stacktrace
33+
toolchain: stable
34+
- name: Cache Rust dependencies
35+
uses: actions/cache@v5
36+
with:
37+
path: |
38+
~/.cargo/bin/
39+
~/.cargo/registry/index/
40+
~/.cargo/registry/cache/
41+
~/.cargo/git/db/
42+
file_operations/target/
43+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
44+
restore-keys: |
45+
${{ runner.os }}-cargo-
46+
- name: Setup Rust for Android
47+
run: |
48+
cd file_operations
49+
chmod +x setup_rust_android.sh
50+
./setup_rust_android.sh
51+
- name: Verify Rust setup
52+
run: |
53+
cd file_operations
54+
echo "🔍 Verifying Rust Android targets..."
55+
rustup target list --installed | grep android || echo "No Android targets found"
56+
echo "🔍 Verifying cargo configuration..."
57+
if [ -f .cargo/config.toml ]; then
58+
echo "✅ .cargo/config.toml exists"
59+
else
60+
echo "❌ .cargo/config.toml missing"
61+
exit 1
62+
fi
63+
- name: Setup Gradle
64+
uses: gradle/actions/setup-gradle@v6
65+
- name: Check formatting using spotless
66+
run: ./gradlew spotlessCheck --stacktrace
2867

2968
build:
3069
name: Build debug
3170
runs-on: ubuntu-latest
3271
steps:
33-
- uses: actions/checkout@v4
34-
- name: Set up JDK 11
35-
uses: actions/setup-java@v4
72+
- uses: actions/checkout@v6
73+
- name: Set up JDK 17
74+
uses: actions/setup-java@v5
3675
with:
3776
distribution: "temurin"
38-
java-version: 11
39-
- name: Build with Gradle
40-
uses: gradle/actions/setup-gradle@v3
77+
java-version: 17
78+
- name: Install Rust
79+
uses: dtolnay/rust-toolchain@stable
80+
with:
81+
toolchain: stable
82+
- name: Cache Rust dependencies
83+
uses: actions/cache@v5
4184
with:
42-
arguments: assembledebug --stacktrace
85+
path: |
86+
~/.cargo/bin/
87+
~/.cargo/registry/index/
88+
~/.cargo/registry/cache/
89+
~/.cargo/git/db/
90+
file_operations/target/
91+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
92+
restore-keys: |
93+
${{ runner.os }}-cargo-
94+
- name: Setup Rust for Android
95+
run: |
96+
cd file_operations
97+
chmod +x setup_rust_android.sh
98+
./setup_rust_android.sh
99+
- name: Verify Rust setup
100+
run: |
101+
cd file_operations
102+
echo "🔍 Verifying Rust Android targets..."
103+
rustup target list --installed | grep android || echo "No Android targets found"
104+
echo "🔍 Verifying cargo configuration..."
105+
if [ -f .cargo/config.toml ]; then
106+
echo "✅ .cargo/config.toml exists"
107+
else
108+
echo "❌ .cargo/config.toml missing"
109+
exit 1
110+
fi
111+
- name: Setup Gradle
112+
uses: gradle/actions/setup-gradle@v6
113+
- name: Build with Gradle
114+
run: ./gradlew assembledebug --stacktrace

.github/workflows/android-debug-artifact-ondemand.yml

Lines changed: 68 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ jobs:
1212
if: github.event.comment.body == 'Build test apk' && (github.actor == 'VishalNehra' || github.actor == 'TranceLove' || github.actor == 'EmmanuelMess' || github.actor == 'VishnuSanal')
1313
steps:
1414
- name: Acknowledge the request with thumbs up reaction
15-
uses: peter-evans/create-or-update-comment@v2
15+
uses: peter-evans/create-or-update-comment@v5
1616
with:
1717
comment-id: ${{ github.event.comment.id }}
1818
reactions: '+1'
1919
- name: Github API Request
2020
id: request
21-
uses: octokit/request-action@v2.0.2
21+
uses: octokit/request-action@v3
2222
with:
2323
route: ${{ github.event.issue.pull_request.url }}
2424
env:
@@ -30,33 +30,88 @@ jobs:
3030
echo "::set-output name=repo_clone_url::${{ fromJson(steps.request.outputs.data).head.repo.clone_url }}"
3131
echo "::set-output name=repo_ssh_url::${{ fromJson(steps.request.outputs.data).head.repo.ssh_url }}"
3232
- name: Checkout PR Branch
33-
uses: actions/checkout@v4
33+
uses: actions/checkout@v6
3434
with:
3535
token: ${{ secrets.GITHUB_TOKEN }}
3636
repository: ${{fromJson(steps.request.outputs.data).head.repo.full_name}}
3737
ref: ${{fromJson(steps.request.outputs.data).head.ref}}
38-
- name: Set up JDK 11
39-
uses: actions/setup-java@v4
38+
- name: Set up JDK 17
39+
uses: actions/setup-java@v5
4040
with:
4141
distribution: "temurin"
42-
java-version: 11
42+
java-version: 17
43+
- name: Set up NDK
44+
uses: nttld/setup-ndk@v1
45+
with:
46+
ndk-version: r28c
47+
link-to-sdk: true
48+
local-cache: true
49+
- name: Install Rust
50+
uses: dtolnay/rust-toolchain@stable
51+
with:
52+
toolchain: stable
53+
- name: Cache Rust dependencies
54+
uses: actions/cache@v5
55+
with:
56+
path: |
57+
~/.cargo/bin/
58+
~/.cargo/registry/index/
59+
~/.cargo/registry/cache/
60+
~/.cargo/git/db/
61+
file_operations/target/
62+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
63+
restore-keys: |
64+
${{ runner.os }}-cargo-
65+
- name: Setup Rust for Android
66+
run: |
67+
cd file_operations
68+
chmod +x setup_rust_android.sh
69+
./setup_rust_android.sh
70+
- name: Verify Rust setup
71+
run: |
72+
cd file_operations
73+
echo "🔍 Verifying Rust Android targets..."
74+
rustup target list --installed | grep android || echo "No Android targets found"
75+
echo "🔍 Verifying cargo configuration..."
76+
if [ -f .cargo/config.toml ]; then
77+
echo "✅ .cargo/config.toml exists"
78+
else
79+
echo "❌ .cargo/config.toml missing"
80+
exit 1
81+
fi
4382
- name: Build with Gradle
44-
uses: gradle/actions/setup-gradle@v3
83+
uses: gradle/actions/setup-gradle@v6
4584
with:
4685
arguments: assembleDebug --stacktrace
4786
- name: Upload fdroid artifact
48-
uses: actions/upload-artifact@v4
87+
uses: actions/upload-artifact@v7
88+
id: artifact-upload-fdroid
4989
with:
5090
name: Amaze-Fdroid-debug
5191
path: app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk
92+
if-no-files-found: error
5293
- name: Upload play artifact
53-
uses: actions/upload-artifact@v4
94+
uses: actions/upload-artifact@v7
95+
id: artifact-upload-play
5496
with:
5597
name: Amaze-Play-debug
5698
path: app/build/outputs/apk/play/debug/app-play-debug.apk
57-
- name: Notify the user with a comment once the APK is uploaded # TODO: update this with the link to the artifacts
58-
uses: peter-evans/create-or-update-comment@v2
99+
if-no-files-found: error
100+
- name: Get the PR number
101+
id: find-pr-id
102+
run: |
103+
PR_NUMBER=$(jq --raw-output .issue.number "$GITHUB_EVENT_PATH")
104+
105+
echo "PR_Number: $PR_NUMBER"
106+
echo "PR_NUMBER=$PR_NUMBER" >> "$GITHUB_OUTPUT"
107+
- name: Notify the user with a comment once the APK is uploaded
108+
uses: peter-evans/create-or-update-comment@v5
59109
with:
60-
issue-number: ${{ github.event.issue.number }}
110+
issue-number: ${{ steps.find-pr-id.outputs.PR_NUMBER }}
61111
body: |
62-
The requested APKs has been built. Please find them from the artifacts section of this PR.
112+
Requested APKs have been built. Please find them from the links below.
113+
114+
FDroid Flavour: ${{ steps.artifact-upload-fdroid.outputs.artifact-url }}
115+
Play Flavour: ${{ steps.artifact-upload-play.outputs.artifact-url }}
116+
117+
PS: you should be logged in to access the artifacts.

.github/workflows/android-debug-artifact-release.yml

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,62 @@ jobs:
88
apk:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/checkout@v4
12-
- name: Set up JDK 11
13-
uses: actions/setup-java@v4
11+
- uses: actions/checkout@v6
12+
- name: Set up JDK 17
13+
uses: actions/setup-java@v5
1414
with:
1515
distribution: "temurin"
16-
java-version: 11
16+
java-version: 17
17+
- name: Set up NDK
18+
uses: nttld/setup-ndk@v1
19+
with:
20+
ndk-version: r28c
21+
link-to-sdk: true
22+
local-cache: true
23+
- name: Install Rust
24+
uses: dtolnay/rust-toolchain@stable
25+
with:
26+
toolchain: stable
27+
- name: Cache Rust dependencies
28+
uses: actions/cache@v5
29+
with:
30+
path: |
31+
~/.cargo/bin/
32+
~/.cargo/registry/index/
33+
~/.cargo/registry/cache/
34+
~/.cargo/git/db/
35+
file_operations/target/
36+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
37+
restore-keys: |
38+
${{ runner.os }}-cargo-
39+
- name: Setup Rust for Android
40+
run: |
41+
cd file_operations
42+
chmod +x setup_rust_android.sh
43+
./setup_rust_android.sh
44+
- name: Verify Rust setup
45+
run: |
46+
cd file_operations
47+
echo "🔍 Verifying Rust Android targets..."
48+
rustup target list --installed | grep android || echo "No Android targets found"
49+
echo "🔍 Verifying cargo configuration..."
50+
if [ -f .cargo/config.toml ]; then
51+
echo "✅ .cargo/config.toml exists"
52+
else
53+
echo "❌ .cargo/config.toml missing"
54+
exit 1
55+
fi
1756
- name: Build with Gradle
18-
uses: gradle/actions/setup-gradle@v3
57+
uses: gradle/actions/setup-gradle@v6
1958
with:
2059
arguments: assembleDebug
2160
- name: Upload fdroid artifact
22-
uses: actions/upload-artifact@v4
61+
uses: actions/upload-artifact@v7
2362
with:
2463
name: Amaze-Fdroid-debug
2564
path: app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk
2665
- name: Upload play artifact
27-
uses: actions/upload-artifact@v4
66+
uses: actions/upload-artifact@v7
2867
with:
2968
name: Amaze-Play-debug
3069
path: app/build/outputs/apk/play/debug/app-play-debug.apk

0 commit comments

Comments
 (0)