akanetan / gramophone Goto Github PK
View Code? Open in Web Editor NEWA sane music player built with media3 and material design library that is following android's standard strictly.
License: GNU General Public License v3.0
A sane music player built with media3 and material design library that is following android's standard strictly.
License: GNU General Public License v3.0
Describe the bug
The bug is reproduced reliably by uninstalling everything, reinstalling 1.0.1 from F-droid, placing the icon on homescreen, and then updating from a dev apk; the icon disappears from homescreen/launcher.
See these relevant logs, especially I'm think about the resource path change, would this explain something?
12-03 18:00:10.285 1373 1415 I ActivityManager: Force stopping org.akanework.gramophone appid=10373 user=-1: installPackageLI
12-03 18:00:10.285 1373 1415 I ActivityManager: Killing 30042:org.akanework.gramophone/u0a373 (adj 902): stop org.akanework.gramophone
12-03 18:00:10.498 1373 1451 I PackageManager: Package org.akanework.gramophone codePath changed from /data/app/org.akanework.gramophone-xUmAcNl8BZ7oAbKjLfQxRw== to /data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==; Retaining data and using new
12-03 18:00:10.499 1373 1451 W PackageManager: Code path for org.akanework.gramophone changing from /data/app/org.akanework.gramophone-xUmAcNl8BZ7oAbKjLfQxRw== to /data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==
12-03 18:00:10.499 1373 1451 W PackageManager: Resource path for org.akanework.gramophone changing from /data/app/org.akanework.gramophone-xUmAcNl8BZ7oAbKjLfQxRw== to /data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==
12-03 18:00:10.774 1373 1451 W PackageManager: Privileged permission android.permission.READ_PRIVILEGED_PHONE_STATE for package com.android.vending - not in privapp-permissions whitelist
12-03 18:00:10.775 1373 1451 W PackageManager: Privileged permission android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME for package com.android.vending - not in privapp-permissions whitelist
12-03 18:00:10.775 1373 1451 W PackageManager: Privileged permission android.permission.REBOOT for package com.android.vending - not in privapp-permissions whitelist
12-03 18:00:10.775 1373 1451 W PackageManager: Privileged permission android.permission.CHANGE_OVERLAY_PACKAGES for package com.android.vending - not in privapp-permissions whitelist
12-03 18:00:10.785 1373 1451 W PackageManager: Privileged permission android.permission.FORCE_STOP_PACKAGES for package com.google.android.gms - not in privapp-permissions whitelist
12-03 18:00:10.786 1373 1451 W PackageManager: Privileged permission android.permission.ALLOCATE_AGGRESSIVE for package com.google.android.gms - not in privapp-permissions whitelist
12-03 18:00:10.786 1373 1451 W PackageManager: Privileged permission android.permission.MODIFY_DAY_NIGHT_MODE for package com.google.android.gms - not in privapp-permissions whitelist
12-03 18:00:10.787 1373 1451 W PackageManager: Privileged permission android.permission.MEDIA_CONTENT_CONTROL for package com.google.android.gms - not in privapp-permissions whitelist
12-03 18:00:10.794 1373 1451 W PackageManager: Privileged permission android.permission.GET_ACCOUNTS_PRIVILEGED for package com.sonyericsson.album - not in privapp-permissions whitelist
12-03 18:00:10.800 1373 1451 W PackageManager: Privileged permission android.permission.READ_FRAME_BUFFER for package com.sonymobile.assist - not in privapp-permissions whitelist
12-03 18:00:10.800 1373 1451 W PackageManager: Privileged permission android.permission.CHANGE_CONFIGURATION for package com.sonymobile.assist - not in privapp-permissions whitelist
12-03 18:00:11.784 1373 1451 I zygote64: Explicit concurrent copying GC freed 350470(16MB) AllocSpace objects, 44(880KB) LOS objects, 42% free, 32MB/56MB, paused 13.880ms total 683.432ms
12-03 18:00:11.801 1033 14252 E : Couldn't opendir /data/app/vmdl68976705.tmp: No such file or directory
12-03 18:00:11.801 1033 14252 E installd: Failed to delete /data/app/vmdl68976705.tmp: No such file or directory
12-03 18:00:11.804 1373 1451 I ActivityManager: Force stopping org.akanework.gramophone appid=10373 user=0: pkg removed
12-03 18:00:11.868 1966 1966 D Avrcp : AvrcpServiceBroadcastReceiver-> Action: android.intent.action.PACKAGE_REMOVED
12-03 18:00:11.873 1966 1966 D BluetoothMapAppObserver: onReceive
12-03 18:00:11.873 1966 1966 D BluetoothMapAppObserver: The removed package is: org.akanework.gramophone
12-03 18:00:11.885 1373 1951 I ActivityManager: START u0 {dat=file:///data/user_de/0/com.google.android.packageinstaller/no_backup/package3172483816408597591.apk flg=0x2000000 cmp=com.google.android.packageinstaller/com.android.packageinstaller.InstallSuccess (has extras)} from uid 10048
12-03 18:00:11.889 1373 1951 D ActivityTrigger: activityStartTrigger: Activity is Triggerred in full screen ApplicationInfo{a2ff1ca com.google.android.packageinstaller}
12-03 18:00:11.889 1373 1951 E ActivityTrigger: activityStartTrigger: not whiteListedcom.google.android.packageinstaller/com.android.packageinstaller.InstallSuccess/26
12-03 18:00:11.889 1373 1951 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{a2ff1ca com.google.android.packageinstaller} is now in focus and seems to be in full-screen mode
12-03 18:00:11.889 1373 1951 E ActivityTrigger: activityResumeTrigger: not whiteListedcom.google.android.packageinstaller/com.android.packageinstaller.InstallSuccess/26
12-03 18:00:11.889 1373 1951 D ActivityTrigger: ActivityTrigger activityPauseTrigger
12-03 18:00:11.890 29660 29785 I davx5 : [syncadapter.SyncUtils] App launched or other package (un)installed; current tasks provider = TasksOrg
12-03 18:00:11.892 1373 1451 I ActivityManager: Force stopping org.akanework.gramophone appid=10373 user=0: pkg removed
12-03 18:00:11.894 1373 1451 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{a2ff1ca com.google.android.packageinstaller} is now in focus and seems to be in full-screen mode
12-03 18:00:11.894 1373 1451 E ActivityTrigger: activityResumeTrigger: not whiteListedcom.google.android.packageinstaller/com.android.packageinstaller.InstallSuccess/26
12-03 18:00:11.906 30201 30201 I Finsky : [2] xad.g(1): xad - Received: android.intent.action.PACKAGE_REMOVED, [Mts5stGbxTFpDGtXXQga1tq71fmd0TCoxjv5xEdWP50]
12-03 18:00:11.916 1373 1373 I ActivityManager: Start proc 30359:com.android.keychain/1000 for service com.android.keychain/.KeyChainService
12-03 18:00:11.919 1373 30364 E PacketFilter: combine fail
12-03 18:00:11.924 1373 5907 D ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{a2ff1ca com.google.android.packageinstaller} is now in focus and seems to be in full-screen mode
12-03 18:00:11.924 1373 5907 E ActivityTrigger: activityResumeTrigger: not whiteListedcom.google.android.packageinstaller/com.android.packageinstaller.InstallSuccess/26
12-03 18:00:11.934 1373 1438 W ResourceType: ResTable_typeSpec entry count inconsistent: given 1398, previously 1470
12-03 18:00:11.934 1373 1438 W ResourceType: ResTable_typeSpec entry count inconsistent: given 324, previously 340
12-03 18:00:11.934 1373 1438 W ResourceType: ResTable_typeSpec entry count inconsistent: given 348, previously 3130
12-03 18:00:11.939 2175 2175 D ImsResolver: maybeAddedImsService, packageName: org.akanework.gramophone
12-03 18:00:11.941 1966 1966 D Avrcp : AvrcpServiceBroadcastReceiver-> Action: android.intent.action.PACKAGE_ADDED
12-03 18:00:11.941 1966 1966 D Avrcp : AvrcpServiceBroadcastReceiver-> packageName: org.akanework.gramophone
12-03 18:00:11.941 1966 1966 D Avrcp : packageName: org.akanework.gramophone removed: false
12-03 18:00:11.944 1966 1966 D Avrcp : isBrowsableListUpdated: package includes MediaBrowserService, true
12-03 18:00:11.946 3055 3055 I InstalledPackageCache: Update: Received update request for 0
12-03 18:00:11.948 1966 1966 D Avrcp : Trying to connect to com.sonyericsson.music.proxyservice.PlaybackService
12-03 18:00:11.948 1966 1966 D Avrcp : Exit handlePackageModified
12-03 18:00:11.948 1966 1966 D BluetoothMapAppObserver: onReceive
12-03 18:00:11.948 1966 1966 D BluetoothMapAppObserver: The installed package is: org.akanework.gramophone
12-03 18:00:11.954 1966 1966 D BluetoothMapAppObserver: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_PROVIDER
12-03 18:00:11.955 1966 1966 D BluetoothMapAppObserver: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_IM_PROVIDER
Smartphone (please complete the following information):
Is your feature request related to a problem? Please describe.
When playing music and disconnecting a wired or Bluetooth earphones, the music does not pause by itself and continues to play.
I would like the music to stop, because the moment i disconnect my earphones the song will play from my phone's speaker.
Describe the bug
Release year label in flac format cannot be read
Expected behavior
Can correctly read flac tags and add sorting function
Form Version [1.0.2.d9fc41]
The translation files are licensed AGPLv3+, when the source code files are licensed GPLv3+
Describe the bug
The license of the translation files should be changed to GPLv3+
To Reproduce
Distribute app as GPLv3+, when files are AGPLv3+.
I think there is some in-built compatibility that allows this, but seems to be in error.
Expected behavior
https://hosted.weblate.org/projects/gramophone/#information
should match
https://github.com/AkaneTan/Gramophone/blob/beta/LICENSE
Screenshots
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Can be fixed in https://hosted.weblate.org/settings/gramophone/strings-xml/
Great improvement to the previous Symphonica version! I like the new project. The only thing I'm missing is the ability to play other file formats like .wav.
It would be really convenient if you'd add the possibility to play .wav files.
for some reason, some songs won't even play even after refreshing so many times. i tried deleting the file and redowloading it a few times, even downloading it in different formats such as mp3 and flac but the result was the same. all my other songs have the same bitrate and file type
i decided to try to play the same file on oto music and it works flawlessly so i'm clueless about what it could be
no matter how many times i try, even force closing the app or deleting data or uninstall gramophone as a whole the result is the same
i downloaded all the songs i have using spowlo on default settings
Is your feature request related to a problem? Please describe.
Thanks in advance.
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.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
.
Play next isn't available when shuffle is enabled so It's literally doesn't makes sense
Describe the bug
When compared to README screenshots, tabs underlining seems like the upper part of something with no lower part, see the screenshot below (purple underlining have rounded corner on the upper side but a straight cut on the lower side under "Songs").
Expected behavior
This looked more natural the way it looked on the README's screenshots, but slight redesigns might have happened since
Screenshots
Smartphone (please complete the following information):
Describe the bug
Gramophone currently shows no covers at all
To Reproduce
Just install Gramophone, probably on older Android (see below) and have songs that should have covers whether it is in metadata or a cover picture in the folder and see that none are displayed
Expected behavior
Covers should be loaded
Smartphone (please complete the following information):
Additional context
This might be because of some changes in behavior along Android versions, and maybe some information can be found there: chr56/Phonograph_Plus#65 (comment)
These logs seems related:
11-06 17:41:03.324 3226 3426 E DatabaseUtils: Writing exception to parcel
11-06 17:41:03.324 3226 3426 E DatabaseUtils: java.lang.SecurityException: External path: /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1620562783893: Neither user 10248 nor current process has android.permission.WRITE_EXTERNAL_STORAGE.
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.app.ContextImpl.enforce(ContextImpl.java:1735)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1767)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:756)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.enforceCallingOrSelfPermissionAndAppOps(MediaProvider.java:5680)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.checkAccess(MediaProvider.java:4604)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.ensureFileExists(MediaProvider.java:3473)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.getAlbumArtOutputUri(MediaProvider.java:4887)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.makeThumbInternal(MediaProvider.java:5020)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.getThumb(MediaProvider.java:4950)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at com.android.providers.media.MediaProvider.openFile(MediaProvider.java:4503)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.content.ContentProvider.openAssetFile(ContentProvider.java:1545)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1725)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1791)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:425)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:308)
11-06 17:41:03.324 3226 3426 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:674)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: Writing exception to parcel
11-06 17:41:03.327 3226 3704 E DatabaseUtils: java.lang.SecurityException: External path: /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1620562614225: Neither user 10248 nor current process has android.permission.WRITE_EXTERNAL_STORAGE.
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.app.ContextImpl.enforce(ContextImpl.java:1735)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1767)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:756)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.enforceCallingOrSelfPermissionAndAppOps(MediaProvider.java:5680)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.checkAccess(MediaProvider.java:4604)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.ensureFileExists(MediaProvider.java:3473)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.getAlbumArtOutputUri(MediaProvider.java:4887)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.makeThumbInternal(MediaProvider.java:5020)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.getThumb(MediaProvider.java:4950)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at com.android.providers.media.MediaProvider.openFile(MediaProvider.java:4503)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.content.ContentProvider.openAssetFile(ContentProvider.java:1545)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1725)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1791)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:425)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:308)
11-06 17:41:03.327 3226 3704 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:674)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: Writing exception to parcel
11-06 17:41:03.340 3226 3240 E DatabaseUtils: java.lang.SecurityException: External path: /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1611423074907: Neither user 10248 nor current process has android.permission.WRITE_EXTERNAL_STORAGE.
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.app.ContextImpl.enforce(ContextImpl.java:1735)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1767)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:756)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.enforceCallingOrSelfPermissionAndAppOps(MediaProvider.java:5680)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.checkAccess(MediaProvider.java:4604)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.ensureFileExists(MediaProvider.java:3473)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.getAlbumArtOutputUri(MediaProvider.java:4887)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.makeThumbInternal(MediaProvider.java:5020)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.getThumb(MediaProvider.java:4950)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at com.android.providers.media.MediaProvider.openFile(MediaProvider.java:4503)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.content.ContentProvider.openAssetFile(ContentProvider.java:1545)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1725)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1791)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:425)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:308)
11-06 17:41:03.340 3226 3240 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:674)
What's strange though is that the application does have the storage permission though.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional Feature Requests "Take ur Time"
Lastly, Thanks for such a beautiful Offline Music Player, Hope to see fixes and improments in future.
The roadmap states that web streaming is a goal of this project. I would like to ask what this means. Is the plan to support some selfhosted streaming api like subsonic/jellyfin or rather support a large streaming service like spotify or youtube?
Looking forward for armv7 build. I hope to provide some feedback on my older hardware.
The app uses various folders for searching music.
The fact is that you can't remove the folders that you don't want and you can't select a singular folder for music.
Can you add this?
Audio skipping during playback of ACC codec .m4a format
Some of my .m4a format audio file skipping/shuttering during playback. It is strange some audio with same codec works just fine. I checked if specific audio file was corrupted in case, but with native audio player it seems to play just fine. I have provided below some logs during specific event when audio skips happen. Could be just related to my old outdated hardware/codec. I hope there is way to troubleshoot this.
Expected behavior
A Smooth playback without any shutter of audio.
Logcat Details
11.09 14:13:23.865 10138 952 952 com.android.systemui V/MediaTimeout: processState: PlaybackState {state=3, position=6295, buffered position=64505, speed=1.0, updated=47267352, actions=7340031, custom actions=[Action:mName='Shuffle, mIcon=2131165386, mExtras=Bundle[EMPTY_PARCEL], Action:mName='Close, mIcon=2131165340, mExtras=Bundle[EMPTY_PARCEL]], active item id=26, error=null}
11.09 14:13:24.282 1046 555 17703 W/C2SoftAacDec: aacDecoder_DecodeFrame decoderErr = 0x4004
11.09 14:13:24.283 1046 555 17703 W/C2SoftAacDec: AAC decoder returned error 0x4004, substituting silence
11.09 14:13:24.666 1046 555 17703 W/C2SoftAacDec: aacDecoder_DecodeFrame decoderErr = 0x4004
11.09 14:13:24.666 1046 555 17703 W/C2SoftAacDec: AAC decoder returned error 0x4004, substituting silence
11.09 14:13:25.048 1041 465 570 W/APM::AudioPolicyEngine: getDevicesForStrategy() unknown strategy: -1
11.09 14:13:25.585 1046 555 17703 W/C2SoftAacDec: aacDecoder_DecodeFrame decoderErr = 0x4004
11.09 14:13:25.585 1046 555 17703 W/C2SoftAacDec: AAC decoder returned error 0x4004, substituting silence
11.09 14:13:25.971 1046 555 17703 W/C2SoftAacDec: aacDecoder_DecodeFrame decoderErr = 0x4004
11.09 14:13:25.971 1046 555 17703 W/C2SoftAacDec: AAC decoder returned error 0x4004, substituting silence
11.09 14:13:26.322 10212 17148 17702 org.akanework.gramophone D/CCodecBuffers: [c2.android.aac.decoder#20:1D-Input.Impl[N]] codec released a buffer owned by client (index 3)
11.09 14:13:26.326 10212 17148 17702 org.akanework.gramophone D/CCodecBuffers: [c2.android.aac.decoder#20:1D-Input.Impl[N]] codec released a buffer owned by client (index 0)
11.09 14:13:26.869 10138 952 952 com.android.systemui V/MediaTimeout: processState: PlaybackState {state=3, position=9294, buffered position=64505, speed=1.0, updated=47270357, actions=7340031, custom actions=[Action:mName='Shuffle, mIcon=2131165386, mExtras=Bundle[EMPTY_PARCEL], Action:mName='Close, mIcon=2131165340, mExtras=Bundle[EMPTY_PARCEL]], active item id=26, error=null}
11.09 14:13:31.669 10212 17148 17702 org.akanework.gramophone D/CCodecBuffers: [c2.android.aac.decoder#20:1D-Input.Impl[N]] codec released a buffer owned by client (index 1)
11.09 14:13:31.678 10212 17148 17702 org.akanework.gramophone D/CCodecBuffers: [c2.android.aac.decoder#20:1D-Input.Impl[N]] codec released a buffer owned by client (index 0)
11.09 14:13:32.179 1046 555 17703 W/C2SoftAacDec: aacDecoder_DecodeFrame decoderErr = 0x4004
11.09 14:13:32.179 1046 555 17703 W/C2SoftAacDec: AAC decoder returned error 0x4004, substituting silence
11.09 14:13:32.186 10212 17148 17702 org.akanework.gramophone D/CCodecBuffers: [c2.android.aac.decoder#20:1D-Input.Impl[N]] codec released a buffer owned by client (index 2)
11.09 14:13:32.464 1046 555 17703 D/BufferPoolAccessor2.0: bufferpool2 0xb3939418 : 6(24576 size) total buffers - 1(4096 size) used buffers - 14552/14558 (recycle/alloc) - 91/14557 (fetch/transfer)
11.09 14:13:32.499 10212 17148 17164 org.akanework.gramophone I/work.gramophon: Background young concurrent copying GC freed 51887(1918KB) AllocSpace objects, 12(2592KB) LOS objects, 23% free, 14MB/18MB, paused 176us total 116.912ms
Smartphone info:
Is your feature request related to a problem? Please describe.
Currently when a timer is started in the app only the timer icon gets bolder and there is no indication on how much of the timer is left.
Tapping the timer icon brings up the page to set the timer and does not have any info of current running timer.
Describe the solution you'd like
When there is an active timer, add info on how much of the timer is left to the now playing page.
Add option to increase playback speed .Also add option to remember playback speed through entire app
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
An error saying "No Virtual Method"
To Reproduce
Steps to reproduce the behavior:
Expected behavior
crashes when clicking a song
Smartphone (please complete the following information):
Please support local lyrics (LRC file)
Thanks 🙏
Dear Gramophone Development Team,
I hope this message finds you well. I am an avid user of the Gramophone app, and I must say that I thoroughly enjoy its sleek UI and seamless music playback experience. However, I have identified a couple of features that, in my opinion, could enhance the user experience even further.
Firstly, the ability to edit lyrics directly within the app would be a fantastic addition. Many users, including myself, often come across situations where we'd like to customize or correct lyrics for a more personalized experience. Incorporating an editable lyrics feature would undoubtedly cater to this need.
Secondly, an auto-fetch lyrics option from online sources would be immensely beneficial. This feature could save users time and effort by automatically retrieving accurate and up-to-date lyrics for the songs they're listening to. This could be particularly handy when exploring new music or rediscovering old favorites.
I understand that implementing new features requires time and resources, but I believe these additions would significantly elevate the Gramophone app's functionality and appeal to a broader audience.
Thank you for your dedication to providing an exceptional music listening experience. I look forward to potential updates and improvements.
Describe the bug
While player isn't used, there are these huge exceptions in logs.
Those should probably be taken care of, and these exception are at a log level of "information", which it probably shouldn't: these are exceptions.
To Reproduce
No STR
Expected behavior
No such exceptions in logs.
Smartphone (please complete the following information):
Additional context
The logs:
12-28 23:09:43.559 7341 7341 I zygote64: Rejecting re-init on previously-failed class java.lang.Class<u1.p0>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
12-28 23:09:43.559 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.559 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.559 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.559 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.559 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.559 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.559 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.559 7341 7341 I zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/base.apk"],nativeLibraryDirectories=[/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/lib/arm64, /system/lib64, /system/vendor/lib64]]
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
12-28 23:09:43.559 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.559 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.559 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.559 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.559 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.559 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.559 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.559 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.559 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.559 7341 7341 I zygote64:
12-28 23:09:43.560 7341 7341 I zygote64: Rejecting re-init on previously-failed class java.lang.Class<u1.p0>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
12-28 23:09:43.560 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.560 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.560 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.560 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.560 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.560 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.560 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.560 7341 7341 I zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/base.apk"],nativeLibraryDirectories=[/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/lib/arm64, /system/lib64, /system/vendor/lib64]]
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
12-28 23:09:43.560 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.560 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.560 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.560 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.560 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.560 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.560 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.560 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.560 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.560 7341 7341 I zygote64:
12-28 23:09:43.561 7341 7341 I zygote64: Rejecting re-init on previously-failed class java.lang.Class<u1.p0>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
12-28 23:09:43.561 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.561 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.561 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.561 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.561 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.561 7341 7341 I zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/base.apk"],nativeLibraryDirectories=[/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/lib/arm64, /system/lib64, /system/vendor/lib64]]
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.561 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.561 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.561 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.561 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.561 7341 7341 I zygote64:
12-28 23:09:43.561 7341 7341 I zygote64: Rejecting re-init on previously-failed class java.lang.Class<u1.p0>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/media/AudioTrack$StreamEventCallback;
12-28 23:09:43.561 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.561 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.561 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.561 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.561 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.561 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.562 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.562 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.562 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.562 7341 7341 I zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.media.AudioTrack$StreamEventCallback" on path: DexPathList[[zip file "/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/base.apk"],nativeLibraryDirectories=[/data/app/org.akanework.gramophone-5OLWvLmuX83BTRBCaWSfOw==/lib/arm64, /system/lib64, /system/vendor/lib64]]
12-28 23:09:43.562 7341 7341 I zygote64: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
12-28 23:09:43.562 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
12-28 23:09:43.562 7341 7341 I zygote64: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
12-28 23:09:43.562 7341 7341 I zygote64: at boolean o0.g.s() (SourceFile:1)
12-28 23:09:43.562 7341 7341 I zygote64: at boolean com.bumptech.glide.c.F() (SourceFile:5)
12-28 23:09:43.562 7341 7341 I zygote64: at java.lang.Object q3.a.b(java.lang.Class, java.util.HashSet) (SourceFile:1)
12-28 23:09:43.562 7341 7341 I zygote64: at void q3.a.a(android.os.Bundle) (SourceFile:84)
12-28 23:09:43.562 7341 7341 I zygote64: at boolean androidx.startup.InitializationProvider.onCreate() (SourceFile:51)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo, boolean) (ContentProvider.java:1919)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.content.ContentProvider.attachInfo(android.content.Context, android.content.pm.ProviderInfo) (ContentProvider.java:1894)
12-28 23:09:43.562 7341 7341 I zygote64: at android.app.ContentProviderHolder android.app.ActivityThread.installProvider(android.content.Context, android.app.ContentProviderHolder, android.content.pm.ProviderInfo, boolean, boolean, boolean) (ActivityThread.java:6316)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.app.ActivityThread.installContentProviders(android.content.Context, java.util.List) (ActivityThread.java:5882)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5803)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.app.ActivityThread.-wrap1(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1666)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.os.Looper.loop() (Looper.java:251)
12-28 23:09:43.562 7341 7341 I zygote64: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6572)
12-28 23:09:43.562 7341 7341 I zygote64: at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-28 23:09:43.562 7341 7341 I zygote64: at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:240)
12-28 23:09:43.562 7341 7341 I zygote64: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:767)
12-28 23:09:43.562 7341 7341 I zygote64:
Great player as it automatically detected my playlists and added them to the app.
I not seeing how to add songs or delete songs from the 3 dots. Am I missing something?
Thanks
Describe the bug
Settings menu can slide when it's short and shouldn't be able to, and when it's long enough the very bottom is partially hidden
To Reproduce
Just visit settings with this release
Expected behavior
We shouldn't be able to slide from settings menu short enough, and should be able to see everything when it's long enough.
Screenshots
This one is short enough, see on first screenshot. Despite that, you can slide and end up in the state of second screenshot.
That one is long enough, and the very bottom is partially hidden
Smartphone (please complete the following information):
Is your feature request related to a problem? Please describe.
CPU usage
Describe the solution you'd like
MediaPlayer uses less CPU
Describe alternatives you've considered
Not doing it - less work
Additional context
Media3 supports custom implementations of the "Player" interface, doesn't need to be ExoPlayer, so app architecture can stay the same and only GramophonePlaybackService will need changes
It lacks feature to ingore mediastore library lack of this makes ablumart showing incorrectly
Describe the bug
Can't reproduce reliably currently nor am I sure this happened when switching to landscape/portrait or just coming back to Gramophone from something else, but it ended up totally crashed
Expected behavior
No crash
Logs from adb logcat
and Screenshot from exception from within application
12-03 16:58:41.903 7854 7854 E AndroidRuntime: FATAL EXCEPTION: main
12-03 16:58:41.903 7854 7854 E AndroidRuntime: Process: org.akanework.gramophone, PID: 7854
12-03 16:58:41.903 7854 7854 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {org.akanework.gramophone/org.akanework.gramophone.ui.MainActivity}: java.util.concurrent.CancellationException: Task was cancelled.
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3650)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3690)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1648)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:105)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.os.Looper.loop(Looper.java:251)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6572)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: Caused by: java.util.concurrent.CancellationException: Task was cancelled.
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at j6.l.g(SourceFile:33)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at j6.l.get(Unknown Source:21)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at org.akanework.gramophone.ui.components.PlayerBottomSheet.setVisible(SourceFile:28)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at o7.a.B(SourceFile:1)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.support.v4.media.k.Q(SourceFile:51)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at d1.e1.q(SourceFile:70)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at d1.e1.k(SourceFile:58)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at d1.y0.N(SourceFile:62)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at d1.y0.u(SourceFile:36)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at d1.i0.onStart(SourceFile:68)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at h.o.onStart(SourceFile:1)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.Activity.performStart(Activity.java:6992)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.Activity.performRestart(Activity.java:7066)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.Activity.performResume(Activity.java:7071)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3625)
12-03 16:58:41.903 7854 7854 E AndroidRuntime: ... 8 more
12-03 16:58:41.976 1373 1438 W ActivityManager: setHasOverlayUi called on unknown pid: 785
Smartphone (please complete the following information):
Describe the bug
something about the permissions being denied "WRITE_EXTERNAL_STORAGE"
To Reproduce
Steps to reproduce the behavior:
Expected behavior
when opening it for the first time it will crash saying about permission denied
Smartphone (please complete the following information):
Is your feature request related to a problem? Please describe.
Lyrics are not supported in opus files and not found in m4a
Describe the solution you'd like
Added the support for opus and fix for m4a
Describe alternatives you've considered
Support for external lrc (Idk if its already implemented or it will be added in the next update, but I know the app already have)
Describe the bug
When I swiping back from player page, I'm going to homescreen instead of home page
Example
https://mega.nz/file/cyIiSBaD#Mmb0RQGP1Gb7VfSvr1pViTk_1f39YLo34V3m_OrAm_k
Describe the bug
There's a delay to show the songs and it shows there's 0 songs for a couple of seconds on every start. Bug was experienced on the release from #37 (comment) and is a regression: 1.0.1 was showing everything instantly.
To Reproduce
Just launch the application
Expected behavior
This should be an instant show like it was on previous release.
Smartphone (please complete the following information):
Would be nice to have an option to create playlist by adding folders instead of manually picking artists/albums (similar to how aimp handles playlist creation).
androidx splash screen lib and keep showing until load done
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.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
The album cover does not show up if I manually add it trough a software like Mp3tag.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expected the album cover to show up, but it only show up on the lock screen or the toolbar at the top.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Hey, I'd like to suggest adding the Subsonic API as a web streaming backend when it comes out. It's a self-hostable, popular API implemented by many popular media/music servers, like Navidrome.
All Android apps for Subsonic (even those that claim to be following MD3 guidelines) still look like trash, but Gramophone has THE best design I've ever seen in a music player app! Good job!
Describe the bug
System buttons with no backgrounds can be very hard to read in some situations
To Reproduce
Just run Gramophone in on an Android presenting the buttons visible in the screenshot below
Expected behavior
It should be easier to read those buttons
Screenshots
Smartphone (please complete the following information):
Additional context
This might be somewhat related to issues I reported where the buttons where white on a white background. I can add references to those issues if you think it'd be of any help.
@IzzySoft hi sorry for the ping, but the app on izzydroid is outdated XD
Can I expect an update soon?
P.S. I saw the fastlane thing for songsync, is it also something necessary for Gramophone?
Describe the bug
after installing the version 1.0.2.bd8ec5 audio playback works great but there's a new issue now. whenever i try to read the lyrics of any song, the message described in the title will appear regardless of the song and audio format and quality.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
lyrics showing up normally and no error message should appear whatsoever
Smartphone (please complete the following information):
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.