Skip to content

enable workflow_dispatch and attach debug APK for Android CI #339

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 307 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
307 commits
Select commit Hold shift + click to select a range
f4a7204
Move final leaderboard sorting to client
Rian8337 Oct 3, 2023
4f27842
Put alive players on top when sorting final leaderboard
Rian8337 Oct 3, 2023
25e7f9d
Increase opacity of player cards in multiplayer ranking screen
Rian8337 Oct 3, 2023
aa64af3
Merge remote-tracking branch 'origin/statv2-scoring-simplification' i…
Rian8337 Oct 3, 2023
2bf03e7
Bump multiplayer API version
Rian8337 Oct 3, 2023
79c7058
Update changelog
Rian8337 Oct 3, 2023
ad367c3
Revert "Bump multiplayer API version"
Rian8337 Oct 3, 2023
ebf3426
Add LRU cache for difficulty calculation cache
Rian8337 Oct 4, 2023
f49b999
Submit score with mod multiplier to multiplayer server
Rian8337 Oct 9, 2023
69424e8
Remove unneeded sorting in multiplayer final leaderboard processing
Rian8337 Oct 9, 2023
9c917e5
Remove duplicated get call
Reco1I Oct 10, 2023
a99fe7c
Merge pull request #294 from reco1I/something
Rian8337 Oct 10, 2023
6e41760
Remove low input delay option in multiplayer settings
Rian8337 Oct 16, 2023
625116b
Bump multiplayer API version
Rian8337 Oct 19, 2023
3dde6e0
Update changelog
Rian8337 Oct 19, 2023
4adeb32
Fix crash when there's missing sounds for countdown
Reco1I Oct 30, 2023
28905dd
Optimize operations done in update thread
Reco1I Oct 30, 2023
0360a9e
Fix game being stuck at start
Reco1I Oct 30, 2023
0edfce9
Fix combo text not updating properly
Reco1I Oct 30, 2023
52a1c0e
Simplify spinner input checking
Reco1I Oct 31, 2023
9ad3e4a
Fix score text being offset
Reco1I Oct 31, 2023
fdd7c13
Fix possible objects not being hit when slider lock is removed
Reco1I Oct 31, 2023
8c575b5
Revert Utils.normalize() changes
Reco1I Oct 31, 2023
7530dbd
Reorder update events for hit check
Reco1I Oct 31, 2023
0d34112
Fix score text offset (again)
Reco1I Oct 31, 2023
837022a
Update cursor position in input thread.
Reco1I Oct 31, 2023
df7a151
Fix double iteration in cursor entity.
Reco1I Oct 31, 2023
49ab2e0
Refactor applyCursorTrackCoordinates
Reco1I Oct 31, 2023
cba36f3
Fix unnecessary boolean boxing while handling input events
Reco1I Oct 31, 2023
2c88e97
Improve expired objects removal
Reco1I Oct 31, 2023
a572676
Avoid unnecessary updates when transformations are the same than curr…
Reco1I Oct 31, 2023
ec9964f
Add back distance from center coercing in spinner
Reco1I Oct 31, 2023
16fe62f
Fix cursor invisible in replays
Reco1I Oct 31, 2023
148f5d3
Fix potential NPE when no cursor is registered while there's a spinner
Reco1I Oct 31, 2023
123d7d4
Fix input absolutely broken when slider lock is removed
Reco1I Oct 31, 2023
302f8d0
Fix spinner old and current mouse sharing the same instance
Rian8337 Nov 3, 2023
78f8408
Only initialize `oldMouse` if it's null
Rian8337 Nov 3, 2023
62b3613
Fix cursor coordinate conversion taking incorrect height
Rian8337 Nov 3, 2023
638a4a1
Use 'PointF.set()' instead
Reco1I Nov 3, 2023
045bf07
Remove unnecessary checking before updating objects
Reco1I Nov 3, 2023
faf93ec
Optimize isHit() functions
Reco1I Nov 3, 2023
e58ed61
Optimize hitOffsetToPreviousFrame() function
Reco1I Nov 3, 2023
539171e
Optimize slider tracking logic
Reco1I Nov 3, 2023
9911642
Convert ScoreNumber to a separate entity
Reco1I Nov 3, 2023
7a9834c
Remove iterator usage when looping over slider ticks
Reco1I Nov 3, 2023
1ab97ed
Always update cursor position no matter the event
Reco1I Nov 3, 2023
41f346b
Release all cursors when pausing the game
Reco1I Nov 3, 2023
b3a85cb
Fix possible concurrency error while skipping
Reco1I Nov 3, 2023
7de3dcb
Shutdown unused executors
Reco1I Nov 3, 2023
cdbf3a2
Fix unnecessary nullability
Reco1I Nov 3, 2023
1fdb6c5
Rework auto-update system
Reco1I Nov 3, 2023
2068dbe
Remove unused files
Reco1I Nov 3, 2023
94855b8
Fix crash when trying to release cursors in certain conditions
Reco1I Nov 3, 2023
7122d04
Fix ScoreNumber coordinates
Reco1I Nov 3, 2023
baed6ff
Fix installation process
Reco1I Nov 4, 2023
c1b7c56
Use `PointF.set()` in more places
Rian8337 Nov 4, 2023
98ab8cb
Re-add clamping on cursor position
Rian8337 Nov 4, 2023
1f6909e
Print exception stack trace
Reco1I Nov 6, 2023
eaeb69d
Improve beatmap information update code quality.
Reco1I Nov 21, 2023
91816e8
Restore old loop logic when handling input in update thread.
Reco1I Nov 21, 2023
4b27492
Initial implementation of difficulty custom adjustment.
Reco1I Nov 23, 2023
53f016c
Fix snackbar not appearing when checking updates manually
Rian8337 Nov 24, 2023
f56d734
Grammar moment
Rian8337 Nov 24, 2023
5e7c9c6
Merge pull request #300 from reco1I/improve-auto-update-system
Rian8337 Nov 24, 2023
f0acc11
Remove unused variable
Rian8337 Nov 24, 2023
f3a5d2b
Merge pull request #302 from reco1I/mutiplayer-code-quality
Rian8337 Nov 24, 2023
2a6b43b
Take the "first" active object hit time rather than the "last"
Rian8337 Nov 24, 2023
b6575b0
Set cursor is down value in array to false when cursor is released
Rian8337 Nov 24, 2023
e270419
Fix mod menu not showing proper values.
Reco1I Nov 24, 2023
45d4516
Add TODOs for difficulty calculation.
Reco1I Nov 24, 2023
3a78f23
Fix difficulty adjustments not showing in leaderboard.
Reco1I Nov 24, 2023
1bd23d1
Fix multiplayer client-side implementation of difficulty adjust.
Reco1I Nov 24, 2023
a89dfd4
Remove unused mod "Speed Up"
Reco1I Nov 24, 2023
9d32dd0
Replace SC mod with custom CS adjustment.
Reco1I Nov 24, 2023
a837eea
Fix documentation.
Reco1I Nov 24, 2023
e4ec766
Don't iterate multiple times if 'remove slider lock' option is disabled.
Reco1I Nov 24, 2023
ca6ca09
Increase mod menu settings panel height when expanded.
Reco1I Nov 24, 2023
8087537
Fix seek bar labels not updating text properly.
Reco1I Nov 24, 2023
f3099dd
Change TODO description.
Reco1I Nov 24, 2023
c5748bc
Move `downPressCursorCount` calculation into slider lock block
Rian8337 Nov 24, 2023
c28f959
Add negative infinity AR toggle.
Reco1I Nov 24, 2023
e84c629
Fix negative infinity AR toggle not working
Rian8337 Nov 24, 2023
e82862e
Move parameter equality comparison directly to `DifficultyCalculation…
Rian8337 Nov 24, 2023
7527336
Rename `forceAR` to `customAR` in `DifficultyCalculationParameters`
Rian8337 Nov 24, 2023
950043f
Add and assign custom CS and OD to difficulty calculation parameter
Rian8337 Nov 24, 2023
1d474fa
Process custom CS and OD in difficulty calculation
Rian8337 Nov 24, 2023
caadd5f
Re-add layout Y translation
Reco1I Nov 24, 2023
b4984f2
Fix wrong logic when switching from custom AR to -Infinity AR.
Reco1I Nov 24, 2023
180d151
Use -999 instead of NEGATIVE_INFINITY.
Reco1I Nov 24, 2023
3fc7dbc
Use `.equals()` rather than instance comparison.
Reco1I Nov 24, 2023
adace9e
Avoid approach circles rendering if -Infinity AR is enabled.
Reco1I Nov 24, 2023
8f45a68
Replace playfield size option list with a SeekBar.
Reco1I Nov 24, 2023
6929b7b
Merge pull request #303 from reco1I/optimize-update-thread
Rian8337 Nov 25, 2023
83f8219
Merge pull request #304 from reco1I/difficulty-adjust
Rian8337 Nov 25, 2023
f00c4be
Merge pull request #305 from reco1I/playfield-size-seekbar
Rian8337 Nov 25, 2023
94aa5a9
Remove unused `StringBuilder.toString()` call in online requests
Rian8337 Nov 25, 2023
c8a7f79
Fix speed pp length bonus not taking all objects into account
Rian8337 Nov 25, 2023
eb4cc21
Fix circle-only accuracy calculation using int/int division in accura…
Rian8337 Nov 25, 2023
feb8130
Fix custom CS being affected by mods.
Reco1I Nov 25, 2023
981da95
Fix not checking for new beatmaps before showing Chimu when the libra…
Reco1I Nov 25, 2023
b671c95
Remove -infinity AR option.
Reco1I Nov 25, 2023
42cc873
Merge 'SkinIniConverter' into 'SkinConverter'
Reco1I Nov 25, 2023
f2507f6
Add missing legacy SC multiplier
Rian8337 Nov 25, 2023
853a925
Change return type of `getCustomAR` to `Float` to not "unwrap" null v…
Rian8337 Nov 25, 2023
0c1466c
Fix build error
Rian8337 Nov 25, 2023
1b2afa0
Merge pull request #307 from reco1I/fix-difficulty-adjust
Rian8337 Nov 25, 2023
1dd3109
Merge pull request #308 from reco1I/fix-library-scan
Rian8337 Nov 25, 2023
153ac18
Fix slider hint not being affected by CS.
Reco1I Nov 25, 2023
cdb06a1
Fix wrong maths
Reco1I Nov 25, 2023
bae2066
Remove unused import statement
Reco1I Nov 25, 2023
b117d5b
Add default slider hint for converted skins
Reco1I Nov 25, 2023
a3c2abc
Fix wrong copy of track color when applying hint
Reco1I Nov 25, 2023
c596ccc
Merge pull request #309 from reco1I/skins-slider-hint
Rian8337 Nov 26, 2023
5016711
Fix grammar in comment
Rian8337 Nov 26, 2023
1cfad72
Fix difficulty calculation not considering AR>10 fade in duration
Rian8337 Nov 26, 2023
43e13a6
Fix object opacity calculation in difficulty calculation not consider…
Rian8337 Nov 26, 2023
8159ac1
Remove unused `velocity` property in `DifficultyHitObject`
Rian8337 Nov 26, 2023
0158b28
Move `timeFadeIn` initial calculation to constructor
Rian8337 Nov 26, 2023
a3c9b31
Fix speed modify not being capped at 2x
Rian8337 Nov 26, 2023
9a23135
Convert isConnected property to function.
Reco1I Nov 27, 2023
ac2bc67
Simplify log file initialization
Reco1I Nov 27, 2023
74707f5
Convert 'isRoomHost' property to function
Reco1I Nov 27, 2023
2b95a6b
Log unexpected behaviours when emitting events to server
Reco1I Nov 27, 2023
ab01811
Handle socket reconnections
Reco1I Nov 27, 2023
3d076a5
Add missing log tag
Reco1I Nov 27, 2023
b8135c7
Replace AsyncTask usages with Async in SongMenu
Reco1I Nov 27, 2023
47ea5b8
Preview corresponding track audio for sets with different audio files.
Reco1I Nov 27, 2023
2819f8a
Increase library version.
Reco1I Nov 27, 2023
3554842
Use custom notification when the player failed to reconnect.
Reco1I Nov 27, 2023
da30199
Rework reconnection system
Reco1I Nov 28, 2023
227703c
Specify time measurement
Reco1I Nov 28, 2023
0d4818e
Being polite
Reco1I Nov 28, 2023
65149d4
Don't log liveScoreData event emission fail while player is disconnec…
Reco1I Nov 28, 2023
cdf9a9c
Remove unused import statement
Reco1I Nov 28, 2023
07d74a2
Remove AsyncTask usage while loading gameplay.
Reco1I Nov 28, 2023
43b4537
Refactor files to its proper package.
Reco1I Nov 28, 2023
647df65
Refactor logging function in Multiplayer class
Reco1I Nov 28, 2023
437cb42
Remove own class qualifier
Reco1I Nov 28, 2023
64db46c
Make session ID nullable
Rian8337 Nov 29, 2023
8ea0ef3
Fix reconnection delay comparison in loop
Rian8337 Nov 29, 2023
91d89d0
Disable socket.io's automatic reconnection
Rian8337 Nov 29, 2023
6cb103f
Fix wrong comparison of id in `isRoomHost`
Rian8337 Nov 29, 2023
adf2a49
Merge pull request #310 from Reco1I/multiplayer-reconnect
Rian8337 Nov 29, 2023
778e803
Fix audio file cache not taking account beatmap folder
Rian8337 Nov 29, 2023
7ad9cdf
Fix audio file not loading in gameplay
Rian8337 Nov 29, 2023
1e6c6da
Fix same music file being reloaded when going from main menu to song …
Rian8337 Nov 29, 2023
b403461
Replace another local `selectedTrack` usage
Rian8337 Nov 29, 2023
07fa0f7
Merge pull request #311 from Reco1I/improved-music-preview
Rian8337 Nov 29, 2023
cff05f6
Fix potential NPE when quitting gameplay
Rian8337 Nov 29, 2023
ba40ae4
Bump multiplayer API version
Rian8337 Nov 29, 2023
52facf2
Fix TTL difficulty cache not working due to expiry time check
Rian8337 Nov 29, 2023
4408cdf
Increase force CS maximum to 15
Rian8337 Nov 29, 2023
7ebfa5b
Fix modern spinners' spin not recovering HP at all
Rian8337 Nov 30, 2023
3b08193
Prevent HR, EZ, and RE from being picked when all forced difficulty s…
Rian8337 Dec 2, 2023
681f336
Do not fade background dim if background brightness is too low
Rian8337 Dec 2, 2023
8212471
Add support for "allow force difficulty statistics" option in multipl…
Rian8337 Dec 2, 2023
d6d4364
Fix compilation error
Rian8337 Dec 2, 2023
5269966
Rearrange room information text
Rian8337 Dec 2, 2023
72d9990
Remove text update when room host changes
Rian8337 Dec 2, 2023
cfba8ae
Hide force difficulty statistics options in multiplayer if the player…
Rian8337 Dec 2, 2023
87e43df
Handle "allow force difficulty statistics" option when setting mods
Rian8337 Dec 2, 2023
1ebe422
Display different message if update check fails
Rian8337 Dec 2, 2023
f2a73fb
Remove unused import
Rian8337 Dec 2, 2023
e5e4fdd
Add force difficulty statistics score multiplier
Rian8337 Dec 2, 2023
bac83cc
Update changelog
Rian8337 Dec 2, 2023
80b68af
Fix fade in duration for circles not scaling properly with non-1x tim…
Rian8337 Dec 4, 2023
1244770
Update changelog
Rian8337 Dec 4, 2023
2f187a2
Account for legacy SC mod in leaderboard scores
Rian8337 Dec 5, 2023
b74ef7e
Fix custom difficulty statistics not restoring after watching a replay
Rian8337 Dec 5, 2023
5cb09ad
Implement a harsher custom CS/OD difficulty decrease score multiplier…
Rian8337 Dec 7, 2023
d519ab2
Add a separate option for not changing background dim level in breaks
Rian8337 Dec 7, 2023
be5e463
Update changelog
Rian8337 Dec 7, 2023
b848844
Make "new update found" snackbar only display momentarily
Rian8337 Dec 9, 2023
205b66c
Don't play menu click sound when in gameplay
Rian8337 Dec 9, 2023
bb3b44b
Update changelog
Rian8337 Dec 9, 2023
b4bd599
Only play chat sound in multiplayer when not in gameplay
Rian8337 Dec 9, 2023
433faad
Decrease chat heartbeat sound volume by 25%
Rian8337 Dec 9, 2023
b798980
Update changelog
Rian8337 Dec 9, 2023
8b26b04
Fix flipped custom difficulty statistics score multipliers
Rian8337 Dec 9, 2023
a863f47
Bump online version
Rian8337 Dec 9, 2023
3982851
Bump app version in `build.gradle`
Rian8337 Dec 10, 2023
289b0d4
Make `GameScoreTextShadow` text update animation faster
Rian8337 Dec 12, 2023
8cf334e
Add missing permission required for updating the game
ammarasyad Dec 14, 2023
00d95f4
Merge pull request #315 from ammarasyad/updater_fix
Rian8337 Dec 14, 2023
6f7bd51
Replace AsyncTask with Async and do some code cleanup
ammarasyad Dec 17, 2023
9681020
Use only one executor for async tasks
ammarasyad Dec 17, 2023
3e53393
Add null safety in SettingsMenu
ammarasyad Dec 17, 2023
92445a0
Use empty array instead of pre-sized in toArray() calls
ammarasyad Dec 17, 2023
5a8b489
Use built-in arraycopy rather than manually copying
ammarasyad Dec 17, 2023
c353c48
Use StringBuilder instead of string concatenation in loops, fix MD5Ca…
ammarasyad Dec 17, 2023
3a403f6
Use String.isEmpty() instead of String.equals()
ammarasyad Dec 17, 2023
6441b0a
Use try-with-resources and some code cleanup
ammarasyad Dec 17, 2023
dcc4488
Fix some textures not being unloaded
ammarasyad Dec 17, 2023
1e281e9
Convert inner classes to static
ammarasyad Dec 17, 2023
ae1aea3
Performance improvements and code cleanup (assisted by IDEA Code Insp…
ammarasyad Dec 17, 2023
4c0d03c
Fix integer division in floating-point context
ammarasyad Dec 17, 2023
8d9f29c
Fix implicit lossy cast and metronome volume
ammarasyad Dec 17, 2023
b47ec7d
Update async executor pool name
ammarasyad Dec 17, 2023
a3c00d6
Revert Comparator changes for compatibility
ammarasyad Dec 17, 2023
f2fe75a
Refactor MainScene
ammarasyad Dec 17, 2023
44081da
Revert Objects.requireNonNullElse call for compatibility
ammarasyad Dec 18, 2023
58e5bb8
Convert ChimuWebView and DownloadingFragment to Kotlin
ammarasyad Dec 18, 2023
263825d
Fix resource string conversion
ammarasyad Dec 18, 2023
50a34c1
Delete unnecessary and unused things
ammarasyad Dec 18, 2023
e11d2b9
Refactor and cleanup ResourceManager
ammarasyad Dec 18, 2023
dc2c1df
Avoid a potential use of mutated `TrackInfo` inside an async operation
Rian8337 Dec 19, 2023
a79139b
Fix beatmap picking in multiplayer not working properly if the first …
Rian8337 Dec 25, 2023
66cb7cc
Fix disconnect during gameplay in multiplayer restarting the entire map
Rian8337 Dec 25, 2023
426e426
Fix failing status in multiplayer not accounting for Easy mod lives
Rian8337 Dec 25, 2023
05a39a5
Lazy load multiplayer related fragments
ammarasyad Dec 25, 2023
aee954f
Remove unnecessary FilterMenu class and use FilterMenuFragment (Kotli…
ammarasyad Dec 26, 2023
5563191
Remove GC calls
ammarasyad Dec 26, 2023
f402e8e
Fix possible fragment memory leak, save required fields to static class
ammarasyad Dec 26, 2023
81ddfbc
Fix InGameSettingMenu memory leak, Kotlin rewrite, revamp its fragmen…
ammarasyad Dec 26, 2023
b624d80
Fix custom difficulty value rounding and change speed modify toggle b…
ammarasyad Dec 26, 2023
c919089
Remove comment and initialize RoomChat in RoomScene in constructor
ammarasyad Dec 26, 2023
33b85b8
Tidy `InGameSettingMenu` further
Rian8337 Jan 21, 2024
409d00c
Fix isSettingPanelShow returning true if findViewById returns null
ammarasyad Jan 21, 2024
8fc248b
Add missing MD5 return in `MD5Calculator`
Rian8337 Jan 21, 2024
c7e4076
Merge pull request #316 from ammarasyad/improvements
Rian8337 Jan 21, 2024
b0a619a
Standardize approach circle animations
Rian8337 Jan 21, 2024
f33f7f5
Fix first note approach circle fading out with Hidden mod when both a…
Rian8337 Jan 22, 2024
58742b7
Fix HR/REZ/EZ not disabling upon enabling all force difficulty statis…
Rian8337 Jan 29, 2024
c013292
Fix NC with speed modify not giving sound pitch
Rian8337 Jan 29, 2024
104a1fc
Fix some "overboard" beatmap difficulty properties not being displaye…
Rian8337 Jan 29, 2024
c845444
Make dimension text red if Precise mod is enabled
Rian8337 Feb 9, 2024
16de739
Change auto cursor speed behavior
ammarasyad Feb 13, 2024
d7655a8
Improve auto cursor behavior on high AR
ammarasyad Feb 13, 2024
c452e5b
Update Gradle to 8.2 and AGP to 8.2.2
ammarasyad Feb 13, 2024
328dfb1
Finishing touches after Gradle update
ammarasyad Feb 13, 2024
726153c
Update workflows
ammarasyad Feb 13, 2024
eb38274
Update AndroidManifest files
ammarasyad Feb 13, 2024
35b6eb0
Update AndroidManifest again, re-add .osz intent filter
ammarasyad Feb 14, 2024
5d63f3b
Add back another missing intent filter
Rian8337 Feb 14, 2024
fb63084
Whitespace
Rian8337 Feb 14, 2024
893221a
Merge pull request #327 from ammarasyad/gradle_update
Rian8337 Feb 14, 2024
7b22448
Merge pull request #326 from ammarasyad/auto_fix
Rian8337 Feb 14, 2024
8c79ea4
roll back storyboard logic
EdrowsLuo Mar 8, 2024
1c92845
fix storyboard not correctly handled
EdrowsLuo Mar 8, 2024
848af6e
fix storyboard not correctly handled
EdrowsLuo Mar 9, 2024
88fe0b7
Merge pull request #336 from EdrowsLuo/fix-storyboard
EdrowsLuo Mar 9, 2024
8c5f3f6
Change "load avatar" setting summary to actually reflect what the opt…
Rian8337 Mar 15, 2024
e5b744e
Fix div-by-0 in Flashlight sprite when 0ms follow delay is used
Rian8337 Mar 15, 2024
f5fff49
Fix Flashlight dim sprite shrinking at 100 or 200 combo in break period
Rian8337 Mar 15, 2024
6d86188
Prevent unnecessary instantiation of `ScaleModifier` every update fra…
Rian8337 Mar 15, 2024
7fc3512
Normalize all asynchronous method in one
Reco1I Mar 15, 2024
3dd875f
Remove unused import
Rian8337 Mar 16, 2024
e6135b2
Merge pull request #337 from Reco1I/async
Rian8337 Mar 16, 2024
060a5a3
Fix hitcircle hitsounds not playing when Hidden mod is active
Rian8337 Mar 16, 2024
8e9bece
enable workflow_dispatch and attach debug APK for Android CI
0komo Mar 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 42 additions & 6 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Android CI

on:
workflow_dispatch:
push:
branches: [ master ]
pull_request:
Expand All @@ -10,18 +11,53 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up JDK 11
uses: actions/setup-java@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "adopt"
java-version: 11
distribution: "temurin"
java-version: 17

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build apk
uses: gradle/gradle-build-action@v2
uses: gradle/actions/setup-gradle@v3
with:
arguments: build

- name: Setup environment variable
run: |
APK_VERSION="$(grep 'def baseline' build.gradle | sed -E "s/.+'(.+)'/\1/")"
APK_FULL_VERSION="$APK_VERSION($(date +%y%m%d))"
APK_BUILD_DATE="$(date +%Y-%m-%d)"
APK_DIR_PATH="./build/outputs/apk/debug"

echo "APK_VERSION=$APK_VERSION" >> $GITHUB_ENV
echo "APK_FULL_VERSION=$APK_FULL_VERSION" >> $GITHUB_ENV
echo "APK_BUILD_DATE=$APK_BUILD_DATE" >> $GITHUB_ENV
echo "APK_DIR_PATH=$APK_DIR_PATH" >> $GITHUB_ENV

- name: Generate sha256sum file
run: |
(cd "$APK_DIR_PATH"; sha256sum "osu!droid-$APK_FULL_VERSION-debug-$APK_BUILD_DATE.apk" > "osu!droid-$APK_FULL_VERSION-$APK_BUILD_DATE.sha256sum") || {
echo "Failed to generate sha256sum for 'osu!droid-$APK_FULL_VERSION-$APK_BUILD_DATE' APK."
exit 1
}

- name: Attach APK file
uses: actions/upload-artifact@v4
with:
name: osu!droid-${{ env.APK_FULL_VERSION }}-${{ env.APK_BUILD_DATE }}_apk
path: |
${{ env.APK_DIR_PATH }}/osu!droid-${{ env.APK_FULL_VERSION }}-debug-${{ env.APK_BUILD_DATE }}.apk
${{ env.APK_DIR_PATH }}/output-metadata.json

- name: Attach sha256sum file
uses: actions/upload-artifact@v4
with:
name: osu!droid-${{ env.APK_FULL_VERSION }}-${{ env.APK_BUILD_DATE }}_sha256sum
path: |
${{ env.APK_DIR_PATH }}/osu!droid-${{ env.APK_FULL_VERSION }}-${{ env.APK_BUILD_DATE }}.sha256sum
${{ env.APK_DIR_PATH }}/output-metadata.json
4 changes: 2 additions & 2 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ jobs:
name: Validation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
1 change: 0 additions & 1 deletion AndEngine/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.anddev.andengine"
android:versionCode="1"
android:versionName="1.0">

Expand Down
18 changes: 10 additions & 8 deletions AndEngine/build.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
apply plugin: 'com.android.library'

android {
compileSdkVersion 30
namespace 'org.anddev.andengine'
compileSdk 34

defaultConfig {
minSdkVersion 21
//noinspection ExpiredTargetSdkVersion
targetSdkVersion 29
versionCode 1
versionName '1.0'
}

sourceSets {
Expand All @@ -18,16 +18,18 @@ android {
}

useLibrary 'org.apache.http.legacy'

lintOptions {
lint {
abortOnError true
ignoreWarnings true
disable 'ExpiredTargetSdkVersion'
}
buildFeatures {
buildConfig true
}

}

dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.google.android.material:material:1.11.0'
}
33 changes: 11 additions & 22 deletions AndEngine/src/org/anddev/andengine/entity/Entity.java
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,8 @@ public void setPosition(final IEntity pOtherEntity) {

@Override
public void setPosition(final float pX, final float pY) {
if (pX == mX && pY == mY)
return;
this.mX = pX;
this.mY = pY;
this.mLocalToParentTransformationDirty = true;
Expand All @@ -238,6 +240,8 @@ public boolean isRotated() {

@Override
public void setRotation(final float pRotation) {
if (mRotation == pRotation)
return;
this.mRotation = pRotation;
this.mLocalToParentTransformationDirty = true;
this.mParentToLocalTransformationDirty = true;
Expand Down Expand Up @@ -306,6 +310,8 @@ public void setScaleY(final float pScaleY) {

@Override
public void setScale(final float pScale) {
if (mScaleX == pScale && mScaleY == pScale)
return;
this.mScaleX = pScale;
this.mScaleY = pScale;
this.mLocalToParentTransformationDirty = true;
Expand Down Expand Up @@ -1047,22 +1053,13 @@ protected void onDrawChildren(final GL10 pGL, final Camera pCamera) {
public void onManagedDrawChildren(final GL10 pGL, final Camera pCamera) {
final ArrayList<IEntity> children = this.mChildren;
final int childCount = children.size();
int i = 0;
while (i < childCount) {
for (int i = 0; i < childCount; i++) {
IEntity child;
try {
child = children.get(i);

if (child == null)
throw new ConcurrentModificationException();

} catch (Exception e) {
try { child = children.get(i); } catch (Exception e) {
Debug.e("Failed to draw child at index " + i);
++i;
continue;
}
child.onDraw(pGL, pCamera);
++i;
}
}

Expand All @@ -1077,21 +1074,13 @@ protected void onManagedUpdate(final float pSecondsElapsed) {
if(this.mChildren != null && !this.mChildrenIgnoreUpdate) {
final ArrayList<IEntity> entities = this.mChildren;
final int entityCount = entities.size();
int i = 0;
while (i < entityCount) {
for (int i = 0; i < entityCount; i++) {
IEntity entity;
try {
entity = entities.get(i);

if (entity == null)
throw new ConcurrentModificationException();

} catch (Exception e) {
try { entity = entities.get(i); } catch (Exception e) {
Debug.e("Failed to update entity at index " + i);
break;
continue;
}
entity.onUpdate(pSecondsElapsed);
++i;
}
}
}
Expand Down
21 changes: 8 additions & 13 deletions AndEngine/src/org/anddev/andengine/entity/scene/Scene.java
Original file line number Diff line number Diff line change
Expand Up @@ -269,8 +269,7 @@ public boolean onSceneTouchEvent(final TouchEvent pSceneTouchEvent) {
case TouchEvent.ACTION_CANCEL:
this.mOnSceneTouchListenerBindings.remove(pSceneTouchEvent.getPointerID());
}
final Boolean handled = this.mOnSceneTouchListener.onSceneTouchEvent(this, pSceneTouchEvent);
if(handled != null && handled) {
if(this.mOnSceneTouchListener.onSceneTouchEvent(this, pSceneTouchEvent)) {
return true;
}
}
Expand All @@ -290,8 +289,7 @@ public boolean onSceneTouchEvent(final TouchEvent pSceneTouchEvent) {
case TouchEvent.ACTION_CANCEL:
touchAreaBindings.remove(pSceneTouchEvent.getPointerID());
}
final Boolean handled = this.onAreaTouchEvent(pSceneTouchEvent, sceneTouchEventX, sceneTouchEventY, boundTouchArea);
if(handled != null && handled) {
if(this.onAreaTouchEvent(pSceneTouchEvent, sceneTouchEventX, sceneTouchEventY, boundTouchArea)) {
return true;
}
}
Expand Down Expand Up @@ -319,8 +317,7 @@ public boolean onSceneTouchEvent(final TouchEvent pSceneTouchEvent) {
for(int i = 0; i < touchAreaCount; i++) {
final ITouchArea touchArea = touchAreas.get(i);
if (touchArea != null && touchArea.contains(sceneTouchEventX, sceneTouchEventY)) {
final Boolean handled = this.onAreaTouchEvent(pSceneTouchEvent, sceneTouchEventX, sceneTouchEventY, touchArea);
if (handled != null && handled) {
if (this.onAreaTouchEvent(pSceneTouchEvent, sceneTouchEventX, sceneTouchEventY, touchArea)) {
/* If binding of ITouchAreas is enabled and this is an ACTION_DOWN event,
* bind this ITouchArea to the PointerID. */
if (this.mTouchAreaBindingEnabled && isActionDown) {
Expand All @@ -334,8 +331,7 @@ public boolean onSceneTouchEvent(final TouchEvent pSceneTouchEvent) {
for(int i = touchAreaCount - 1; i >= 0; i--) {
final ITouchArea touchArea = touchAreas.get(i);
if(touchArea.contains(sceneTouchEventX, sceneTouchEventY)) {
final Boolean handled = this.onAreaTouchEvent(pSceneTouchEvent, sceneTouchEventX, sceneTouchEventY, touchArea);
if(handled != null && handled) {
if(this.onAreaTouchEvent(pSceneTouchEvent, sceneTouchEventX, sceneTouchEventY, touchArea)) {
/* If binding of ITouchAreas is enabled and this is an ACTION_DOWN event,
* bind this ITouchArea to the PointerID. */
if(this.mTouchAreaBindingEnabled && isActionDown) {
Expand All @@ -350,8 +346,7 @@ public boolean onSceneTouchEvent(final TouchEvent pSceneTouchEvent) {
}
/* If no area was touched, the Scene itself was touched as a fallback. */
if(this.mOnSceneTouchListener != null){
final Boolean handled = this.mOnSceneTouchListener.onSceneTouchEvent(this, pSceneTouchEvent);
if(handled != null && handled) {
if(this.mOnSceneTouchListener.onSceneTouchEvent(this, pSceneTouchEvent)) {
/* If binding of ITouchAreas is enabled and this is an ACTION_DOWN event,
* bind the active OnSceneTouchListener to the PointerID. */
if(this.mOnSceneTouchListenerBindingEnabled && isActionDown) {
Expand All @@ -366,18 +361,18 @@ public boolean onSceneTouchEvent(final TouchEvent pSceneTouchEvent) {
}
}

private Boolean onAreaTouchEvent(final TouchEvent pSceneTouchEvent, final float sceneTouchEventX, final float sceneTouchEventY, final ITouchArea touchArea) {
private boolean onAreaTouchEvent(final TouchEvent pSceneTouchEvent, final float sceneTouchEventX, final float sceneTouchEventY, final ITouchArea touchArea) {
final float[] touchAreaLocalCoordinates = touchArea.convertSceneToLocalCoordinates(sceneTouchEventX, sceneTouchEventY);
final float touchAreaLocalX = touchAreaLocalCoordinates[Constants.VERTEX_INDEX_X];
final float touchAreaLocalY = touchAreaLocalCoordinates[Constants.VERTEX_INDEX_Y];

final boolean handledSelf = touchArea.onAreaTouched(pSceneTouchEvent, touchAreaLocalX, touchAreaLocalY);
if(handledSelf) {
return Boolean.TRUE;
return true;
} else if(this.mOnAreaTouchListener != null) {
return this.mOnAreaTouchListener.onAreaTouched(pSceneTouchEvent, touchArea, touchAreaLocalX, touchAreaLocalY);
} else {
return null;
return false;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,22 @@ public float getBaseHeight() {
}

public void setWidth(final float pWidth) {
if (pWidth == mWidth)
return;
this.mWidth = pWidth;
this.updateVertexBuffer();
}

public void setHeight(final float pHeight) {
if (pHeight == mHeight)
return;
this.mHeight = pHeight;
this.updateVertexBuffer();
}

public void setSize(final float pWidth, final float pHeight) {
if (mWidth == pWidth && mHeight == pHeight)
return;
this.mWidth = pWidth;
this.mHeight = pHeight;
this.updateVertexBuffer();
Expand Down
1 change: 0 additions & 1 deletion AndEngine/src/org/anddev/andengine/opengl/font/Font.java
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,6 @@ public synchronized void update(final GL10 pGL) {
bitmap.recycle();
}
lettersPendingToBeDrawnToTexture.clear();
System.gc();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,11 +169,6 @@ public synchronized void updateTextures(final GL10 pGL) {
texturesManaged.remove(textureToBeUnloaded);
}
}

/* Finally invoke the GC if anything has changed. */
if(texturesToBeLoadedCount > 0 || texturesToBeUnloadedCount > 0){
System.gc();
}
}

// ===========================================================
Expand Down
2 changes: 1 addition & 1 deletion AndEngine/src/org/anddev/andengine/util/path/Path.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public int getToTileColumn() {
// Inner and Anonymous Classes
// ===========================================================

public class Step {
public static class Step {
// ===========================================================
// Constants
// ===========================================================
Expand Down
12 changes: 8 additions & 4 deletions AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="ru.nsu.ccfit.zuev.osuplus"
android:installLocation="auto">
android:installLocation="auto">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Expand All @@ -14,6 +13,7 @@
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

<application
android:icon="@drawable/ic_launcher"
Expand All @@ -25,7 +25,7 @@
android:resizeableActivity="false"
android:name="ru.nsu.ccfit.zuev.audio.serviceAudio.SaveServiceObject"
tools:ignore="UnusedAttribute">
<service android:name="ru.nsu.ccfit.zuev.audio.serviceAudio.SongService"/>
<service android:name="ru.nsu.ccfit.zuev.audio.serviceAudio.SongService" android:exported="false"/>

<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
Expand Down Expand Up @@ -54,7 +54,8 @@

<activity
android:name="com.edlplan.ui.ImportReplayActivity"
android:label="@string/act_import_replay">
android:label="@string/act_import_replay"
android:exported="true">

<!-- firefox and file explorer -->
<intent-filter>
Expand Down Expand Up @@ -94,6 +95,7 @@
android:launchMode="singleInstance"
android:screenOrientation="sensorLandscape"
android:label="@string/app_name"
android:exported="false"
tools:ignore="LockedOrientationActivity"/>

<activity
Expand All @@ -103,6 +105,7 @@
android:launchMode="singleInstance"
android:screenOrientation="sensorLandscape"
android:label="@string/app_name"
android:exported="true"
tools:ignore="LockedOrientationActivity">

<!--Multiplayer invite link-->
Expand Down Expand Up @@ -131,6 +134,7 @@
<data android:scheme="file" android:host="*"
android:mimeType="application/octet-stream" android:pathPattern=".*\\.odr"/>
</intent-filter>

<!-- firefox and file explorer -->
<intent-filter>
<action
Expand Down
Loading