Unfortunately, it's that time of year where we have 'that' talk.
I'm sensing a fair amount of hostility via email, the review system, and here in this community from various users when troubleshooting issues and discussing features. There's also been some really positive and healthy discussion, so I don't want to diminish that.. But I'm going to talk about the stuff that's bothering me.
I usually get a lot of nasty emails and bad reviews when I release an update. There were a LOT of crashes happening on Shuttle prior to v1.5.13 (the first official update in 6 weeks or so) but that update brought some new (less common) issues, and also forced everyone to re-download their artwork, which usually ends in tears for some users.
Overall, v1.5.13 is way less crashy than the previous version, and v1.5.14 fixes even more crashes. Shuttle is currently 99.6% crash free, meaning 0.4% of users experience some form of crash. I don't know whether that's good or bad. Naturally I'll keep trying to reduce crashes.
Text lacks tone. I know this, and I've mentioned it before. It affects me like it affects you guys. Sometimes I think you're being an asshole, but you totally didn't mean it that way. Sometimes you think I'm being an asshole. Sometimes I am being an asshole!
It's important to remember that when you mention you'd like a feature and I say "why not just do this instead", I'm not saying your feature request is shit and I'm never going to implement it. I'm just generating discussion. I'm saying 'is this really necessary'. I'm trying to get a sense of whether you've already tried other possibilities, or whether other users are interested in the same feature. Sometimes I'm just trying to get to the core of why you want this feature. Sometimes it is a terrible idea!
When you mention a bug in Shuttle, and I ask for further information, or what device/ROM you're running, or how long it's been happening, or I say "this doesn't happen on my test devices" or "no one else has reported this" or "I don't care if it doesn't happen in PowerAmp", I'm not saying "hey, this is all in your head. Go buy a new device". I'm trying to figure out if I broke something in Shuttle, or you just updated your ROM and that's what changed. Or maybe something only happens on Kitkat devices, and I haven't noticed it. Or maybe your phone needs a reboot or a database is corrupt. Before I spend hours looking into it (and it's almost impossible to fix bugs if I can't reproduce them on a test device), I want to be at least 95% sure it's something that I can and should fix in Shuttle. You'd be surprised how often I push back and say 'can you reboot your device' or 'clear the media store' and someone who was 100% sure it was a Shuttle issue comes back and says it's fixed.
So if you find yourself getting frustrated with my questions, don't assume I don't care about the crash/bug/feature request or I'm not going to fix it. I pretty much read everything posted here, most things several times. If you're saying it's crashing, I believe you. I am listening, and I do want to fix it. By the same token, I'd appreciate it if I'm able to say 'can you try these steps', or 'can you give me further information', and I'm not met with a bunch of hostility, sarcasm, and the classic "this doesn't happen in PowerAmp".
Other Music Players
"This doesn't happen in Play Music/PowerAmp/Some Other Player" is a line I'm very tired of hearing. This usually isn't very useful information, because other players don't use the same code. PowerAmp and Play Music don't use the MediaStore. PowerAmp uses a custom audio engine.. I'm stuck with the stock MediaPlayer. Just because something works in another app, that doesn't immediately tell me that Shuttle is broken.
Shuttle is using a new system for artwork loading and downloading (Glide). Glide is an image loading library written by some very smart people. Using Glide, Shuttle will download images, cache the original to disk, scale it down to fit into the various image views in the app, cache the scaled down versions to disk, and also cache the most recently used images in memory. Previous versions of Shuttle did something similar, but in a much less efficient, uglier (from a coding point of view) way. Glide is the reason it only took me about half an hour to add images to the queue screen!
Glide uses less memory, it's faster, and it's more reliable than the previous image loading libraries. But, since image loading affects almost every UI aspect of the app, there are bound to be some issues. Some users are noticing issues with their widgets not loading artwork, or artwork not appearing on the lockscreen, in notifications etc.
Some of these 'artwork not loading' problems are actually Shuttle saying 'there was an error loading this artwork, your device might be out of memory, or something went wrong.. In the old days, Shuttle would have crashed, but instead, Shuttle is not going to display an image'.
I spend a lot of time working on Shuttle, and I have for many years now. I'm not abandoning the project any time soon. I often work on it when I'm travelling to and from work, and between getting home from work and going to bed. Usually my time to work on Shuttle is really limited, so I try to jump in and write as much code as I can. That means I don't have a whole lot of time to write detailed and diplomatic responses. I am sarcastic and harsh at times, but mostly I'm just trying to get to the bottom of the issue as quickly as possible.
I hop that clears things up for some of you.