Skip to content

Commit 40fcecf

Browse files
authored
Merge pull request #1791 from keymapperorg/develop
Version 3.2.0
2 parents 152ab09 + a63b0cc commit 40fcecf

File tree

1,064 files changed

+15990
-18175
lines changed

Some content is hidden

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

1,064 files changed

+15990
-18175
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ ktlint_function_naming_ignore_when_annotated_with = Composable
44
ktlint_ignore_back_ticked_identifier = true
55
ktlint_code_style = intellij_idea # Use IntelliJ style because it has trailing commas
66

7-
[app/src/main/java/io/github/sds100/keymapper/util/ui/compose/icons/*.{kt,kts}]
7+
[base/src/main/java/io/github/sds100/keymapper/base/utils/ui/compose/icons/*.{kt,kts}]
88
ktlint_standard_property-naming = disabled
99
ktlint_standard_backing-property-naming = disabled

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Bug report
2+
description: Use this template if there is a technical fault in the app
3+
labels: ["bug", "needs triage"]
4+
assignees:
5+
- sds100
6+
7+
body:
8+
- type: checkboxes
9+
id: screening
10+
attributes:
11+
label: Have you checked if an issue already exists for this bug?
12+
description: Please search to see if someone has already reported this bug. If they have, you can speed up fixing the bug by commenting on that issue.
13+
options:
14+
- label: Nobody else has reported this bug before
15+
required: true
16+
17+
- type: checkboxes
18+
id: restart
19+
attributes:
20+
label: Have you tried restarting your device?
21+
description: This can occasionally be necessary.
22+
options:
23+
- label: I have tried restarting my device and that did not help
24+
required: false
25+
26+
- type: textarea
27+
id: unexpected_behaviour
28+
attributes:
29+
label: What happened that you did not expect?
30+
description: |
31+
What behaviour were you experiencing that you think is a bug (not intended)
32+
**It will help if you upload your key maps or logs**
33+
placeholder: I was doing X, and then Y happened that I did not expect.
34+
35+
- type: textarea
36+
id: expected_behaviour
37+
attributes:
38+
label: What did you expect to happen?
39+
description: If the app was working properly, what would have happened instead?
40+
placeholder: When I pressed X, I should have seen Y
41+
42+
- type: textarea
43+
id: how_to_reproduce
44+
attributes:
45+
label: What would the developer need to do to reproduce the bug?
46+
description: Imagine the developer has the same device as you, and has just installed the app. What steps should they follow to see the same unexpected behaviour?
47+
placeholder: |
48+
1. Make a key map with volume up trigger
49+
2. Add the flashlight action
50+
3. Save the key map and close the app
51+
4. Press the volume up trigger
52+
5. See error message
53+
54+
- type: input
55+
id: version
56+
attributes:
57+
label: App version
58+
description: You can find the app version on the About page
59+
placeholder: 3.2.1 999
60+
validations:
61+
required: true
62+
63+
- type: input
64+
id: device
65+
attributes:
66+
label: Device model and manufacturer
67+
description: What model is your device? Be as specific as you can
68+
placeholder: Xiaomi, Samsung Galaxy, etc.
69+
validations:
70+
required: true
71+
72+
- type: checkboxes
73+
id: extras
74+
attributes:
75+
label: Extra info
76+
description: It would help us even more if you could check the boxes that apply to you.
77+
options:
78+
- label: My device is rooted
79+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Need help using the app?
4+
url: http://keymapper.club?utm_source=issue_template_chooser
5+
about: Join the Discord server and let us help you
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Feature request
2+
description: Use this template if you have an idea for a new feature to be added to the app
3+
labels: ["enhancement", "needs triage"]
4+
assignees:
5+
- sds100
6+
7+
body:
8+
- type: checkboxes
9+
id: screening
10+
attributes:
11+
label: Have you checked if an issue already exists for this feature request?
12+
description: Please search to see if someone has already requested this feature. If they have, you can speed up implementing the feature by commenting on that issue.
13+
options:
14+
- label: Nobody else has requested this feature before
15+
required: true
16+
17+
- type: textarea
18+
id: enhancement
19+
attributes:
20+
label: What feature would you like added?
21+
description: |
22+
Please explain the feature in as much detail as you can to help us imagine what you are looking for. Imagine how someone might use the feature, who would it benefit?
23+
validations:
24+
required: true
25+
26+
- type: input
27+
id: version
28+
attributes:
29+
label: App version
30+
description: You can find the app version on the About page
31+
placeholder: 3.2.1 999
32+
validations:
33+
required: false
34+
35+
- type: input
36+
id: device
37+
attributes:
38+
label: Device model and manufacturer
39+
description: What model is your device? Be as specific as you can
40+
placeholder: Xiaomi, Samsung Galaxy, etc.
41+
validations:
42+
required: false
43+
44+
- type: checkboxes
45+
id: extras
46+
attributes:
47+
label: Extra info
48+
description: It would help us even more if you could check the boxes that apply to you.
49+
options:
50+
- label: My device is rooted
51+
required: false

.github/ISSUE_TEMPLATE/new-feature.md

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: User experience complaint
2+
description: Use this template if you found the app hard to use or confusing
3+
labels: ["user experience", "needs triage"]
4+
assignees:
5+
- jambl3r
6+
7+
body:
8+
- type: checkboxes
9+
id: screening
10+
attributes:
11+
label: Have you checked if an issue already exists for this problem?
12+
description: Please search to see if someone has already reported this problem. If they have, you can speed up improving the app by commenting on that issue.
13+
options:
14+
- label: Nobody else has reported this problem before
15+
required: true
16+
17+
- type: textarea
18+
id: complaint
19+
attributes:
20+
label: What problem did you face using the app?
21+
description: If something was confusing or difficult, please explain in as much detail as you can what you found difficult.
22+
23+
- type: textarea
24+
id: improvements
25+
attributes:
26+
label: What do you think would make the experience easier for you?
27+
description: Feel free to share your ideas, you can use examples of good experiences elsewhere in the app or in other apps or your every day life.
28+
29+
- type: input
30+
id: version
31+
attributes:
32+
label: App version
33+
description: You can find the app version on the About page
34+
placeholder: 3.2.1 999
35+
validations:
36+
required: true
37+
38+
- type: input
39+
id: device
40+
attributes:
41+
label: Device model and manufacturer
42+
description: What model is your device? Be as specific as you can
43+
placeholder: Xiaomi, Samsung Galaxy, etc.
44+
validations:
45+
required: true
46+
47+
- type: checkboxes
48+
id: extras
49+
attributes:
50+
label: Extra info
51+
description: It would help us even more if you could check the boxes that apply to you.
52+
options:
53+
- label: My device is rooted
54+
required: false
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Auto Approve Crowdin Translations
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
8+
jobs:
9+
approve-translations:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- uses: actions/setup-node@v4
15+
with:
16+
node-version: '18'
17+
18+
- name: Install Crowdin CLI
19+
run: |
20+
npm install -g @crowdin/cli@3
21+
22+
- name: Approve top-voted translations for all languages
23+
env:
24+
CROWDIN_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
25+
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
26+
run: |
27+
set -e
28+
29+
if [ -z "$CROWDIN_TOKEN" ] || [ -z "$CROWDIN_PROJECT_ID" ]; then
30+
echo "Crowdin token or project id is missing!"
31+
exit 1
32+
fi
33+
34+
echo "Start automatic approval Crowdin Translation..."
35+
36+
language_ids=$(crowdin api list-languages --project-id=$CROWDIN_PROJECT_ID --plain | jq -r '.data[].data.id' || true)
37+
if [ -z "$language_ids" ]; then
38+
echo "No language ids found, check Crowdin project or CLI output."
39+
exit 1
40+
fi
41+
42+
string_ids=$(crowdin api list-strings --project-id=$CROWDIN_PROJECT_ID --plain | jq -r '.data[].data.id' || true)
43+
if [ -z "$string_ids" ]; then
44+
echo "No string ids found, check Crowdin project or CLI output."
45+
exit 1
46+
fi
47+
48+
for lang in $language_ids; do
49+
echo "Processing language $lang"
50+
51+
translations=$(crowdin api list-string-translations --project-id=$CROWDIN_PROJECT_ID --language-id=$lang --plain)
52+
53+
for sid in $string_ids; do
54+
best=$(echo "$translations" | jq -r "
55+
.data[]
56+
| .data
57+
| select(.stringId == \"$sid\" and .votes > 0)
58+
| {\"id\": .id, \"votes\": .votes}
59+
" | jq -s 'sort_by(-.votes) | .[0] | .id')
60+
61+
if [ -n "$best" ] && [ "$best" != "null" ]; then
62+
echo " → Approved translation $best for string $sid"
63+
crowdin api edit-translation \
64+
--project-id=$CROWDIN_PROJECT_ID \
65+
--translation-id=$best \
66+
--approved=true
67+
fi
68+
done
69+
done

.github/workflows/pull-request.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
uses: android-actions/setup-android@v2
2222

2323
- name: Unit tests
24-
run: bash ./gradlew testFreeDebugUnitTest
24+
run: bash ./gradlew testDebugUnitTest
2525

2626
style:
2727
name: Code style check
@@ -96,10 +96,10 @@ jobs:
9696
run: bundle exec fastlane testing
9797

9898
- name: set apk name env
99-
run: echo "APK_NAME=$(basename app/build/outputs/apk/free/ci/*.apk .apk)" >> $GITHUB_ENV
99+
run: echo "APK_NAME=$(basename app/build/outputs/apk/ci/*.apk .apk)" >> $GITHUB_ENV
100100

101101
- name: Upload APK
102102
uses: actions/upload-artifact@v4
103103
with:
104104
name: ${{ env.APK_NAME }}
105-
path: app/build/outputs/apk/free/ci/${{ env.APK_NAME }}.apk
105+
path: app/build/outputs/apk/ci/${{ env.APK_NAME }}.apk

.github/workflows/testing.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
uses: android-actions/setup-android@v2
2828

2929
- name: Unit tests
30-
run: bash ./gradlew testFreeDebugUnitTest
30+
run: bash ./gradlew testDebugUnitTest
3131

3232
style:
3333
name: Code style check
@@ -114,21 +114,21 @@ jobs:
114114
run: bundle exec fastlane testing
115115

116116
- name: set apk name env
117-
run: echo "APK_NAME=$(basename app/build/outputs/apk/free/ci/*.apk .apk)" >> $GITHUB_ENV
117+
run: echo "APK_NAME=$(basename app/build/outputs/apk/ci/*.apk .apk)" >> $GITHUB_ENV
118118

119119
- name: Upload APK
120120
uses: actions/upload-artifact@v4
121121
with:
122122
name: ${{ env.APK_NAME }}
123-
path: app/build/outputs/apk/free/ci/${{ env.APK_NAME }}.apk
123+
path: app/build/outputs/apk/ci/${{ env.APK_NAME }}.apk
124124

125125
- name: Upload to Discord
126126
uses: sinshutu/upload-to-discord@v2.0.0
127127
if: github.event.repository.fork == false
128128
env:
129129
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
130130
with:
131-
args: app/build/outputs/apk/free/ci/${{ env.APK_NAME }}.apk
131+
args: app/build/outputs/apk/ci/${{ env.APK_NAME }}.apk
132132

133133
- name: Report build status to Discord
134134
uses: sarisia/actions-status-discord@v1

0 commit comments

Comments
 (0)