Giter VIP home page Giter VIP logo

phonograph_plus's People

Contributors

chr56 avatar eku avatar pixel2user avatar porkepix avatar poussinou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phonograph_plus's Issues

[Bug]: Crash during playback, Animator already started

Bug Summary

During song playback, I sometimes (seemingly random) have Phonograph Plus crash. I am using a Pixel 6, running GrapheneOS.

This is the crashlog:

Crash Report:

Package name:    player.phonograph.plus
App version:     0.5.0 (450)
Git Commit Hash: 13b4722d48f77ccf81dd
Android version: 13 (SDK 33)
Device brand:    google  (by Google)
Device model:    Pixel 6 (code: oriole)
Product name:    oriole
Build version:   TQ1A.221205.011.2022122000 
                 (2022122000)
Hardware:        oriole
Language:        en

java.lang.IllegalStateException: Animator has already started, cannot change it now!
	at android.graphics.animation.RenderNodeAnimator.checkMutable(RenderNodeAnimator.java:138)
	at android.graphics.animation.RenderNodeAnimator.setDuration(RenderNodeAnimator.java:314)
	at android.graphics.animation.RenderNodeAnimator.setDuration(RenderNodeAnimator.java:37)
	at android.animation.AnimatorSet.updateAnimatorsDuration(AnimatorSet.java:774)
	at android.animation.AnimatorSet.getTotalDuration(AnimatorSet.java:1744)
	at android.animation.AnimationHandler.lambda$new$0$android-animation-AnimationHandler(AnimationHandler.java:224)
	at android.animation.AnimationHandler$$ExternalSyntheticLambda0.doFrame(Unknown Source:2)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1229)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
	at android.view.Choreographer.doCallbacks(Choreographer.java:899)
	at android.view.Choreographer.doFrame(Choreographer.java:827)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7878)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	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:355)

Version

0.5.0

Steps to reproduce the bug

Unclear, appears randomly during song playback, usually pretty quickly after the song is clicked on for playback (in the first couple seconds)

Screenshots or Screen recordings

No response

Environment

OS: GrapheneOS
Device: Pixel 6

Other helpful information

No response

Failed To Save Playlists

When I try to add files to an existing playlist it fails to add them. Any ideas on what is going on? It does ask for the playlist to be created and saved first then it says it is failed. I even try to add 1 song to an existing playlist and I get the "failed!" error message.

Update: The playlist was made but never showed up on the app until I restarted it. Still can't add individual files but can add whole artists to a playlist.

Crash when clicking "Lyrics Following"

Crash log

Crash Report:

Package name: player.phonograph.plus
App version: 0.5.0 (450)
Git Commit Hash: 13b4722
Android version: 12 (SDK 31)
Device brand: motorola (by motorola)
Device model: XT2225-2 (code: rhodep)
Product name: rhodep_cn
Build version: S1SU32.73-112-4
(e8b769-403a5)
Hardware: qcom
Language: zh

java.lang.IllegalArgumentException: Invalid target position
at androidx.recyclerview.widget.RecyclerView$x.l(SourceFile:104)
at androidx.recyclerview.widget.RecyclerView$m.O0(Unknown Source:21)
at androidx.recyclerview.widget.LinearLayoutManager.N0(Unknown Source:12)
at player.phonograph.dialogs.LyricsDialog.onUpdateProgressViews(SourceFile:33)
at ma.a.handleMessage(SourceFile:31)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loopOnce(Looper.java:238)
at android.os.Looper.loop(Looper.java:357)
at android.app.ActivityThread.main(ActivityThread.java:8089)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)

Steps to reproduce the bug

点击“歌词滚动”

Screenshots or Screen recordings

Screenshot_20221207-004747

Other helpful information

No response

Version

0.5.0

[Bug]: Album Art not showing

Bug Summary

When I open the app none of my songs display the album art despite most of them having Album art in their tag.

Version

0.5.0

Steps to reproduce the bug

Download the app and install it like new, open the app for the first time go through setup and none of the songs will have album art.

Screenshots or Screen recordings

No response

Environment

Android 9

MIUI 10.3.2

Other helpful information

No response

[Suggestion] provide compilation instructions

i would like to see how to compile phonograph plus instructions for this fork (even better if you provide the instructions how to compile it on termux.)

i would really appreciate that

and thank you for this fork.

[Bug Report] Player doesn't show lyrics anymore.

Describe the bug or unexpected behavior
The player used to show an icon in the upper corner if the track had lyric metadata, but it doesn't anymore. Sometimes, I can look at the lyrics if I open the tag editor, but the tag editor can't work with some of the containers/codecs I have in my library.

How to reproduce
Play a song that has lyric metadata. Find no lyrics icon.

Screenshots (Optional)
For example:
Screenshot_۲۰۲۲۰۷۰۵-۲۳۱۴۴۰_Phonograph Plus
Screenshot_۲۰۲۲۰۷۰۵-۲۳۱۴۴۹_Phonograph Plus

there should be a lyrics button next to the heart button, but in the last couple versions it doesn't appear

Working with the music library

The application scans 4 objects from X and freezes. There is no further action in the notification.
To rescan, you have to reset the application data.

[Feature Request] Enqueue song when selected

This is how it works currently:

When you select a song, it is played and the other songs from the same album are enqueued automatically. When you select the next song, the queue is emptied, the song is played and the other songs from the same album are enqueued. You can long press a song (or album/artist) to add it to the queue without deleting the queue.

This is how I would like it to work.

When you select a song, if the queue is empty the song is played. If there are other songs in the queue already, the selected song is added to the queue.

Would really love to have this feature, maybe as toggable option. There is no open source music app out there that has it. I hope you can understand what I mean, I'm not a native speaker and my English is not perfect. But my Chinese is even worse... ;-)

Thanks for your work!

[Bug Report] Sleep Timer fails, the music is paused after the alarm rings, but cannot continue automatically even after the alarm is turned off

更新后出现,睡眠定时失效,闹钟响起后音乐暂停,关闭闹钟后不能自行继续播放。
Device info:

Package nameplayer.phonograph.plus
App version0.3.1
App version code303
Android build versioncf9b02468f
Android release version11
Android SDK version30
Android build IDlineage_nio-userdebug 11 RQ3A.211001.001 cf9b02468f
Device brandmotorola
Device manufacturermotorola
Device namenio
Device modelMotorola Edge S
Device product namenio_retcn
Device hardware nameqcom
ABIs[arm64-v8a, armeabi-v7a, armeabi]
ABIs (32bit)[armeabi-v7a, armeabi]
ABIs (64bit)[arm64-v8a]

[Bug]: Can not change grid size of lists on large tablet devices

Bug Summary

平板设备上,横屏时歌曲列表的网格尺寸被固定在6,无法修改
选择其它网格尺寸时不会生效,尺寸依然是6
(在手机上横屏时未发现此问题,可以正常修改网格尺寸)

Version

0.4.1

Steps to reproduce the bug

No response

Screenshots or Screen recordings

Screenshot_20221113-091707_Phonograph Plus
Screenshot_20221113-091715_Phonograph Plus

Environment

Mi Pad 5 (nabu)
ArrowOS 13.0 (Android 13)

Other helpful information

No response

[Bug Report] Crash while scrolling albums

Describe the bug or unexpected behavior
By scrolling my library (Albums, Songs, or Genres tabs), the app crashes.

Crash log
If app crashed, copy the logs if available.

Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.2 (310)
Git Commit Hash: a219a0464086110fe2c8
Android version: 12 (SDK 31)
Device brand:    samsung  (by samsung)
Device model:    SM-G981U (code: x1q)
Product name:    x1qsqx
Build version:   SP1A.210812.016.G981USQU3FVH1 
                 (G981USQU3FVH1)
Hardware:        qcom
Language:        fa

java.lang.RuntimeException: Canvas: trying to draw too large(127916100bytes) bitmap.
	at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:266)
	at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:97)
	at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:560)
	at android.widget.ImageView.onDraw(ImageView.java:1462)
	at android.view.View.draw(View.java:23898)
	at android.view.View.updateDisplayListIfDirty(View.java:22767)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.draw(View.java:23901)
	at android.view.View.updateDisplayListIfDirty(View.java:22767)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at androidx.recyclerview.widget.RecyclerView.drawChild(Unknown Source:0)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.draw(View.java:23901)
	at androidx.recyclerview.widget.RecyclerView.draw(Unknown Source:0)
	at com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView.draw(Unknown Source:0)
	at android.view.View.updateDisplayListIfDirty(View.java:22767)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(Unknown Source:13)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at androidx.recyclerview.widget.RecyclerView.drawChild(Unknown Source:0)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.draw(View.java:23901)
	at androidx.recyclerview.widget.RecyclerView.draw(Unknown Source:0)
	at android.view.View.updateDisplayListIfDirty(View.java:22767)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild(Unknown Source:13)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at com.sothree.slidinguppanel.SlidingUpPanelLayout.drawChild(Unknown Source:65)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.draw(View.java:23901)
	at com.sothree.slidinguppanel.SlidingUpPanelLayout.draw(Unknown Source:0)
	at android.view.View.updateDisplayListIfDirty(View.java:22767)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at androidx.drawerlayout.widget.DrawerLayout.drawChild(SourceFile:2)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.updateDisplayListIfDirty(View.java:22753)
	at android.view.View.draw(View.java:23628)
	at android.view.ViewGroup.drawChild(ViewGroup.java:5355)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5112)
	at android.view.View.draw(View.java:23901)
	at com.android.internal.policy.DecorView.draw(DecorView.java:1378)
	at android.view.View.updateDisplayListIfDirty(View.java:22767)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:602)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:608)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:684)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:5440)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5148)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4212)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2919)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10491)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1108)
	at android.view.Choreographer.doCallbacks(Choreographer.java:866)
	at android.view.Choreographer.doFrame(Choreographer.java:797)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8669)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)


How to reproduce
Steps to reproduce the bugs or unexpected behaviors:

Scroll through aforementioned tabs

Screenshots (Optional)
(if available)

Other information
…version 1.3.2

[Feature Request] Notification tap should open the queue screen

This issue is purely a UX suggestion.

As a user, when I tap on the "now playing" notification I expect to go to the queue screen, or at least to the last visited screen before leaving the app.

Currently the main screen gets opened.


In the past I've used other music players that had this behavior, and I think it would be a good addition to improve the user experience of Phonograph Plus.

[Bug Report] Crash when modifying Library Categories

**Describe the bug or unexpected behavi
crash when moving and changing library categories in the settings

Crash log


Package name:    player.phonograph.plus
App version:     0.2.2 (204)
Git Commit Hash: 8ece1e4f4973468432e7
Android version: 12 (SDK 31)
Device brand:    Sony  (by Sony)
Device model:    XQ-AS72 (code: XQ-AS72)
Product name:    XQ-AS72
Build version:   58.2.A.2.90 
                 (058002A002009003718185433)
Hardware:        qcom
Language:        en

java.lang.NullPointerException
	at z7.f$b.move(Unknown Source:4)
	at z7.f.onViewMoved(Unknown Source:2)
	at u9.c.i(:2)
	at androidx.recyclerview.widget.k.q(:4)
	at androidx.recyclerview.widget.k$b.b(Unknown Source:112)
	at androidx.recyclerview.widget.RecyclerView.onTouchEvent(:1)
	at android.view.View.dispatchTouchEvent(View.java:14551)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3114)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2787)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:519)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1896)
	at android.app.Dialog.dispatchTouchEvent(Dialog.java:864)
	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:477)
	at android.view.View.dispatchPointerEvent(View.java:14810)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6351)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6152)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5687)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5653)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5818)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5661)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5875)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5634)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5687)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5653)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5661)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5634)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8574)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8525)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8493)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8697)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:260)
	at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
	at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:240)
	at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:8654)
	at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:8783)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1120)
	at android.view.Choreographer.doCallbacks(Choreographer.java:926)
	at android.view.Choreographer.doFrame(Choreographer.java:851)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1105)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:346)
	at android.os.Looper.loop(Looper.java:475)
	at android.app.ActivityThread.main(ActivityThread.java:7889)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)```

and:

```Crash Report:

Package name:    player.phonograph.plus
App version:     0.2.2 (204)
Git Commit Hash: 8ece1e4f4973468432e7
Android version: 12 (SDK 31)
Device brand:    Sony  (by Sony)
Device model:    XQ-AS72 (code: XQ-AS72)
Product name:    XQ-AS72
Build version:   58.2.A.2.90 
                 (058002A002009003718185433)
Hardware:        qcom
Language:        en

java.lang.IllegalStateException: position0 is invalid!
	at z7.f.p(:3)
	at z7.d.onClick(Unknown Source:16)
	at android.view.View.performClick(View.java:7451)
	at android.view.View.performClickInternal(View.java:7425)
	at android.view.View.access$3700(View.java:842)
	at android.view.View$PerformClick.run(View.java:28690)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:346)
	at android.os.Looper.loop(Looper.java:475)
	at android.app.ActivityThread.main(ActivityThread.java:7889)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)```

Ability to play single files

Hello, could you add a way to disable the automatic starting of a playlist when you click just one file. I want to just play one song and stop.

[Bug Report] Tag Editor can't edit OPUS files

Describe the bug or unexpected behavior
If you edit the tags of an opus file, Phonograph+ will give you a notification with error message that says, «Failed to save tags» «a» «No Reader associated with this extension:opus»

An opus file uses the same tag format as OGG vorbis as far as I know, so it should work as long as Phonograph+ knows to treat the tags like OGG vorbis tags

Crash log
If app crashed, copy the logs if available.

n/a

How to reproduce
Steps to reproduce the bugs or unexpected behaviors:
Edit an OPUS file's tags. Save the changes. Observe this message:

Screenshots (Optional)
Screenshot_۲۰۲۲۰۵۲۸-۱۱۵۱۳۰_Fennec

Other information

[Bug Report] Phonograph Plus crashed when resizing in Freeform Mode

Describe the bug or unexpected behavior
When open the app with freeform mode and try to resize the app, it will crash

Crash log

Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.3 (311)
Git Commit Hash: fec22849337fddb81837
Android version: 11 (SDK 30)
Device brand:    Android-x86  (by unknown)
Device model:    Generic Android-x86_64 (code: x86_64)
Product name:    bliss_x86_64
Build version:   RSV1.210329.052 
                 (eng.hmtheb.20220924.071710)
Hardware:        bliss_x86_64
Language:        vi

java.lang.NullPointerException
 at player.phonograph.ui.fragments.player.card.CardPlayerFragment.access$getViewBinding(Unknown Source:2)
 at player.phonograph.ui.fragments.player.card.CardPlayerFragment$b.c(Unknown Source:7)
 at player.phonograph.ui.fragments.player.card.CardPlayerFragment.onColorChanged(SourceFile:1)
 at player.phonograph.ui.fragments.player.h.invokeSuspend(Unknown Source:13)
 at q3.a.resumeWith(Unknown Source:8)
 at h4.m0.run(Unknown Source:86)
 at android.os.Handler.handleCallback(Handler.java:938)
 at android.os.Handler.dispatchMessage(Handler.java:99)
 at android.os.Looper.loop(Looper.java:223)
 at android.app.ActivityThread.main(ActivityThread.java:7669)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
 Suppressed: h4.k0: [w1{Cancelling}@17e95d9, Dispatchers.Main]

How to reproduce

  • Open recents, press the app logo on and choose Freeform. If there is no freeform, open Developer Settings and turn on Enable Freeform windows
  • Try to resize, it will crash

[Bug Report] Crash on Sleep Timer

Describe the bug or unexpected behavior
App crashes if you click "Sleep Timer", thus a timer cannot be set.

Crash log
If app crashed, copy the logs if available.

Crash Report:

Package name:    player.phonograph.plus
App version:     0.2.6.1.LTS (226)
Git Commit Hash: a22661ac452a0b6ee06d
Android version: 12 (SDK 31)
Device brand:    samsung  (by samsung)
Device model:    SM-G981U (code: x1q)
Product name:    x1qsqx
Build version:   SP1A.210812.016.G981USQU2FVF1 
                 (G981USQU2FVF1)
Hardware:        qcom
Language:        fa

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
	at android.app.SharedPreferencesImpl.getLong(SharedPreferencesImpl.java:329)
	at z7.a$d.a(Unknown Source:15)
	at z7.a.getNextSleepTimerElapsedRealTime(Unknown Source:8)
	at j7.a0$c.<init>(Unknown Source:8)
	at j7.a0.onCreateDialog(Unknown Source:300)
	at androidx.fragment.app.m.prepareDialog(Unknown Source:13)
	at androidx.fragment.app.m.onGetLayoutInflater(Unknown Source:16)
	at androidx.fragment.app.Fragment.performGetLayoutInflater(Unknown Source:0)
	at androidx.fragment.app.g0.f(SourceFile:2)
	at androidx.fragment.app.g0.l(SourceFile:3)
	at androidx.fragment.app.z.Q(SourceFile:15)
	at androidx.fragment.app.z.D0(Unknown Source:91)
	at androidx.fragment.app.z.O(SourceFile:2)
	at androidx.fragment.app.z$d.run(Unknown Source:3)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8669)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)


How to reproduce
Steps to reproduce the bugs or unexpected behaviors:

  • Have songs playing.
  • Go to three dot menu
  • Click sleep timer
  • crash

Screenshots (Optional)
(if available)

Other information
This is a new issue, beginning in the most recent version on fdroid, 0.2.6.1LTS

[Bug]: Can not read/write tag of m4a(mp4) format

Bug Summary

Can not read/write tag of m4a(mp4) format.

For example, when saving edited tag, Phonograph Plus reports an Internal Error:

Failed to write tag!
z8.a: No Reader associated with this extension:m4a

Version

(all the time)

Steps to reproduce the bug

No response

Screenshots or Screen recordings

No response

Environment

No response

Other helpful information

No response

App Crash

Crash Report:

Package name: player.phonograph.plus
App version: 0.1.0 (104)
Git Commit Hash: 5f2adcf
Android version: 11 (SDK 30)
Device brand: lge (by LGE)
Device model: LM-G850 (code: mh2lm)
Product name: mh2lm
Build version: RKQ1.210420.001
(2202502174aca.OPEN_ESA_DS)
Hardware: mh2lm
Language: en

java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:415)
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 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
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:923)
Caused by: java.lang.IllegalArgumentException: Invalid column audio_id
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:472)
at android.content.ContentResolver.query(ContentResolver.java:1191)
at android.content.ContentResolver.query(ContentResolver.java:1122)
at android.content.ContentResolver.query(ContentResolver.java:1078)
at player.phonograph.util.PlaylistsUtil.doesPlaylistContain(Unknown Source:38)
at player.phonograph.util.MusicUtil.isFavorite(Unknown Source:11)
at player.phonograph.ui.fragments.player.card.CardPlayerFragment$2.a(Unknown Source:17)
at player.phonograph.ui.fragments.player.card.CardPlayerFragment$2.doInBackground(Unknown Source:2)
at android.os.AsyncTask$3.call(AsyncTask.java:394)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 4 more

[Bug] Selecting a track with tracks in queue does not work correctly & random playing

Prior to the update that added the "Don't clear my queue" option selecting a track would play it immediately and queue whatever was after it based on the context (album, artist, all songs, etc.).

Now, if you already have something playing and tracks in the queue, selecting a track will often play the track after the one you actually tapped on, or some other track seemingly at random.

Additionally, I have also experienced the correct title displaying but the wrong audio playing under the same conditions.

[Unexpected Behavior] random thumbnails/artwork

I use the music player in folder view. I have a folder with 10 songs in it all with different artwork embedded. The artwork displays fine in the tiny folder view icons but when playing the song the artwork defaults to a seemingly random artwork in that folder and displays it for each song in the folder. This is true for the notification widget and the song playing window. I used yt-dlp which uses ffmpeg to embed the artwork from YouTube.com.

Selecting "ignore media store covers" fixes it but slows down loading time. Its a workaround that I use for now.

How to reproduce

  1. Find a few different songs or even videos on youtube
  2. use yt-dlp to save audio
  3. yt-dlp -x -f bestaudio --audio-quality 5 --audio-format mp3 --embed-thumbnail --write-sub --sub-lang en --convert-subs lrc --add-metadata "YT URL HERE"
  4. Put the files in a folder and use folder view to view, you should see all thumbnails correctly shown.
  5. Play the first file and then switch to player and look at the thumbnail. They should all be the same random image.

[Bug Report] Lyrics error for opus files although all settings for lyrics are DISABLED

Describe the bug or unexpected behavior
When I play a song, I get a message: "Failed to read lyrics from song
No Reader associated with this extension:opus". I have disabled all settings regarding lyrics. The app should respect those settings and not show an error message.

Crash log
Crash Report:

Package name: player.phonograph.plus
App version: 0.3.3 (311)
Git Commit Hash: fec2284
Android version: 12 (SDK 32)
Device brand: not important
Device model: not important
Product name: lineage_ABC
Build version: lineage_ABC-userdebug 12
Hardware: qcom
Language: it

Failed to read lyrics from song
No Reader associated with this extension:opus

[Crash Report]: cant play SD card. "open with" crash loop

Crash log

Crash Report:

Package name:    player.phonograph.plus
App version:     0.5.4.1 (454)
Git Commit Hash: 121a4b440d10ed7d2321
Android version: 10 (SDK 29)
Device brand:    Redmi  (by Xiaomi)
Device model:    M2004J19C (code: galahad)
Product name:    galahad_global
Build version:   build-20210331141959 
                 (V12.0.4.0.QJCMIXM)
Hardware:        mt6768
Language:        en

java.lang.RuntimeException: Unable to start activity ComponentInfo{player.phonograph.plus/player.phonograph.ui.activities.StarterActivity}: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3338)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3487)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:224)
    at android.app.ActivityThread.main(ActivityThread.java:7561)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.get(ArrayList.java:437)
    at player.phonograph.ui.activities.StarterActivity$b.d(SourceFile:154)
    at player.phonograph.ui.activities.StarterActivity.onCreate(SourceFile:52)
    at android.app.Activity.performCreate(Activity.java:7893)
    at android.app.Activity.performCreate(Activity.java:7880)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3313)
    ... 11 more

Steps to reproduce the bug

use file manager
click on song
open with phonograph
crashloop

Screenshots or Screen recordings

No response

Other helpful information

it crashes so hard cant even uninstall the app anymore without rebooting the phone
cant add or play any files from SD card on any settings at all.

edit:
after 3 reboots it suddenly stopped crashing and adding SD songs just works now?..
except when i "open with" song from file manager it loops the "Couldn't play song" error

need more testing but i guess this log could be useful?

Version

No response

[Feature Request] Shuffle Mode in order of Albums

Often, songs in an album are meant to come directly after one another in the given order. It would be good, for this reason, to be able to shuffle the queue by album, preserving the internal track orders thereof. Following the last song of one album, the first song of a randomly chosen album is next enqueued.

[Bug Report] Enqueue folder: no longer recursive

Describe the bug or unexpected behavior
I used to be able to enqueue a folder and have all songs in that directory and in all subdirectories therein added to the queue recursively. This doesn't happen for anymore. Rather, when I enqueue a folder, only the top level audio files are added to queue.

Crash log
n/a

How to reproduce
Steps to reproduce the bugs or unexpected behaviors:

  1. find a directory in the files tab: one with subdirectories and songs in those subdirectories
  2. select that folder and add it to queue
  3. none of the subdirectories contents are enqueued

Screenshots (Optional)
(if available)

Other information

[Bug]: Artwork in player notification does not display in correct aspect ratio

Bug Summary

In the Player Notification Screen, the artwork is displayed as a vertical rectangle even for files with square artwork

Version

0.5.4

Steps to reproduce the bug

No response

Screenshots or Screen recordings

  • Incorrect aspect ratio artwork on Player Notification
    Screenshot_20230128-213217_Phonograph_Plus

  • Correct aspect ratio artwork on Now Playing Screen
    Screenshot_20230128-213150_Phonograph_Plus

  • Correct aspect ratio artwork on Album Screen
    Screenshot_20230128-213116_Phonograph_Plus

Environment

Screenshots: Android 11 (LineageOS 18.1) / Redmi K40
All application settings are default.
The same behavior was confirmed for Android 13. (Player Notification style is different)

Other helpful information

Tested with this silent audio file

[Bug Report]Error reading not found Lyrics

Describe the bug or unexpected behavior
A clear and concise description of what the bug is.
Exception/crash report on each app startup

Crash log
If app crashed, copy the logs if available.

Crash Report:

Package name:    player.phonograph.plus
App version:     0.4.0 (400)
Git Commit Hash: 2fdd1d6c262556de0ff8
Android version: 12 (SDK 32)

Failed to read lyrics from song

java.io.FileNotFoundException: Unable to find:/storage/emulated/0/DirToMyMusic/MySong.mp3
	at i8.b.a(SourceFile:155)
	at ja.c.a(Unknown Source:3)
	at ja.c$c.invokeSuspend(Unknown Source:12)
	at e6.a.resumeWith(Unknown Source:8)
	at u6.o0.run(Unknown Source:102)
	at kotlinx.coroutines.internal.i.run(Unknown Source:11)
	at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
	at kotlinx.coroutines.scheduling.a$a.run(SourceFile:66)
}

Other information

I dont think the mp3 is corrupt, it plays fine, but i moved a lot of files recently before this error occured!

[Bug Report] Cannot access SD card from Folders

Describe the bug or unexpected behavior
A clear and concise description of what the bug is.

Cannot access SD card from Folders (only built-in is available).

Crash log
If app crashed, copy the logs if available.

[YOUR LOGS HERE]

How to reproduce
Steps to reproduce the bugs or unexpected behaviors:

Try to go to folders -> Emulated. It says empty.

Screenshots (Optional)
(if available)
Video recording attached.

Other information

Motorola G 5g Plus. Android 11

screen-20220407-220942.mp4

.

[Bug Report] App crashing on startup: uiThreadHandler has not been initialized

App crashing on startup

Crash log
If app crashed, copy the logs if available.

Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.0-rc01 (290)
Git Commit Hash: a251ffe1c31cf911a108
Android version: 9 (SDK 28)
Device brand:    samsung  (by samsung)
Device model:    SM-G610F (code: on7xreflte)
Product name:    on7xreflteub
Build version:   PPR1.180610.011.G611MUBSACUD1 
                 (G611MUBSACUD1)
Hardware:        samsungexynos7870
Language:        en

java.lang.RuntimeException: Unable to create service player.phonograph.service.MusicService: e4.l: lateinit property uiThreadHandler has not been initialized
	at android.app.ActivityThread.handleCreateService(ActivityThread.java:3789)
	at android.app.ActivityThread.access$1400(ActivityThread.java:240)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1822)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7124)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Caused by: e4.l: lateinit property uiThreadHandler has not been initialized
	at player.phonograph.service.MusicService.runOnUiThread(Unknown Source:10)
	at player.phonograph.appwidgets.AppWidgetBig.f(SourceFile:6)
	at k7.a.e(SourceFile:2)
	at player.phonograph.service.MusicService.e(Unknown Source:19)
	at player.phonograph.service.MusicService.onCreate(Unknown Source:15)
	at android.app.ActivityThread.handleCreateService(ActivityThread.java:3777)
	... 8 more


How to reproduce
Steps to reproduce the bugs or unexpected behaviors:
Start the app
Crash
Screenshots (Optional)
(if available)

Other information

Phone is rooted from magisk but I think its unrelated
App worked fine before last update
Will switch to it till it gets fixed

Crash

Describe the bug or unexpected behavior
Crashed when choose a file to play. Then crased every time when it booted.
Absolutely, data of the app was cleaned before, or i don't have a chance to choose a file.

Crash log
If app crashed, copy the logs if available.
Crash Report:

Package name: player.phonograph.plus
App version: 0.2.0-RC1 (201)
Git Commit Hash: 3bc4bda
Android version: 12 (SDK 31)
Device brand: Redmi (by Xiaomi)
Device model: M2012K11AC (code: alioth)
Product name: alioth
Build version: SKQ1.211006.001 test-keys
(21.12.27)
Hardware: qcom
Language: zh

java.lang.ExceptionInInitializerError
at v3.d.(Unknown Source:11)
at v3.c.a(Unknown Source:0)
at V2.g.a(Unknown Source:222)
at V2.b.b(Unknown Source:2)
at X2.c.c(Unknown Source:69)
at O2.b.a(:4)
at T3.c$c.o(Unknown Source:5)
at d2.a.e(:2)
at q2.I.run(Unknown Source:86)
at kotlinx.coroutines.scheduling.a.u(Unknown Source:0)
at kotlinx.coroutines.scheduling.a$a.run(:5)
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: u3.d.values []
at java.lang.Enum.enumValues(Enum.java:270)
at java.lang.Enum.access$000(Enum.java:61)
at java.lang.Enum$1.create(Enum.java:277)
at java.lang.Enum$1.create(Enum.java:275)
at libcore.util.BasicLruCache.get(BasicLruCache.java:63)
at java.lang.Enum.getSharedConstants(Enum.java:289)
at java.lang.Class.getEnumConstantsShared(Class.java:2459)
at java.util.EnumSet.getUniverse(EnumSet.java:407)
at java.util.EnumSet.noneOf(EnumSet.java:109)
at java.util.EnumSet.of(EnumSet.java:258)
at v3.b.(Unknown Source:8)
... 11 more
Caused by: java.lang.NoSuchMethodException: u3.d.values []
at java.lang.Class.getMethod(Class.java:2103)
at java.lang.Class.getDeclaredMethod(Class.java:2081)
at java.lang.Enum.enumValues(Enum.java:267)
... 21 more

How to reproduce
Steps to reproduce the bugs or unexpected
boot the app, choose a file to play.
behaviors:
Crash

[Bug Report] Can not save tags and images

Describe the bug or unexpected behavior
Errors appear on editing artist images and tracks' tags. Remarkable seems that at least one time an error on image allocation was criticised while no image was on screen, simply editing tags, see my annotation started with "heads up".
Sorry in case I posted duplicates, better than leaving out hints, I assume.

Crash log

[Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.4 (312)
Git Commit Hash: b6ce5aaed1b0c9c0c156
Android version: 10 (SDK 29)
Device brand:    Fairphone  (by Fairphone)
Device model:    FP3 (code: FP3)
Product name:    FP3
Build version:   8901.3.A.0136 
                 (gms-7c69ec7e)
Hardware:        qcom
Language:        de

No Songs Modified!? Maybe fail save tags?
java.lang.IllegalStateException: No Songs Modified!?
	at util.phonograph.tageditor.h.invokeSuspend(Unknown Source:75)
	at o3.a.resumeWith(Unknown Source:8)
	at f4.m0.run(Unknown Source:102)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7397)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
}

-------------------


Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.4 (312)
Git Commit Hash: b6ce5aaed1b0c9c0c156
Android version: 10 (SDK 29)
Device brand:    Fairphone  (by Fairphone)
Device model:    FP3 (code: FP3)
Product name:    FP3
Build version:   8901.3.A.0136 
                 (gms-7c69ec7e)
Hardware:        qcom
Language:        de

No Songs Modified!? Maybe fail save tags?
java.lang.IllegalStateException: No Songs Modified!?
	at util.phonograph.tageditor.h.invokeSuspend(Unknown Source:75)
	at o3.a.resumeWith(Unknown Source:8)
	at f4.m0.run(Unknown Source:102)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7397)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
}

------------------


Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.4 (312)
Git Commit Hash: b6ce5aaed1b0c9c0c156
Android version: 10 (SDK 29)
Device brand:    Fairphone  (by Fairphone)
Device model:    FP3 (code: FP3)
Product name:    FP3
Build version:   8901.3.A.0136 
                 (gms-7c69ec7e)
Hardware:        qcom
Language:        de

Can not save custom image for Goldfrapp

------------

HEADS UP: FOLLOWING CAME UP ON SAVING TAGS, NOT IMAGE


Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.4 (312)
Git Commit Hash: b6ce5aaed1b0c9c0c156
Android version: 10 (SDK 29)
Device brand:    Fairphone  (by Fairphone)
Device model:    FP3 (code: FP3)
Product name:    FP3
Build version:   8901.3.A.0136 
                 (gms-7c69ec7e)
Hardware:        qcom
Language:        de

Can not save custom image for Goldfrapp



--------------------------


EDIT:
ANOTHER ONE AFTER UPDATING TO v0.3.5

Crash Report:

Package name:    player.phonograph.plus
App version:     0.3.5 (313)
Git Commit Hash: 0daa0bd6702170952d06
Android version: 10 (SDK 29)
Device brand:    Fairphone  (by Fairphone)
Device model:    FP3 (code: FP3)
Product name:    FP3
Build version:   8901.3.A.0136 
                 (gms-7c69ec7e)
Hardware:        qcom
Language:        de

Failed to save tags
a6.c: java.io.IOException: Cannot make changes to file 01 Come.mp3
	at e6.c.b(Unknown Source:14)
	at util.phonograph.tageditor.i.invokeSuspend(SourceFile:340)
	at o3.a.resumeWith(Unknown Source:8)
	at f4.m0.run(Unknown Source:102)
	at kotlinx.coroutines.internal.i.run(Unknown Source:11)
	at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
	at kotlinx.coroutines.scheduling.a$a.run(SourceFile:66)
Caused by: java.io.IOException: Cannot make changes to file 01 Come.mp3
	at e6.c.n(SourceFile:435)
	at e6.c.b(Unknown Source:0)
	... 6 more
}

[Bug] Failed to read song file y8.a: /storage/emulat......

Good morning! I'm just leaving these error reports here. Lately, I get a LOT of these error reports. The file does play despite the errors.

Screenshot_۲۰۲۳۰۳۰۱_۰۷۰۶۴۴_Mull

Internal Error:

Package name:    player.phonograph.plus
App version:     0.5.4 (454)
Git Commit Hash: 52f6af7552aa0d623bf1
Android version: 13 (SDK 33)
Device brand:    samsung  (by samsung)
Device model:    SM-S908U (code: b0q)
Product name:    b0qsqw
Build version:   TP1A.220624.014.S908USQU2CWAI 
                 (S908USQU2CWAI)
Hardware:        qcom
Language:        fa

Failed to read song file

y8.a: /storage/emulated/0/Music/Psalticí/Dimitrios Katsiklis/Θεία Λειτουργία σε Πλάγιο Πρώτο-KIw7eo_yyp4.m4a:java.lang.NoSuchMethodException: ba.r.<init> [class ba.w]
	at b9.d.c(Unknown Source:161)
	at q8.b.a(SourceFile:96)
	at wa.g.a(Unknown Source:3)
	at wa.g$c.invokeSuspend(Unknown Source:12)
	at k6.a.resumeWith(Unknown Source:8)
	at b7.r0.run(Unknown Source:102)
	at kotlinx.coroutines.internal.i.run(Unknown Source:12)
	at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
	at kotlinx.coroutines.scheduling.a$a.run(SourceFile:66)
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: ba.r.<init> [class ba.w]
	at b9.j.j(SourceFile:45)
	at aa.b.c(Unknown Source:24)
	at aa.g$a.d(Unknown Source:31)
	at aa.g.b(Unknown Source:38)
	at e9.h.a(SourceFile:12)
	at b9.d.c(Unknown Source:60)
	... 8 more
Caused by: java.lang.NoSuchMethodException: ba.r.<init> [class ba.w]
	at java.lang.Class.getConstructor0(Class.java:2363)
	at java.lang.Class.getConstructor(Class.java:1759)
	at b9.j.j(SourceFile:33)
	... 13 more
}

[Bug Report] progress bar in notification stuck on maximum

Describe the bug or unexpected behavior
Whenever I play an album or playlist (more than one song), on every song after the first one the progress bar is stuck on the maximum. Example: if the song is 4:02 long, it's stuck on 4:02 out of 4:02 and doesn't move.

How to reproduce
For me it's just to play any album or playlist with more than one song. I also only have FLAC files in the app so maybe that's it but I can't test that right now.

[Bug Report]Crash when swiping covers in player / 最新预览版播放中报错

Describe the bug or unexpected behavior
最新预览版播放中报错

Crash log
Crash Report:

Package name: player.phonograph.plus.preview
App version: 0.3-alpha08 (259)
Git Commit Hash: c2673c5
Android version: 12 (SDK 31)
Device brand: realme (by realme)
Device model: RMX3361 (code: RE507C)
Product name: RMX3361
Build version: RMX3361_11_C.08
(R.202206222209)
Hardware: qcom
Language: zh

j1.d: Unexpected exception thrown by non-Glide code
at j1.n.c(Unknown Source:15)
at j1.n$b.run(Unknown Source:35)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8184)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void v6.b$a.loadAlbumCover()' on a null object reference
at v6.b.requestLoadCover(Unknown Source:8)
at player.phonograph.ui.fragments.player.PlayerAlbumCoverFragment.access$deployColor(SourceFile:3)
at player.phonograph.ui.fragments.player.a.invoke(SourceFile:1)
at v6.b$a.access$setColor(Unknown Source:12)
at v6.b$a$b.invoke(SourceFile:1)
at v6.a.onColorReady(Unknown Source:14)
at f7.c.onResourceReady(SourceFile:1)
at z1.h.s(SourceFile:2)
at z1.h.r(SourceFile:4)
at j1.n.c(Unknown Source:8)
... 9 more


**How to reproduce**
Steps to reproduce the bugs or unexpected behaviors:
快速添加少量歌曲加入播放列表
横滑封面切换歌曲
报错

[Bug]: Bad search text legibility with a light primary color

Bug Summary

The foreground color of the search bar is white, hence If the user has a light primary color, the legibility is low.

Version

0.4.0

Steps to reproduce the bug

No response

Screenshots or Screen recordings

SmartSelect_20221025-081849_Phonograph Plus

Environment

No response

Other helpful information

No response

[Bug Report] Crash when long pressing on any album

Crash Report:

Package name: player.phonograph.plus
App version: 0.2.2 (204)
Git Commit Hash: 8ece1e4
Android version: 11 (SDK 30)
Device brand: Redmi (by Xiaomi)
Device model: M2004J19C (code: lancelot)
Product name: lancelot_global
Build version: RP1A.200720.011
(V12.5.5.0.RJCMIXM)
Hardware: mt6768
Language: es

java.lang.IllegalStateException: Two different ViewHolders have the same stable ID. Stable IDs in your adapter MUST BE unique and SHOULD NOT change.
ViewHolder 1:a{aae0138 position=3 id=459805675864067378, oldPos=-1, pLpos:-1 not recyclable(1)}
View Holder 2:a{c375125 position=1 id=459805675864067378, oldPos=-1, pLpos:-1} com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView{9c5c511 VFED..... ......ID 0,0-1080,1826 #7f090274 app:id/recycler_view}, adapter:c8.a@7664676, layout:androidx.recyclerview.widget.GridLayoutManager@5482477, context:player.phonograph.ui.activities.MainActivity@fc47741
at androidx.recyclerview.widget.RecyclerView.y(:11)
at androidx.recyclerview.widget.RecyclerView.onLayout(:2)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at androidx.coordinatorlayout.widget.CoordinatorLayout.r(:14)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(:2)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at androidx.recyclerview.widget.RecyclerView$m.l0(Unknown Source:32)
at androidx.recyclerview.widget.LinearLayoutManager.y1(Unknown Source:166)
at androidx.recyclerview.widget.LinearLayoutManager.i1(:2)
at androidx.recyclerview.widget.LinearLayoutManager.B0(:17)
at androidx.recyclerview.widget.RecyclerView.A(Unknown Source:66)
at androidx.recyclerview.widget.RecyclerView.y(Unknown Source:71)
at androidx.recyclerview.widget.RecyclerView.onLayout(:2)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at androidx.viewpager2.widget.ViewPager2.onLayout(Unknown Source:70)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at com.google.android.material.appbar.g.t(:2)
at com.google.android.material.appbar.h.h(Unknown Source:0)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(:2)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at com.sothree.slidinguppanel.SlidingUpPanelLayout.onLayout(Unknown Source:140)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at androidx.drawerlayout.widget.DrawerLayout.onLayout(Unknown Source:56)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:804)
at android.view.View.layout(View.java:23361)
at android.view.ViewGroup.layout(ViewGroup.java:6534)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3702)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3160)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2129)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8603)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:975)
at android.view.Choreographer.doCallbacks(Choreographer.java:799)
at android.view.Choreographer.doFrame(Choreographer.java:734)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:960)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:7864)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)

How to reproduce
• long press on any album

[Bug] Failed to read lyrics from song: java.io.FileNotFoundException

Bug Summary

Internal Error:

Package name: player.phonograph.plus
App version: 0.5.4 (454)
Git Commit Hash: 52f6af7
Android version: 12 (SDK 32)
Device brand: POCO (by Xiaomi)
Device model: M2012K11AG (code: alioth)
Product name: lineage_alioth
Build version: lineage_alioth-userdebug 12 SQ3A.220705.004 ab0a6cffb1
(ab0a6cffb1)
Hardware: qcom
Language: en

Failed to read lyrics from song

java.io.FileNotFoundException: Unable to find:/storage/emulated/0/Music/Red_Wings__Aces_of_the_Sky__Original_Soundtrack_/Into_the_Storm.mp3
at q8.b.a(SourceFile:157)
at wa.g.a(Unknown Source:3)
at wa.g$c.invokeSuspend(Unknown Source:12)
at k6.a.resumeWith(Unknown Source:8)
at b7.r0.run(Unknown Source:102)
at kotlinx.coroutines.internal.i.run(Unknown Source:12)
at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
at kotlinx.coroutines.scheduling.a$a.run(SourceFile:66)
}

Version

Latest

Steps to reproduce the bug

I just open the app

Screenshots or Screen recordings

No response

Environment

Android 12, LineageOS 19.1 Alioth

Other helpful information

No response

[Bug]: Failed to read lyrics from song.

Bug Summary

The application has an internal error when it can't find the lyric.

Version

0.5.3

Steps to reproduce the bug

To reproduce the problem, it is sufficient that there is a song without a lyric.

Screenshots or Screen recordings

No response

Environment

Android version: 10 (SDK 29)
Device brand: HUAWEI (by HUAWEI)
Device model: HMA-L29 (code: HWHMA)
Product name: HMA-L29
Build version: HMA-L29 10.1.0.288(C55E8R1P5)
(10.1.0.288C55)
Hardware: kirin980
Language: it

Other helpful information

Internal Error:

Package name: player.phonograph.plus
App version: 0.5.3 (453)
Git Commit Hash: aa473d7

Failed to read lyrics from song

java.io.FileNotFoundException: Unable to find:/storage/emulated/0/Music/My Chemical Romance - I Don_t Love You [Official Music Video] [HD].opus
at o8.b.a(SourceFile:155)
at sa.f.a(Unknown Source:3)
at sa.f$c.invokeSuspend(Unknown Source:12)
at j6.a.resumeWith(Unknown Source:8)
at a7.s0.run(Unknown Source:102)
at kotlinx.coroutines.internal.i.run(Unknown Source:11)
at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
at kotlinx.coroutines.scheduling.a$a.run(SourceFile:66)
}

I will do further tests to see when it occurs precisely. 🤔

[Feature Request] empty queue with button or on close.

If you use folders for your playlists, it is nessecary for using them like playlists, to be able to

  1. Add the folder to the queue (with shuffle?)
  2. Clear the qeue again to play another playlist

Thanks for this great app!

Search the Queue [Feature Request]

Sometimes I want to search the queue. In those times, there are technically other ways to accomplish what I want, but this would seem most simple.

[Feature Request] Whitelist

It would be nice to be able to select one or multiple folders and then show only the music in those folders. Many users have all their music in one folder, it is easier to whitelist one folder than to blacklist all folders but one.

Thanks for your work!

[Bug Report] "... keeps stopping"

Describe the bug or unexpected behavior
On tapping the app icon, after a short while I keep getting this info. Sometimes I can see the mini bottom player with last played title displayed, sometimes even the recent changes screen assembles, sometimes I only see an empty library flashing up before the crash happens.

Crash log
Unfortunately, Scoop (autom. crash logger app) isn't capable of grabbing a crash log of my situation.

How to reproduce
For me it's "Tap the app icon". Happens in v0.3.3 and now also in v0.3.4

Additional info
I added tracks to the library using other apps while Phonograph was idle for some weeks.

Fairphone 3
Android 10, FP3 flavour
Google Play Services upd. to v22.33.16
Webview upd. to 102.0.5005.78

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.