Search in sources :

Example 6 with Post

use of com.android.example.devsummit.archdemo.vo.Post in project dev-summit-architecture-demo by yigit.

the class PostModelTest method loadWithTimestamp.

@Test
public void loadWithTimestamp() {
    long createdStart = System.currentTimeMillis();
    Post p1 = TestUtil.createDummyPost();
    p1.setCreated(createdStart - 10);
    Post p2 = TestUtil.createDummyPost();
    p2.setCreated(createdStart);
    Post p3 = TestUtil.createDummyPost();
    p3.setCreated(createdStart + 10);
    mPostModel.save(p1);
    mPostModel.save(p2);
    mPostModel.save(p3);
    assertThat(mPostModel.loadPostsSince(createdStart - 11).size(), is(3));
    assertThat(mPostModel.loadPostsSince(createdStart - 10).size(), is(2));
    assertThat(mPostModel.loadPostsSince(createdStart + 10).size(), is(0));
}
Also used : Post(com.android.example.devsummit.archdemo.vo.Post) Test(org.junit.Test) BaseTest(com.android.example.devsummit.archdemo.BaseTest)

Example 7 with Post

use of com.android.example.devsummit.archdemo.vo.Post in project dev-summit-architecture-demo by yigit.

the class FetchFeedJob method onRun.

@Override
public void onRun() throws Throwable {
    long timestamp = mFeedModel.getLatestTimestamp(mUserId);
    final Call<FeedResponse> feed;
    if (mUserId == null) {
        feed = mApiService.feed(timestamp);
    } else {
        feed = mApiService.userFeed(mUserId, timestamp);
    }
    Response<FeedResponse> response = feed.execute();
    if (response.isSuccess()) {
        Post oldest = handleResponse(response.body());
        mEventBus.post(new FetchedFeedEvent(true, mUserId, oldest));
    } else {
        throw new NetworkException(response.code());
    }
}
Also used : Post(com.android.example.devsummit.archdemo.vo.Post) FeedResponse(com.android.example.devsummit.archdemo.api.FeedResponse) FetchedFeedEvent(com.android.example.devsummit.archdemo.event.feed.FetchedFeedEvent) NetworkException(com.android.example.devsummit.archdemo.job.NetworkException)

Example 8 with Post

use of com.android.example.devsummit.archdemo.vo.Post in project dev-summit-architecture-demo by yigit.

the class SaveNewPostJob method onCancel.

@Override
protected void onCancel() {
    Post post = mPostModel.loadByClientIdAndUserId(mClientId, mUserId);
    if (post != null) {
        mPostModel.delete(post);
    }
    mEventBus.post(new DeletePostEvent(true, mText, post));
}
Also used : Post(com.android.example.devsummit.archdemo.vo.Post) DeletePostEvent(com.android.example.devsummit.archdemo.event.post.DeletePostEvent)

Example 9 with Post

use of com.android.example.devsummit.archdemo.vo.Post in project dev-summit-architecture-demo by yigit.

the class FeedModel method loadFeed.

public List<FeedItem> loadFeed(long since, @Nullable Long userId) {
    final List<Post> posts;
    if (userId == null) {
        posts = mComponent.postModel().loadPostsSince(since);
    } else {
        posts = mComponent.postModel().loadPostsOfUser(userId, since);
    }
    List<Long> userIds = new ArrayList<>();
    for (Post post : posts) {
        userIds.add(post.getUserId());
    }
    Map<Long, User> users = mComponent.userModel().loadUsersAsMap(userIds);
    List<FeedItem> result = new ArrayList<>();
    for (Post post : posts) {
        User user = users.get(post.getUserId());
        if (user != null) {
            result.add(new FeedItem(post, user));
        }
    }
    return result;
}
Also used : User(com.android.example.devsummit.archdemo.vo.User) FeedItem(com.android.example.devsummit.archdemo.vo.FeedItem) Post(com.android.example.devsummit.archdemo.vo.Post) ArrayList(java.util.ArrayList)

Example 10 with Post

use of com.android.example.devsummit.archdemo.vo.Post in project dev-summit-architecture-demo by yigit.

the class PostModel method saveValid.

private void saveValid(Post post) {
    Post existing = loadByClientIdAndUserId(post.getClientId(), post.getUserId());
    if (existing == null) {
        post.save();
    } else {
        post.setId(existing.getId());
        post.update();
    }
}
Also used : Post(com.android.example.devsummit.archdemo.vo.Post)

Aggregations

Post (com.android.example.devsummit.archdemo.vo.Post)20 Test (org.junit.Test)11 BaseTest (com.android.example.devsummit.archdemo.BaseTest)9 FeedItem (com.android.example.devsummit.archdemo.vo.FeedItem)5 User (com.android.example.devsummit.archdemo.vo.User)5 FetchedFeedEvent (com.android.example.devsummit.archdemo.event.feed.FetchedFeedEvent)4 FeedResponse (com.android.example.devsummit.archdemo.api.FeedResponse)2 NewPostResponse (com.android.example.devsummit.archdemo.api.NewPostResponse)2 NetworkException (com.android.example.devsummit.archdemo.job.NetworkException)2 FeedModel (com.android.example.devsummit.archdemo.model.FeedModel)2 Nullable (android.support.annotation.Nullable)1 DeletePostEvent (com.android.example.devsummit.archdemo.event.post.DeletePostEvent)1 NewPostEvent (com.android.example.devsummit.archdemo.event.post.NewPostEvent)1 UpdatedPostEvent (com.android.example.devsummit.archdemo.event.post.UpdatedPostEvent)1 TestUtil.createDummyPost (com.android.example.devsummit.archdemo.util.TestUtil.createDummyPost)1 TestUtil.createDummyUser (com.android.example.devsummit.archdemo.util.TestUtil.createDummyUser)1 ArrayList (java.util.ArrayList)1