feel like boyfriend of 5 years is up to something

Hope it is ok to post this. 
My boyfriend is so distant and horrible and has been for a while now. 
He's constantly putting me down and calling me every name under the sun and never wants to have any affection with me. If I ask for a cuddle in bed or kiss etc he will tell me to fuck off and stop going on at him. He often calls me fat and ugly and tells me he doesn't like me, when all I'm being is myself and all I try to do is show him some affection, he only seems to be nice when he wants sex (which isn't that often). I recently lost my auntie to stomach cancer and my dad is battling chronic lymphnatic lukemia it's been a tough year and he hasn't been there for me at all.
He's constantly on his phone and takes it everywhere with him, I know there is a girl at work that he really gets on with (which I didn't hear from him I heard it from his manager she described it as 'he has really come out of his shell since meeting Laura and they are constantly bantering with each other) which is fine if he wasn't acting so shady and nasty towards me but can be nice to another woman. 
What got me was whilst we was having dinner he caught a picture of me whilst eating my dinner on snapchat and told me he would only send it to me to which I asked him to show me he would only send it to me and not his friends as it was a bad picture. He refused to and ended up deleting the picture on Snapchat before sending it to me as I feel he didn't want me to see who he had been snapchatting. 
It's getting me down so much and I don't know what to do, I can't even talk to him without him getting defensive and twisting things around saying I'm arguing when I just want to tell him how I feel.
Sorry for the long post I just needed to tell someone before I loose my mind xx

Glow Resources

Let’s Glow

Glow is here for you on your path to pregnancy

Glow helps you navigate your fertility journey with smart tools, personalized insights, and guidance from medical experts who understand what matters most.

25+ million

Users

4.8 stars

200k+ app ratings

20+

Medical advisors