{"push_id":631484984,"size":11,"distinct_size":0,"ref":"refs/heads/master","head":"c315eb7fa967b82e85e08af5522d4c3af5ba1eeb","before":"2abf6a44672e119b1ad4068fabfd84094533fc4a","commits":[{"sha":"58ea9f8a9d4428bea520532b49cc3438dfcee980","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Remove SplashScreenActivity.\n\nCurrently, SplashScreenActivity is only loading the *User* object so it's\navailable to anyone who needs it. This sucks at a lot of levels, since we\ncan't guarantee that everyone who needs the User will have it, nor the User\nwill be fresh, etc. If the user opens the application through a notification\nand is presented with the MessageListFragment, for example, how can we\nguarantee that the User object is available?\n\nSo I decided that everyone who needs the User object will get it from the\nrepository.\n\nIn order to not make one request each time we need a User, we can use the\ncurrent caching APIs. Since we only have a memory cache right now, I think we\ncould implement a new Cache subclass that stores its data in the current\naccount's *user data.*\n\nFor that to work, we have to ensure that an Account exists before doing\nanything. So I decided to move the *check if an account exists* from the\nOperator to a plain Observable. This way we can do stuff like this:\n\n    ```\n    AccountUtils.getOrRetrieveAccount(this)\n                    .flatMap(account -> repository.getUser()\n                            // Cache the User in the current account!\n                            .compose(UserCache.with(this, account).cache()))\n                    .flatMap(user -> repository.getGroups(user.getCompanyId()))\n                    [...]\n    ```\n\nThis will guarantee the integrity of the data across the whole application, no\nmatter where the user starts from.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/58ea9f8a9d4428bea520532b49cc3438dfcee980"},{"sha":"893dade2473a7caa0169347c7242d47b89468965","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Cache user data using a Gson serializer.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/893dade2473a7caa0169347c7242d47b89468965"},{"sha":"f00227babbb35a0eec66795e7dce1e8d044c466d","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Fix context lost while adding account.\n\nNow the \"addAccount\" request is shared when called by multiple sources at the same time. When the account is added it won't close the app.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/f00227babbb35a0eec66795e7dce1e8d044c466d"},{"sha":"89ac0ddc9af17734437b24c0df5400466b465024","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Refactor the message list.\n\nNow using the new way of retrieving the user. The current implementation still lacks some touches on the way we retrieve the user.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/89ac0ddc9af17734437b24c0df5400466b465024"},{"sha":"60af5b624a16ee5f8ec47f67bfc4d462db6ec93a","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Fix error notification glitch.\n\nThe message list ViewHolder used to leak the error notification and the \"red font\" between binds. Now it doesn't.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/60af5b624a16ee5f8ec47f67bfc4d462db6ec93a"},{"sha":"2a707f4e4fe2c609bd8617467da5438e712ce6b4","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Woa!! This one was really, really HARD!","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/2a707f4e4fe2c609bd8617467da5438e712ce6b4"},{"sha":"e65cbd7eb5443be30892b463af6778af3e13f9b9","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Display local user info in the message list.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/e65cbd7eb5443be30892b463af6778af3e13f9b9"},{"sha":"32f5607412f84369cc4850dcd78f597c10f691ee","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Rename method names for consistency.\n\nEverywhere else we're using JavaBeans' style, so be it. AutoParcel supports both anyway.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/32f5607412f84369cc4850dcd78f597c10f691ee"},{"sha":"c57a924e37c08ac97514875a5ce2c069768c55f2","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Properly display user info of local messages.\n\nWith a big refactor of how the UI handles remote and local messages, now we can handle both through the Message interface.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/c57a924e37c08ac97514875a5ce2c069768c55f2"},{"sha":"dcea25f28090218cdde7960625af4af7d538b203","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"I cant't even","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/dcea25f28090218cdde7960625af4af7d538b203"},{"sha":"c315eb7fa967b82e85e08af5522d4c3af5ba1eeb","author":{"email":"24b8c18a9c8450daa1b2c3c779902728ca24b117@gmail.com","name":"Dirley Rodrigues"},"message":"Tie everything to the current user.","distinct":false,"url":"https://api.github.com/repos/labhackercd/edm/commits/c315eb7fa967b82e85e08af5522d4c3af5ba1eeb"}]}