nuclearfog / apollo-music Goto Github PK
View Code? Open in Web Editor NEWApollo Music Player App
License: Apache License 2.0
Apollo Music Player App
License: Apache License 2.0
There is an About section in the parameters, but no link to this repository for bug reports and suggestions.
Having one would help get more feedback on this app and incentivize users into contributing.
Describe the bug
I have several folders to hide and you have to do it one by one. Can you add a multi-selection option?
to reproduce
Steps to reproduce the behavior:
Smartphone (please complete the following information):
Firstly the app is great, it has everything i need. The one thing missing is having the option of repeating songs, particularly a single track over and over which i find myself doing at times. Other than that fantasic app and i grateful that i found it and have been using with great satisfaction.
Big lists of items can get hard to navigate and locate yourself in, especially for the Titles category for which i don't really find a use for as it is.
As i previously suggested in #17, having the first letter of the currently shown items appear along the scrollbar would tremendously help you get around quickly among your items, and alleviate this issue. The Titles section would seem much more usable to me as well.
I find the scrollbar touch zone to be very big ! in the album view, it takes almost the entire right side of an album cover. Which for me results in frequent accidental and instant scrolls to random spots in my Albums list.
Perhaps this comes from the app being a bit old and having been designed for smaller screens ?
Maybe the scrollbar touch zone should adapt to the size of the screen. Maybe its touch zone should only be located around the actual scrollbar button. Or maybe it should simply be smaller :)
To alleviate this issue, Apollo could show the current first letter of the Albums it is currently showing, like some apps do with their list:
This example may not be the best as it's specific to contact lists (https://github.com/stephanritscher/Simple-Contacts) , but you probably get the idea.
When browsing a playlist or an album, you gets its cover displayed if it's got one, but not its name.
You could easily provide a space for that name by replacing the "Titles/Tracks" indication at the top of the list, over the album cover, by the name of the album (potentially accompanied by the artist name). The "Titles/Tracks" indication isn't really useful anyway as you can indeed see the below utems being tracks fwr that album :)
While the settings seem to be kept between sessions, after startup the player ignores the equalizer even though it shows it as being on. The equalizer has to be toggled off and back on again after every restart to get the player to use it.
I'd love if there would be a crossfade option, not that many players seem to offer that which is unfortunate.
I personally don't use al the categories in Apollo (namely: Genres, Titles and Recent) and they add a fair bit more swipes left or right when i want to get to the actual categories that i'm interested in.
Please add an option to hide some of the categories in the settings.
type: crash
osVersion: google/panther/panther:14/UP1A.231005.007/2023101300:user/release-keys
package: org.nuclearfog.apollo:28
process: org.nuclearfog.apollo:music
processUptime: 34285 + 357 ms
installer: com.machiav3lli.fdroid
java.lang.RuntimeException: Unable to create service org.nuclearfog.apollo.service.MusicPlaybackService: java.lang.SecurityException: org.nuclearfog.apollo: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4681)
at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2271)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8199)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ExecInit.main(ExecInit.java:49)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
Caused by: java.lang.SecurityException: org.nuclearfog.apollo: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
at android.os.Parcel.createExceptionOrNull(Parcel.java:3066)
at android.os.Parcel.createException(Parcel.java:3050)
at android.os.Parcel.readException(Parcel.java:3026)
at android.os.Parcel.readException(Parcel.java:2968)
at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5699)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1873)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1813)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1801)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755)
at org.nuclearfog.apollo.service.MusicPlaybackService.onCreate(SourceFile:277)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4668)
... 11 more
I have a big collection of short audio recordings on my device, and they all appear on my music collection – and music, they are not !
To prevent that, i'd like Apollo to exclude user-selected folders from being displayed, or to only show music from a user-selected folder.
I don't think there should be a line with nothing on it.
Apollo sometimes doesn't find all the music i have stored on my device.
This is highly possible to be the same problem that affects other music players: MediaStore being old, inefficient and unmaintained.
As suggested in Auxio's issue tracker here : OxygenCobalt/Auxio#322
Bypass MediaStore entirely and just iterate through a Document Tree Uri provided by the user.
Maybe keep an eye on their progress, or try to come up with a solution yourself that could help you both, and potentialy many other developers.
In some cases (genre tracklists, folder tratklists), the default picture that is shown isn't the music note on a grey background, but this Apollo "billboard" with the name of the app and its motto. It's a bit too eye-catching, imho.
It was quite surprizing the first time i used the app and now after several months i still can't get accustomed to it.
Could you use the same default picture (music note on a grey background) everywhere in Apollo where a cover is needed ?
The reason is that after switching to the second song, it looped it and did not switch to the next song.
Describe the bug
The notification doesn't show playback buttons right away :
Instead you need to pull the notification drawer down so that the buttons are shown, which takes an extra step and can get annoying :
It renders these buttons useless, as opening the app from a single tap would give access to these buttons in just the same amount of interactions.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Buttons should be accesible right away without the need to pull the full drawer down.
Smartphone (please complete the following information):
I'd like to know if this app is compatible with all the old Apollo themes. If not, that's fine. I'm good with the color scheme changer.
/res/drawable-nodpi/theme_preview.png
/res/drawable-nodpi/app_widget_recents.png
App crashed when opened for the 1st time. Then it works normally. Checked few more times by uninstall-reinstall it crashes on 1st run everytime.
Logs:
FATAL EXCEPTION: ModernAsyncTask #1
Process: org.nuclearfog.apollo, PID: 6413
java.lang.RuntimeException: An error occurred while executing doInBackground()
at t0.c$c.done(SourceFile:49)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/albums from pid=6413, uid=10097 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.createException(Parcel.java:1950)
at android.os.Parcel.readException(Parcel.java:1918)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
at android.content.ContentResolver.query(ContentResolver.java:803)
at android.content.ContentResolver.query(ContentResolver.java:753)
at android.content.ContentResolver.query(ContentResolver.java:711)
at c2.a.e(SourceFile:41)
at t0.a$a.a(SourceFile:5)
at t0.c$b.call(SourceFile:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
FATAL EXCEPTION: ModernAsyncTask #4
Device details:
App version: 1.4.2
Android: 9
When I download a new song, the song will add to playlist automatically. However, when I change file name of the downloaded song, the playlist couldn't auto refresh, and I didn't find a way to refresh the playlist manually(clear app data dosen't work).
My updater just reported on the recent version:
! repo/org.nuclearfog.apollo_34.apk declares sensitive permission(s):
android.permission.ACCESS_MEDIA_LOCATION
! repo/org.nuclearfog.apollo_34.apk contains signature block blobs: 0x504b4453 (DEPENDENCY_INFO_BLOCK; GOOGLE)
Can you please clarify why a media player would need to obtain the location from media? AFAIK this doesn't mean where it's stored, but where it was recorded (like GPS position).
DEPENDENCY_INFO_BLOCK
can be easily avoided btw:
android {
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
}
For some background: that BLOB is supposed to be just a binary representation of your app's dependency tree. But as it's encrypted with a public key belonging to Google, only Google can read it – and nobody else can even verify what it really contains.
Thanks in advance!
Really great app, I love it!
Thanks for continuing Apollo legacy.
But if it were possible, and not that hard could lyrics be added? It's really all I need in a music player, but I also understand if it's too hard.
as you tagged https://github.com/nuclearfog/Apollo-Music/releases/tag/1.5.4 to https://github.com/nuclearfog/Apollo-Music/releases/tag/1.5.4
And F-Droid checked that and was reproducible and fine: https://gitlab.com/fdroid/fdroiddata/-/jobs/7166303063#L624
but today main build server tried to build and surprise: https://monitor.f-droid.org/builds/log/org.nuclearfog.apollo/44#site-footer not repro
why? you've rebuild the APK in the tagged release from another commit, from 29822a5
now, maybe you don't want to publish "test" releases? that's fine... but do mention that and have a consistent way that you name "test" tags so F-Droid can skip them
/LE: fyi https://gitlab.com/fdroid/fdroiddata/-/commit/0cd475a1ffec173a877ccd8d534777cf8ac29197
Hello,
No Bluetooth command works on this app.
No forward, no back, no pause ?
Love the app used to use in on older versions of android.
Your version is the only one witch works with newer android versions.
Great work !
Tell me if I can help in anyway ? I am a developer so if I can help improve my favorite music app.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Logcat
(OPTIONAL) If applicable, add a Logcat output see: https://developer.android.com/tools/logcat
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Currently, dynamic playlists are not differentiated from user-made ones, which may be confusing because they are also affected by the alphabetical ordering and get mixed up with yours.
Please introduce a way to differentiate them.
My prefered solution would be to have the dynamic ones always at the top of the list, and have them be separated from the rest wf the list by a strong line separator, or any other kind of separation.
Alternatively, they could have their text appear in italics or bold, or their font and/or background colour differ from user-made playlists.
Thanks for this app but I can't add songs I have to an existing playlist. Love that this app found my existing playlists too.
This should be done so that the applications are not confused with https://f-droid.org/packages/com.andrew.apollo/. However, it will be necessary to continue releasing updates with the old package name for some time with a notification that you need to use a new application so that old users understand that you need to download an application with a new package name
I usually build my music queue as i listen to music from it, and it happened several times i wanted to randomize the playback of my queue while lustening to it. Unfortunately, this makes playback stop and restart the playing from the first item of the queue.
Playback shouldn't stop, but instead should randomize all tracks in the queue after you current track is done playing.
I requested this here, but you seem not to be taking your time reading each issue and conflated it with a bug I also posted at about the same time. You closed my request apparently without understanding it & thinking it was related to the bug just because they both involved the equalizer.
What I was requesting was to be able to save each specific set of EQ settings as a preset - e.g. settings that emphasize bass for dance music, lower mid-range for speech, more treble for jazz, etc. each could be saved by the user under different names of their choosing and then quickly changed between by selecting those chosen names from a list.
Hopefully, I've made my request more clear this time. Please let me know if I've not. Thanks!
I'm a native french speaker, anv while the french translation is mostly fine, there are a few places in whuch strings are either not translated, or could use a better translation.
I'm used to doing crowdsourced translation for other opnsource projects, and was looking around for a way to contribut to the l10n or i18n of this app, but couldn't find a practical way to do it, as i'm not quite used to directly translate the strings.
Would you consider using a crowdsourced translation tool like Weblate for that matter ?
It would definitely help get better translation for this app, in languages you wouldn't have thought of, and could potentialy bring in more contributors from around the globe who would report bugs, provide suggestions and contribute code.
As the title says. I don't want to routinely have to fight with getting the exact values I want for each range - I'd rather "set it & forget it." I have settings that lower the volume even lower than Android will allow, which I use for sleep music. Then I'd like to quickly switch among a few other equalizer settings for different music moods. Thanks!
Describe the bug
Apollo does nothing whenever the play/pause button on my headphones is pressed.
I've double-checked my headphones to make sure they're not broken and tested it on other music players. The headphones function properly and the other music players work with the play/pause button.
What's strange is that the headphone also has a next and previous buttons, which Apollo is able to detect them and uses those buttons as intended, it just seems like the play/pause button is the only one that Apollo doesn't work with.
To Reproduce
Expected behavior
What should happen is the song should play or pause if the play/pause button is pressed.
Smartphone (please complete the following information):
Additional context
I'm using Sony WH-CH510 headphones which I've bought a few months ago. They are in good condition and are completely functional so they are not the cause of this issue.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.