just a working solution to android lifecycle and networking problem
With a huge thanks to (CLINTON TEEGARDEN, 2016) at https://www.captechconsulting.com/blogs/a-mvp-approach-to-lifecycle-safe-requests-with-retrofit-20-and-rxjava
And a blog I wrote for this problem that I struggled for very long.
http://androidubaby.blogspot.co.uk/2017/12/android-lifecycle-and-networking.html
all the classes except activity would ideally be placed in lets say "networkapi" package, example activity uses those classes, fix your imports, because classes have example import, rename your classes and modify your JSON POJO's.