Skip to content

IndexOutOfBoundsException - setSpan starts before 0 #1850

@markushub

Description

@markushub
  • Bug reports which do not fill the complete issue template will be closed.
  • Please have a look at our FAQ
  • Please search the existing issues first, it's likely that your issue was already reported or even fixed.
  • This repository is only for issues within the Nextcloud Notes Android app
    -->
    Please use GitHub reactions 👍 to show that you are affected by the same issue. Please don't comment if you have no relevant information to add!

Describe the bug

Receive Error: IndexOutOfBoundsException - setSpan starts before 0

To Reproduce
Steps to reproduce the behavior:

  1. Start Nextcloud Notes Android
  2. Click on searchfield
  3. type two chars like 'do'
  4. See error

Expected behavior

show search results

Screenshots

Smartphone (please complete the following information):

  • Nextcloud Notes-Version (android app): 4.1.0 RC1
  • F-Droid or Play Store: fdroid
  • Android-Version: 11
  • Device: nairo

Server

  • Nextcloud version: 26.0.4
  • Nextcloud Notes version (server app): 4.8.1

Stacktrace

App Version: 4.1.0 RC1
App Version Code: 40010051
App Flavor: fdroid

Files App Version Code: 30250090 (PROD)

---

OS Version: 4.19.125-perf+(9ab668)
OS API Level: 30
Device: nairo
Manufacturer: motorola
Model (and Product): moto g 5G plus (nairo_retaile)

---

java.lang.IndexOutOfBoundsException: setSpan (-1 ... 204) starts before 0
	at android.text.SpannableStringInternal.checkRange(SpannableStringInternal.java:497)
	at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:197)
	at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:184)
	at android.text.SpannableString.setSpan(SpannableString.java:60)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils.spanText(AndroidViewThemeUtils.kt:584)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils.highlightText(AndroidViewThemeUtils.kt:562)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils.access$highlightText(AndroidViewThemeUtils.kt:75)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils$highlightText$1.invoke(AndroidViewThemeUtils.kt:548)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils$highlightText$1.invoke(AndroidViewThemeUtils.kt:547)
	at com.nextcloud.android.common.ui.theme.ViewThemeUtilsBase.withScheme(ViewThemeUtilsBase.kt:49)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils.highlightText(AndroidViewThemeUtils.kt:547)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils.highlightText$default(AndroidViewThemeUtils.kt:541)
	at com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils.highlightText(Unknown Source:23)
	at it.niedermann.owncloud.notes.main.items.NoteViewHolder.bindSearchableContent(NoteViewHolder.java:98)
	at it.niedermann.owncloud.notes.main.items.list.NoteViewHolderWithExcerpt.bind(NoteViewHolderWithExcerpt.java:41)
	at it.niedermann.owncloud.notes.main.items.ItemAdapter.onBindViewHolder(ItemAdapter.java:154)
	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.onMeasure(RecyclerView.java:3981)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
	at android.view.View.measure(View.java:25548)
	at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onMeasure(SwipeRefreshLayout.java:705)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
	at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
	at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:760)
	at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:833)
	at android.view.View.measure(View.java:25548)
	at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1156)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
	at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:145)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
	at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
	at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
	at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
	at com.android.internal.policy.DecorView.onMeasure(DecorView.java:781)
	at android.view.View.measure(View.java:25548)
	at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3527)
	at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2353)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2616)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2064)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8400)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
	at android.view.Choreographer.doCallbacks(Choreographer.java:796)
	at android.view.Choreographer.doFrame(Choreographer.java:731)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:250)
	at android.app.ActivityThread.main(ActivityThread.java:7755)
	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:958)

Metadata

Metadata

Assignees

No one assigned

    Labels

    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