helpful hints
The problem, as already stated, lies in the new chat feature. More specifically however I noticed on a quick glance that there is a new class "ChatScreenshot" under the chat modelling directory. I'll try have a look at the source for Keepchat on the git repo in a while and see if I can modify it to handle the new code.
No need, just hook outgoing messages like Mailman to prevent ChatConversation from sending anything related to screenshots such as ChatMessage.MessageBody.Type.SCREENSHOT and it's related method that passes (it might not be "a" depending on version) a(paramChatConversation, paramChatScreenshot)
OR (overkill but effective) dive even lower and attack something like SnapUtils (see public void v() in model.ReceivedSnap for reference to how SnapUtils is handling this) ability to flag a snap then go remove screenshot_count from places such as model.server.chat.SnapStateMessage. there are so many places where the statuses are set and you have to be careful which ones you mess with...
hooking generic classes like SnapUtils or clientSnapStatus should b done with care as some are also used on messages received. models are also risky in this regard. stick to model.chat.server.* if you're going this route.
I think it's best and safest to hook at message passing layer like snapchat.android.SendingMailman and Receiving.Mailman (obviously you only need hook the outgoing). Monitor the methods in there (by hooking all the methods with the ChatConversation param) to see exactly what's being exchanged. Also take note of what happens when your offline because snapchat handles that differently.
Generally hook anything suspected of an outgoing call that reports a screenshot or a larger objects that pass along things like a snap's status. Then adjust them accordingly when hooked by keepchat. I started with snapchat.model.server.ChatMessage, watched its invokers, and went backwards. I also went down to the bus but that isnt necessary. I can give you the ones i changed for 5.0.5 stable but that's the only one i looked at.
Again if you try and remove or hook screenshot detection methods your gonna have a bad time. just change what your sending back to snapchat. However its worth noting my Mailman example is almost exclusively for chat as it seems that's what everyone is having trouble with. This will NOT prevent screenshot messages back to snapchat when not in chat.
Let me know if u need any more help. Its really not that bad.
If you removed the Android-DirectoryChooser (i don't do or deal with apache license), id submit a pull req.
I'll b looking into addlive (the streaming live service / lib they're using for video stream) and reversing ClandestineDolphinHelper (the class that implements addlive) to see if we can't get some live chat video recording in there
sit back and grab a beer because its gonna be a while.