Use androidx.preferences for backwards compatibility
Updated BuildTypeNoticeFragment to use requireContext() instead of context!!
Changed orderText to orderButton from FilterMenuFragment to make it clear that it's clickable
Use int values for Snackbar duration since using the LENGTH constants fails the lint check[^2]
Prompt users before opening a site link from the MainScene
Updated BassAudioProvider and BassSoundProvider to have a dynamic volume so that the client won't need to restart when the volume options are changed
Updated ToastLogger to not be a Runnable and execute Toast.makeText() in showText instead
Use okio on classes that read human-readable files for faster file reading speeds
Remove default value declarations from Config
Updated LibraryManager to be more efficient
Changed the typeAuto parameter to unranked from GameMod
Use FPSCounter instead of FPSLogger from GameScene
Show the play-unranked sprite instead of showing a Toast at the end of a game session for unranked mods and features
Prevent crash with unplayable sound files (thanks to un4seen's BASS library update)
Added FadeOutModifier to SplashScene and LoadingScene to make it snappier
Updated OnlineFileOperator to use the game's signed signature to prevent unauthorized score submissions
Use WebViewFragment for viewing profiles from OnlinePanel
Use okhttp on PostBuilder, OnlineManager and OnlineFileOperator
Disable AndEngine's debug logging methods on non-debug release builds
Footnotes
[^1]: The updater checks for the latest release of the repository and
fetches the version code from the contents of the info.json asset file
to compare it with the client's version code then searches for the .apk asset file.
This pull request has over 2 months worth of changes so I'm just going to list all of them:
Added
Firebase
(Analytics
,Crashlytics
andCloud Messaging
)SettingsFragment
for the new SettingsMenu along with theBackPressListener
interfaceWebViewFragment
(for the in-game profile and other features that require sites to be shown in-game in the future)LoadingScreen
for Android UI/Game related operations that takes some time to executereceiveAnnouncements
option for receiving push notificationssafebeatmapbg
option for replacing(only in-game not image file) all beatmaps' background with the current skin'smenu-background
imagetrianglesAnimation
option for toggling the visibility ofTriangleEffectView
sFileUtils
helper for faster file-related operationsskinPath
option since addingreloadSkinsList()
toSettingsMenu
crashes the gamefragment_settings.xml
:rotate_360.xml
,slide_in_left.xml
,slide_in_right.xml
fragment_settings.xml
andfragment_webview.xml
:back_black.png
,close_black.png
Removed
Changes
HTTPS
protocol for all web-related operationsAndroidManifest.xml
:compileSdkVersion 30
,targetSdkVersion 29
,minSdkVersion 21
11
on theandroid.yml
workflow.wav
and.mp3
to.ogg
to reduce app sizeEditTextPreference
s toSeekBarPreference
ssound
option tobeatmapSounds
since it confuses the compiler for thesound
PreferenceScreen
hideReplayMarquee
andhideInGameUI
togeneral
PreferenceScreen
showProgressBar
intohideInGameUi
SecurityUtils
to not use the deprecatedPackageManager.GET_SIGNATURES
API on Android >= 9 and add a backport for lower versionsFileUtils
OdrConfig
andOdrDatabase
to use the paths fromConfig
ColorPickerPreference
libraryandroidx.preferences
for backwards compatibilityBuildTypeNoticeFragment
to userequireContext()
instead ofcontext!!
orderText
toorderButton
fromFilterMenuFragment
to make it clear that it's clickableint
values forSnackbar
duration since using theLENGTH
constants fails the lint check[^2]MainScene
BassAudioProvider
andBassSoundProvider
to have a dynamic volume so that the client won't need to restart when the volume options are changedToastLogger
to not be aRunnable
and executeToast.makeText()
inshowText
insteadokio
on classes that read human-readable files for faster file reading speedsConfig
LibraryManager
to be more efficienttypeAuto
parameter tounranked
fromGameMod
FPSCounter
instead ofFPSLogger
fromGameScene
play-unranked
sprite instead of showing aToast
at the end of a game session for unranked mods and featuresBASS
library update)FadeOutModifier
toSplashScene
andLoadingScene
to make it snappierOnlineFileOperator
to use the game's signed signature to prevent unauthorized score submissionsWebViewFragment
for viewing profiles fromOnlinePanel
okhttp
onPostBuilder
,OnlineManager
andOnlineFileOperator
AndEngine
's debug logging methods on non-debug release buildsFootnotes
[^1]: The updater checks for the latest release of the repository and fetches the version code from the contents of the
info.json
asset file to compare it with the client's version code then searches for the.apk
asset file.info.json
example:[^2]: Thanks to this Stack Overflow answer for providing the correct values