Episodie [1.0.1] - Fatal Exception when marking seasons as watched/unwatched

in #utopian-io6 years ago (edited)

Project Information

Repository: https://github.com/hypeapps/episodie
Project Name: Episodie
Publisher: https://github.com/hypeapps
Fdroid Download Link: https://f-droid.org/packages/pl.hypeapp.episodie/
Google Play Download Link: https://play.google.com/store/apps/details?id=pl.hypeapp.episodie

Expected behaviour

I should be able to mark shows as watched and unwatched without interruption. When I mark a show as watched it should add to my watched hours, when I mark a show as unwatched it should be removed from my watched shows.

Actual behaviour

Occasionally when marking a shows as watched or unwatched the application will crash.

How to reproduce

  1. From either a fresh install or existing install select enter the application and select a TV show. For the purpose of clarity, select "Supernatural"

  2. Select the episodes tab.

  3. Quickly switch between marking the two different seasons as watched and unwatched. For example, click season 1 watched then season 2 watched then season 1 unwatched and then season 2 unwatched.

  4. Repeat step until a crash occurs, the time this takes to reproduce varies. The method mentioned seems to reproduce the issue everytime across the devices mentioned a reproducible below.

Please note that the above steps were not the first way I replicated this issue, this issue first occurred during normal application use, but the above is the only way I can seem to replicate over and over again. Please note I checked the error on the standard behaviour crash and the crash mentioned in my steps and it’s the same exception. I realise that the steps provided may be a low priority crash so I would like to make you’re aware it does occur in normal use. The behaviour I carried out first was simply adding shows I've watched to my watched list and randomly it would crash, this will cause it to crash eventually although nothing I can state with replicable steps. I believe fixing the error mentioned below caused by the steps mention within the steps to reproduce will resolve the issue in standard behaviour too.

Logs

05-27 01:50:25.089 18389-18389/pl.hypeapp.episodie E/AndroidRuntime: FATAL EXCEPTION: main
    Process: pl.hypeapp.episodie, PID: 18389
    java.lang.NullPointerException: Attempt to invoke virtual method 'float android.text.Layout.getLineLeft(int)' on a null object reference
        at com.hanks.htextview.evaporate.EvaporateText.animateText(EvaporateText.java:52)
        at com.hanks.htextview.evaporate.EvaporateTextView.animateText(EvaporateTextView.java:46)
        at pl.hypeapp.episodie.ui.widget.RuntimeAlerterView$startSlideInDownAnimation$2.call(RuntimeAlerterView.kt:56)
        at com.daimajia.androidanimations.library.YoYo$AnimationComposer$2.onAnimationEnd(YoYo.java:181)
        at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:552)
        at android.animation.AnimatorSet.endAnimation(AnimatorSet.java:1294)
        at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1079)
        at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
        at android.animation.AnimationHandler.-wrap2(Unknown Source:0)
        at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:909)
        at android.view.Choreographer.doCallbacks(Choreographer.java:723)
        at android.view.Choreographer.doFrame(Choreographer.java:655)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Environment

Application Version: 1.0.1

Tested on multiple different Android versions both using a physical device and emulators.

DeviceAndroid VersionEmulator/PhysicalReproducible?
Motorola 3 (3rd Generation)6.0.1PhysicalYes
Pixel 27.1EmulatedYes
Pixel 28.0EmulatedYes

Recording of the issue

The following video helps to show this issue further, this was recorded on the 7.0 emulator.

Proof of work

Sort:  

Hello I was able to verify the issue in Anrdoid6.0 too .I think it will do a good help to the PO for improving his project as the content is detailed.

Your contribution has been evaluated according to Utopian rules and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post,Click here


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Hey @tobias-g
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

@resteemator is a new bot casting votes for its followers. Follow @resteemator and vote this comment to increase your chance to be voted in the future!

Coin Marketplace

STEEM 0.19
TRX 0.16
JST 0.030
BTC 65739.28
ETH 2626.92
USDT 1.00
SBD 2.66