I found myself wanting to pause GIFs or restart them. So, I looked into what options there were and saw that there was already a gif package that Infinity was using with a class that supported it. Never contributed to an open-source project like this, usually just making comments/issues. I really just want the feature implemented; I don't mind if the code is torn apart.
Originally was just going to replace the BigImageView, but in the interest of preserving full image functionality (such as zoom/pan), I split the views. This has the added benefit of simplifying things like hiding buttons depending on if it's a GIF or not, and a lot of the supporting code if not all of it already had hooks to differentiate the two. So, I just pointed the rest of the code to the correct class. Cleans up GIF views when images aren't viewed and vice versa.
I also made some changes Android Studio recommended, things like bumping versions and whatnot in the Gradle and redoing some deprecated code.
Where I have suspicions of my own wrongdoing:
My Java is rusty, and I was designing this to be only for my phone which is still on Android 8. So, I'm sure there's a lot to do to make it better. I also am unfamiliar with app development past some light messing around, so a lot of the packages and addons and things are unfamiliar to me. Things like @Inject and @BindView. I tried my best, but I probably got some things wrong.
I may have messed up some things in the manifest, I'm not sure.