saket / Better-Link-Movement-Method

Attempts to improve how clickable links are detected, highlighted and handled in TextView
Apache License 2.0
780 stars 78 forks source link

Crashing on Long press over link #9

Closed crazyhitty closed 6 years ago

crazyhitty commented 6 years ago

Hi Saket, first of all thanks for creatng this awesome library, it makes much easier to manage links in my app.

But, I am facing this crash on long click.

FATAL EXCEPTION: main
Process: me.saket.betterlinkmovement.sample, PID: 4362
java.lang.StringIndexOutOfBoundsException: length=238; index=-1
    at java.lang.String.substring(String.java:1968)
    at android.text.SpannableStringInternal.<init>(SpannableStringInternal.java:33)
    at android.text.SpannableString.<init>(SpannableString.java:34)
    at android.text.SpannableString.subSequence(SpannableString.java:54)
    at me.saket.bettermovementmethod.BetterLinkMovementMethod$ClickableSpanWithText.ofSpan(BetterLinkMovementMethod.java:436)
    at me.saket.bettermovementmethod.BetterLinkMovementMethod.dispatchUrlLongClick(BetterLinkMovementMethod.java:395)
    at me.saket.bettermovementmethod.BetterLinkMovementMethod$1.onTimerReached(BetterLinkMovementMethod.java:232)
    at me.saket.bettermovementmethod.BetterLinkMovementMethod$LongPressTimer.run(BetterLinkMovementMethod.java:413)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6541)
    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:767)

Steps to reproduce:

  1. Click on a link.
  2. Long click on the same link but just on text bounds boundary.

Video: Crash video

crazyhitty commented 6 years ago

@Saketme This pull request closes this issue: https://github.com/Saketme/Better-Link-Movement-Method/pull/10

saket commented 6 years ago

Hey @crazyhitty, just letting you know that I'll have a look at this tomorrow. I'm traveling right now and the network here is really weak. Thanks for finding this bug though.

bartwell commented 6 years ago

Hi @Saketme,

This issue still exists. Could you please to fix it?

saket commented 6 years ago

@bartwell apologies for not being able to pay attention to this. I will fix this issue this week as soon as I get time.

saket commented 6 years ago

Fixed in commit 068976d. Will release a new version soon. In the meanwhile, you can get a build off HEAD using jitpack.io.

saket commented 6 years ago

Fixed in 2.1.0: https://github.com/Saketme/Better-Link-Movement-Method/releases/tag/v2.1.0