private List<String> updateOrInsertUsers(List<UserInfoScheme> usersInfo) { List<String> processedUsersIds = new ArrayList<>(usersInfo.size()); for (UserInfoScheme userInfoScheme : usersInfo) { UserEntity user = convertSchemeToUser(userInfoScheme); mUsersCacher.updateOrInsertUserAndNotify(user); processedUsersIds.add(user.getUserId()); } return processedUsersIds; }
private ContentValues userToContentValues(UserEntity user) { ContentValues cv = new ContentValues(10); cv.put(IDoCareContract.Users.COL_USER_ID, user.getUserId()); cv.put(IDoCareContract.Users.COL_USER_NICKNAME, user.getNickname()); cv.put(IDoCareContract.Users.COL_USER_FIRST_NAME, user.getFirstName()); cv.put(IDoCareContract.Users.COL_USER_LAST_NAME, user.getLastName()); cv.put(IDoCareContract.Users.COL_USER_REPUTATION, user.getReputation()); cv.put(IDoCareContract.Users.COL_USER_PICTURE, user.getPictureUrl()); return cv; }
private void notifyUserDataChanged(UserEntity user) { mEventBus.post(new UserDataChangedEvent(user.getUserId())); }
@Override public void onUserDataChange(UserEntity user) { if (user.getUserId().equals(mLoginStateManager.getLoggedInUser().getUserId())) { mViewMvc.bindUserData(user); } }
@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 updateOrInsertUser(UserEntity user) { mLogger.d(TAG, "updateOrInsertUser() called; user ID: " + user.getUserId()); // TODO: make operations atomic ContentValues cv = userToContentValues(user); int updateCount = mContentResolver.update( IDoCareContract.Users.CONTENT_URI, cv, IDoCareContract.Users.COL_USER_ID + " = ?", new String[] {user.getUserId()} ); if (updateCount <= 0) { mContentResolver.insert( IDoCareContract.Users.CONTENT_URI, cv ); mLogger.v(TAG, "new user inserted"); } else { mLogger.v(TAG, "user updated"); } }