App crashes on launch: `ArrayIndexOutOfBoundsException` in `AvatarGroupLayout.showFederatedShareAvatar()`
- Dominant language
- Kotlin
- Stars
- 5.6k
- Forks
- 2k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 92
Description
### ⚠️ Before posting ⚠️
- [X] This is a **bug**, not a question or an enhancement.
- [X] I've [searched for similar issues](https://github.com/nextcloud/android/issues) and didn't find a duplicate.
- [X] I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
- [X] I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
### Steps to reproduce
1. Launch the app
### Expected behaviour
App starts
### Actual behaviour
App crashes at launch and brings up the error log.
### Android version
8.0.0
### Device brand and model
SHIFT SHIFT6m
### Stock or custom OS?
Custom (explain in "additional information")
### Nextcloud android app version
3.25.0
### Nextcloud server version
27.0.2
### Using a reverse proxy?
No
### Android logs
```java
Cause of error
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.owncloud.android.ui.AvatarGroupLayout.showFederatedShareAvatar(AvatarGroupLayout.java:162)
at com.owncloud.android.ui.AvatarGroupLayout.setAvatars(AvatarGroupLayout.java:124)
at com.owncloud.android.ui.adapter.OCFileListAdapter.bindListItemViewHolder(OCFileListAdapter.java:413)
at com.owncloud.android.ui.adapter.OCFileListAdapter.onBindViewHolder(OCFileListAdapter.java:383)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7678)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7761)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6582)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6848)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6688)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6684)
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:4604)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4307)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4873)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:340)
at android.widget.FrameLayout.onLayout(FrameLayout.java:278)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:689)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1117)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:340)
at android.widget.FrameLayout.onLayout(FrameLayout.java:278)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1921)
at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1910)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1676)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:149)
at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2376)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1263)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:340)
at android.widget.FrameLayout.onLayout(FrameLayout.java:278)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:340)
at android.widget.FrameLayout.onLayout(FrameLayout.java:278)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:340)
at android.widget.FrameLayout.onLayout(FrameLayout.java:278)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1921)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1765)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1674)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:340)
at android.widget.FrameLayout.onLayout(FrameLayout.java:278)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:780)
at android.view.View.layout(View.java:19913)
at android.view.ViewGroup.layout(ViewGroup.java:6211)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2851)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2513)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1602)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7407)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:948)
at android.view.Choreographer.doCallbacks(Choreographer.java:750)
at android.view.Choreographer.doFrame(Choreographer.java:682)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:934)
at android.os.Handler.handleCallback(Handler.java:869)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:206)
at android.app.ActivityThread.main(ActivityThread.java:6760)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845)
```
### App information
- ID: com.nextcloud.client
- Version: 30250090
- Build flavor: generic
### Device information
- Brand: SHIFT
- Device: SHIFT6m
- Model: SHIFT6m
- Id: ******
- Product: SHIFT6m_EEA
### Firmware
- SDK: 26
- Release: 8.0.0
- Incremental: 1566905523
### Server error logs
_No response_
### Additional information
OS: ShiftOS-L (degoogled)
Contributor guide
Assessment
This issue has not been assessed yet.