@Provides UsersManager usersManager(UsersRetriever usersRetriever, BackgroundThreadPoster backgroundThreadPoster, UiThreadPoster uiThreadPoster) { return new UsersManager(usersRetriever, backgroundThreadPoster, uiThreadPoster); }
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); }
@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; }