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));
}
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());
}
}
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));
}
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;
}
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();
}
}
Aggregations