public static UserEntityBuilder newBuilder(UserEntity user) { return newBuilder() .setUserId(user.mUserId) .setNickname(user.mNickname) .setFirstName(user.mFirstName) .setLastName(user.mLastName) .setReputation(user.mReputation) .setPictureUrl(user.mPictureUrl); }
@Override public void run() { for (UsersDataMonitorListener listener : getListeners()) { listener.onUserDataChange(userEntity); } } });
@Override public void run() { listener.onUsersFetched(users); } });
@Test public void fetchUserByIdAndNotifyIfExists_userExists_listenersNotifiedWithCorrectData() { // Arrange returnEntityMockFromRetrieverForAnyUserId(); // Act SUT.registerListener(mUsersDataMonitorListenerMock); SUT.fetchUserByIdAndNotifyIfExists(TEST_USER_ID); mThreadPostersTestDouble.join(); // Assert verify(mUsersRetrieverMock, times(1)).getUserById(mStringCaptor.capture()); verifyNoMoreInteractions(mUsersRetrieverMock); assertThat(mStringCaptor.getValue(), is(TEST_USER_ID)); verify(mUsersDataMonitorListenerMock, times(1)).onUserDataChange(mUserCaptor.capture()); verifyNoMoreInteractions(mUsersDataMonitorListenerMock); assertThat(mUserCaptor.getValue(), is(mEntityMock)); }
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 fetchDataOfActiveUser() { String activeUserId = mLoginStateManager.getLoggedInUser().getUserId(); if (activeUserId != null && !activeUserId.isEmpty()) { // notify the view that there is a logged in user mViewMvc.bindUserData(UserEntity.newBuilder().setUserId(activeUserId).build()); // fetch user's info mUsersDataMonitoringManager.fetchUserByIdAndNotifyIfExists(activeUserId); } else { // no active user mViewMvc.bindUserData(null); } }
@WorkerThread private void fetchUserByIdAndNotifyIfExistsSync(String userId) { UserEntity userEntity = mUsersRetriever.getUserById(userId); if (userEntity != null) { notifyUserDataFetched(userEntity); } }
public void updateOrInsertUserAndNotify(UserEntity user) { updateOrInsertUser(user); notifyUserDataChanged(user); }
@Provides UsersDataMonitoringManager usersDataMonitoringManager(UsersRetriever usersRetriever, BackgroundThreadPoster backgroundThreadPoster, UiThreadPoster uiThreadPoster) { return new UsersDataMonitoringManager(usersRetriever, backgroundThreadPoster, uiThreadPoster); }
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; }
@Override public void onStart() { super.onStart(); mUsersDataMonitoringManager.registerListener(this); fetchDataOfActiveUser(); }
public UserEntity build() { return new UserEntity(mUserId, mNickname, mFirstName, mLastName, mReputation, mPictureUrl); }
public static UserEntityBuilder newBuilder() { return new UserEntityBuilder(); }
@Provides UsersManager usersManager(UsersRetriever usersRetriever, BackgroundThreadPoster backgroundThreadPoster, UiThreadPoster uiThreadPoster) { return new UsersManager(usersRetriever, backgroundThreadPoster, uiThreadPoster); }
@Provides UsersCacher usersCacher(ContentResolver contentResolver, EventBus eventBus, Logger logger) { return new UsersCacher(contentResolver, eventBus, logger); }
@Provides UsersRetriever usersRetriever(ContentResolver contentResolver) { return new UsersRetriever(contentResolver); }
public void bindCreatedByUser(UserEntity user) { mTxtCreatedBy.setText(user.getNickname()); }
@Override public void onStop() { super.onStop(); mUsersDataMonitoringManager.unregisterListener(this); }
private UserEntity createUserEntityFromCurrentCursorPosition(Cursor cursor) { return UserEntity.newBuilder() .setUserId(cursor.getString(cursor.getColumnIndexOrThrow(Users.COL_USER_ID))) .setNickname(cursor.getString(cursor.getColumnIndexOrThrow(Users.COL_USER_NICKNAME))) .setFirstName(cursor.getString(cursor.getColumnIndexOrThrow(Users.COL_USER_FIRST_NAME))) .setLastName(cursor.getString(cursor.getColumnIndexOrThrow(Users.COL_USER_LAST_NAME))) .setReputation(cursor.getInt(cursor.getColumnIndexOrThrow(Users.COL_USER_REPUTATION))) .setPictureUrl(cursor.getString(cursor.getColumnIndexOrThrow(Users.COL_USER_PICTURE))) .build(); }
private UserEntity convertSchemeToUser(UserInfoScheme userInfoScheme) { return new UserEntity( userInfoScheme.getId(), userInfoScheme.getNickname(), userInfoScheme.getFirstName(), userInfoScheme.getLastName(), userInfoScheme.getReputation(), userInfoScheme.getPicture() ); }