LucasGGamerM / moshidon

Better modification of the official Mastodon for Android app
https://LucasGGamerM.github.io/moshidon/
GNU General Public License v3.0
471 stars 22 forks source link

Application sometimes crashes when trying to mention people #376

Open ExperiencersInternational opened 2 months ago

ExperiencersInternational commented 2 months ago

Describe the bug

When I'm writing a post, sometimes the app crashes when trying to mention people.

To reproduce

Steps to reproduce the behavior:

  1. Go to create a new post in the app
  2. Mention a user (in this case, it crashed when typing @ThatSrb2Dude which is not a registered account on fedi)

Does this happen in the official app?

Does this issue also occur with the respective upstream release?

No clue, don't have it installed

In case it does, please consider filing an upstream bug report instead. If this bug is seriously impacting your usage or you think I might want to try to fix it for Megalodon, feel free to still create this issue!

Version

Moshidon version: see below in crash log

Crash log

If you know your way around Android development tools, please consider attaching a crash log, if possible.

2.1.4+fork.104.moshinda (104)
2024-04-12T17:04:23.157Z

java.lang.IllegalStateException: Can only create one instance of the view holder. parent=me.grishka.appkit.views.UsableRecyclerView{9de2ff0 VFED..... ......I. 0,0-1080,147}, viewType=26
    at me.grishka.appkit.utils.SingleViewRecyclerAdapter.onCreateViewHolder(SingleViewRecyclerAdapter.java:24)
    at me.grishka.appkit.utils.SingleViewRecyclerAdapter.onCreateViewHolder(SingleViewRecyclerAdapter.java:9)
    at me.grishka.appkit.utils.MergeRecyclerAdapter.onCreateViewHolder(MergeRecyclerAdapter.java:118)
    at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7297)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6419)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6303)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6299)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2328)
    at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1629)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1589)
    at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:666)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4300)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4003)
    at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4569)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    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:807)
    at android.view.View.layout(View.java:24722)
    at android.view.ViewGroup.layout(ViewGroup.java:6450)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4485)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3786)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2659)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9789)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1399)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1408)
    at android.view.Choreographer.doCallbacks(Choreographer.java:1008)
    at android.view.Choreographer.doFrame(Choreographer.java:938)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1382)
    at android.os.Handler.handleCallback(Handler.java:959)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8501)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
LucasGGamerM commented 2 months ago

I couldn't help but notice this is the stable version. Can you try on the latest nightly at https://github.com/LucasGGamerM/moshidon-nightly/releases/latest/download/moshidon-nightly.apk ?