Search in sources :

Example 1 with UpdatedPostEvent

use of com.android.example.devsummit.archdemo.event.post.UpdatedPostEvent in project dev-summit-architecture-demo by yigit.

the class SaveNewPostJob method onRun.

@Override
public void onRun() throws Throwable {
    Post post = mPostModel.loadByClientIdAndUserId(mClientId, mUserId);
    if (post != null && !post.isPending()) {
        // looks like post probably arrived from somewhere else. Good Job!
        mEventBus.post(new UpdatedPostEvent(post));
        return;
    }
    Response<NewPostResponse> response = mApiService.sendPost(mText, mClientId, mUserId).execute();
    if (response.isSuccess()) {
        NewPostResponse body = response.body();
        body.getPost().setPending(false);
        mPostModel.save(body.getPost());
        mUserModel.save(body.getUser());
        mEventBus.post(new UpdatedPostEvent(body.getPost()));
    } else {
        throw new NetworkException(response.code());
    }
}
Also used : NewPostResponse(com.android.example.devsummit.archdemo.api.NewPostResponse) Post(com.android.example.devsummit.archdemo.vo.Post) UpdatedPostEvent(com.android.example.devsummit.archdemo.event.post.UpdatedPostEvent) NetworkException(com.android.example.devsummit.archdemo.job.NetworkException)

Aggregations

NewPostResponse (com.android.example.devsummit.archdemo.api.NewPostResponse)1 UpdatedPostEvent (com.android.example.devsummit.archdemo.event.post.UpdatedPostEvent)1 NetworkException (com.android.example.devsummit.archdemo.job.NetworkException)1 Post (com.android.example.devsummit.archdemo.vo.Post)1