Skip to content

Crash after accessing favorites in nextcloud app on Android #17255

Description

@davidReward

⚠️ Before posting ⚠️

  • This is a bug, not a question or an enhancement.
  • I've searched for similar issues and didn't find a duplicate.
  • I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
  • I agree to follow Nextcloud's Code of Conduct.

Steps to reproduce

Open nextcloud app and click on favourites. Not sure if this is because one favourite was moved

Expected behaviour

No crash

Actual behaviour

Crash, so stack trace:

Cause of error

Exception in thread "main" java.lang.UnsupportedOperationException: Operation is not supported for read-only collection
    at kotlin.collections.EmptyList.add(Collections.kt:4)
    at com.owncloud.android.ui.adapter.OCFileListAdapter.bindListItemViewHolder(OCFileListAdapter.java:610)
    at com.owncloud.android.ui.adapter.OCFileListAdapter.bindHolder(OCFileListAdapter.java:502)
    at com.owncloud.android.ui.adapter.OCFileListAdapter.onBindViewHolder(OCFileListAdapter.java:490)
    at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7747)
    at com.owncloud.android.ui.adapter.OCFileListAdapter.onBindViewHolder(OCFileListAdapter.java:1089)
    at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7847)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6646)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6917)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6757)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6753)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)
    at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1662)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
    at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4645)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4348)
    at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4919)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:704)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
    at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1880)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1640)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:145)
    at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
    at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2461)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1263)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    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:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    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:776)
    at android.view.View.layout(View.java:26064)
    at android.view.ViewGroup.layout(ViewGroup.java:6595)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:5554)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4638)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3351)
    at android.view.ViewRootImpl$TraversalCallback.onVsync(ViewRootImpl.java:11448)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1664)
    at android.view.Choreographer.doCallbacks(Choreographer.java:1252)
    at android.view.Choreographer.doFrame(Choreographer.java:1209)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1640)
    at android.os.Handler.handleCallback(Handler.java:1095)
    at android.os.Handler.dispatchMessageImpl(Handler.java:135)
    at android.os.Handler.dispatchMessage(Handler.java:125)
    at android.os.Looper.loopOnce(Looper.java:296)
    at android.os.Looper.loop(Looper.java:397)
    at android.app.ActivityThread.main(ActivityThread.java:9523)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:575)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:939)

App information

  • ID: com.nextcloud.client
  • Version: 340000090
  • Build flavor: generic

Device information

  • Brand: google
  • Device: shiba
  • Model: Pixel 8
  • Id: CP2A.260605.012
  • Product: shiba

Firmware

  • SDK: 37
  • Release: 17
  • Incremental: 15430684

Android version

16

Device brand and model

Pixel 8

Stock or custom OS?

Stock

Nextcloud android app version

34'9

Nextcloud server version

33.0.5

Using a reverse proxy?

Yes

Android logs

No response

Server error logs

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions