public void addFriend(final FriendRequest friendRequest) { FriendshipAddForm dataForm = new FriendshipAddForm(); dataForm.friend_id = friendRequest.getUid(); friendshipResource .save(dataForm) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()) .subscribe( response -> { // TODO show add friend Tip Friend friend = new Friend(); friend.setUid(friendRequest.getUid()); friend.setUsername(friendRequest.getUsername()); friend.setNickname( TextUtils.isEmpty(friendRequest.getNickname()) ? friendRequest.getDisplayName() : friendRequest.getNickname()); friend.setAvatar(friendRequest.getAvatar()); friendDao.insert(friend); }, error -> { // TODO show error info }); // update friendRequest friendRequest.setStatus(FriendRequestStatus.ACCEPT.name()); friendRequestDao.update(friendRequest); }
public void synchronizationRemote() { friendshipResource .list() .observeOn(Schedulers.io()) .subscribeOn(Schedulers.io()) .flatMap(list -> Observable.from(list)) .subscribe( friendVo -> { Friend friend = friendDao.queryBuilder().where(FriendDao.Properties.Uid.eq(friendVo.id)).unique(); if (friend == null) { friend = new Friend(); friend.setUid(friendVo.id); friend.setUsername(friendVo.username); friend.setNickname(friendVo.nickname); friend.setAvatar(friendVo.avatar); } else { friend.setUsername(friendVo.username); friend.setNickname(friendVo.nickname); friend.setAvatar(friendVo.avatar); } friendDao.insertOrReplace(friend); }); }