private void refreshUsers() { if (mRequest == null) { // request's info hasn't been fetched yet - users info can't be refreshed return; } List<String> usersIds = new ArrayList<>(3); usersIds.add(mRequest.getCreatedBy()); String pickedUpBy = mRequest.getPickedUpBy(); String closedBy = mRequest.getClosedBy(); if (pickedUpBy != null && !pickedUpBy.isEmpty()) { usersIds.add(pickedUpBy); } if (closedBy != null && !closedBy.isEmpty()) { usersIds.add(closedBy); } mUsersManager.fetchUsersByIdAndNotify(usersIds, this); }
private ContentValues requestEntityToContentValues(RequestEntity requestEntity) { ContentValues values = new ContentValues(); values.put(Requests.COL_REQUEST_ID, requestEntity.getId()); values.put(Requests.COL_CREATED_BY, requestEntity.getCreatedBy()); values.put(Requests.COL_CREATED_AT, requestEntity.getCreatedAt()); values.put(Requests.COL_CREATED_COMMENT, requestEntity.getCreatedComment()); values.put(Requests.COL_CREATED_PICTURES, StringUtils.listToCommaSeparatedString(requestEntity.getCreatedPictures())); values.put(Requests.COL_CREATED_VOTES, requestEntity.getCreatedVotes()); values.put(Requests.COL_LATITUDE, requestEntity.getLatitude()); values.put(Requests.COL_LONGITUDE, requestEntity.getLongitude()); values.put(Requests.COL_PICKED_UP_BY, requestEntity.getPickedUpBy()); values.put(Requests.COL_PICKED_UP_AT, requestEntity.getPickedUpAt()); values.put(Requests.COL_CLOSED_BY, requestEntity.getClosedBy()); values.put(Requests.COL_CLOSED_AT, requestEntity.getClosedAt()); values.put(Requests.COL_CLOSED_COMMENT, requestEntity.getClosedComment()); values.put(Requests.COL_CLOSED_PICTURES, StringUtils.listToCommaSeparatedString(requestEntity.getClosedPictures())); values.put(Requests.COL_CLOSED_VOTES, requestEntity.getClosedVotes()); values.put(Requests.COL_LOCATION, requestEntity.getLocation()); return values; }
@NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { final RequestPreviewViewMvcImpl requestPreviewViewMvc; if (convertView == null) { requestPreviewViewMvc = new RequestPreviewViewMvcImpl(LayoutInflater.from(mContext), parent); convertView = requestPreviewViewMvc.getRootView(); convertView.setTag(requestPreviewViewMvc); } else { requestPreviewViewMvc = (RequestPreviewViewMvcImpl) convertView.getTag(); } RequestEntity request = getItem(position); requestPreviewViewMvc.bindRequest(request); final String createdByUserId = request.getCreatedBy(); final View finalConvertView = convertView; finalConvertView.setHasTransientState(true); mUsersManager.fetchUsersByIdAndNotify( Collections.singletonList(createdByUserId), new UsersManager.UsersManagerListener() { @Override public void onUsersFetched(List<UserEntity> users) { if (users.size() > 0) { requestPreviewViewMvc.bindCreatedByUser(users.get(0)); } finalConvertView.setHasTransientState(false); } }); return convertView; }
@Override public void onUsersFetched(List<UserEntity> users) { mLogger.d(TAG, "onUsersFetched() called"); for (UserEntity user : users) { // one user can have multiple "roles" if (user.getUserId().equals(mRequest.getCreatedBy())) { mRequestDetailsViewMvc.bindCreatedByUser(user); } if (user.getUserId().equals(mRequest.getPickedUpBy())) { mRequestDetailsViewMvc.bindPickedUpByUser(user); } if (user.getUserId().equals(mRequest.getClosedBy())) { mRequestDetailsViewMvc.bindClosedByUser(user); } } } }
public void addNewRequest(final RequestEntity newRequest) { mLogger.d(TAG, "addNewRequest(); request ID: " + newRequest.getId()); final CreateRequestUserActionEntity createRequestUserAction = new CreateRequestUserActionEntity( newRequest.getCreatedAt(), newRequest.getId(), newRequest.getCreatedBy()); mBackgroundThreadPoster.post(new Runnable() { @Override public void run() { // TODO: ensure atomicity of below actions using TransactionController mUserActionCacher.cacheUserAction(createRequestUserAction); mRequestsCacher.updateOrInsertAndNotify(newRequest); } }); }
@Test public void addNewRequest_createRequestUserActionCached() { // Arrange RequestEntity newRequest = RequestEntityProvider.getNewRequestEntity(); // Act SUT.addNewRequest(newRequest); // Assert mThreadPostersTestDouble.join(); CreateRequestUserActionEntity expectedUserAction = new CreateRequestUserActionEntity(newRequest.getCreatedAt(), newRequest.getId(), newRequest.getCreatedBy()); verify(mUserActionCacherMock).cacheUserAction(mUserActionsCaptor.capture()); UserActionEntity cachedUserAction = mUserActionsCaptor.getValue(); assertUserActionsEqual(cachedUserAction, expectedUserAction); }
private void assertRequestsEqual(RequestEntity actual, RequestEntity expected) { assertThat(actual.getId(), is(expected.getId())); assertThat(actual.getCreatedBy(), is(expected.getCreatedBy())); assertThat(actual.getCreatedAt(), is(expected.getCreatedAt())); assertThat(actual.getCreatedComment(), is(expected.getCreatedComment())); assertEquals(actual.getCreatedPictures(), expected.getCreatedPictures()); assertThat(actual.getCreatedVotes(), is(expected.getCreatedVotes())); assertThat(actual.getLatitude(), is(expected.getLatitude())); assertThat(actual.getLongitude(), is(expected.getLongitude())); assertThat(actual.getPickedUpBy(), is(expected.getPickedUpBy())); assertThat(actual.getPickedUpAt(), is(expected.getPickedUpAt())); assertThat(actual.getClosedBy(), is(expected.getClosedBy())); assertThat(actual.getClosedAt(), is(expected.getClosedAt())); assertThat(actual.getClosedComment(), is(expected.getClosedComment())); assertEquals(actual.getClosedPictures(), expected.getClosedPictures()); assertThat(actual.getClosedVotes(), is(expected.getClosedVotes())); assertThat(actual.getLocation(), is(expected.getLocation())); } }
private void assertRequestsEqual(RequestEntity request1, RequestEntity request2) { assertThat(request1.getId(), is(request2.getId())); assertThat(request1.getCreatedBy(), is(request2.getCreatedBy())); assertThat(request1.getCreatedAt(), is(request2.getCreatedAt())); assertThat(request1.getCreatedComment(), is(request2.getCreatedComment())); assertThat(request1.getCreatedVotes(), is(request2.getCreatedVotes())); assertEquals(request1.getCreatedPictures(), request2.getCreatedPictures()); assertThat(request1.getLatitude(), is(request2.getLatitude())); assertThat(request1.getLongitude(), is(request2.getLongitude())); assertThat(request1.getLocation(), is(request2.getLocation())); assertThat(request1.getPickedUpBy(), is(request2.getPickedUpBy())); assertThat(request1.getPickedUpAt(), is(request2.getPickedUpAt())); assertThat(request1.getClosedBy(), is(request2.getClosedBy())); assertThat(request1.getClosedAt(), is(request2.getClosedAt())); assertThat(request1.getClosedComment(), is(request2.getClosedComment())); assertThat(request1.getClosedVotes(), is(request2.getClosedVotes())); assertEquals(request1.getClosedPictures(), request2.getClosedPictures()); assertThat(request1.getId(), is(request2.getId())); assertThat(request1.getId(), is(request2.getId())); }