use of com.nextcloud.talk.models.database.User in project talk-android by nextcloud.
the class UserUtils method createOrUpdateUser.
public Observable<UserEntity> createOrUpdateUser(@Nullable String username, @Nullable String token, @Nullable String serverUrl, @Nullable String displayName, @Nullable String pushConfigurationState, @Nullable Boolean currentUser, @Nullable String userId, @Nullable Long internalId, @Nullable String capabilities) {
Result findUserQueryResult;
if (internalId == null) {
findUserQueryResult = dataStore.select(User.class).where(UserEntity.USERNAME.eq(username).and(UserEntity.BASE_URL.eq(serverUrl))).limit(1).get();
} else {
findUserQueryResult = dataStore.select(User.class).where(UserEntity.ID.eq(internalId)).get();
}
UserEntity user = (UserEntity) findUserQueryResult.firstOrNull();
if (user == null) {
user = new UserEntity();
user.setBaseUrl(serverUrl);
user.setUsername(username);
user.setToken(token);
if (!TextUtils.isEmpty(displayName)) {
user.setDisplayName(displayName);
}
if (pushConfigurationState != null) {
user.setPushConfigurationState(pushConfigurationState);
}
if (!TextUtils.isEmpty(userId)) {
user.setUserId(userId);
}
if (!TextUtils.isEmpty(capabilities)) {
user.setCapabilities(capabilities);
}
user.setCurrent(true);
} else {
if (userId != null && (user.getUserId() == null || !user.getUserId().equals(userId))) {
user.setUserId(userId);
}
if (token != null && !token.equals(user.getToken())) {
user.setToken(token);
}
if ((displayName != null && user.getDisplayName() == null) || (displayName != null && user.getDisplayName() != null && !displayName.equals(user.getDisplayName()))) {
user.setDisplayName(displayName);
}
if (pushConfigurationState != null && !pushConfigurationState.equals(user.getPushConfigurationState())) {
user.setPushConfigurationState(pushConfigurationState);
}
if (capabilities != null && !capabilities.equals(user.getCapabilities())) {
user.setCapabilities(capabilities);
}
if (currentUser != null) {
user.setCurrent(currentUser);
}
}
return dataStore.upsert(user).toObservable().subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread());
}
use of com.nextcloud.talk.models.database.User in project talk-android by nextcloud.
the class UserUtils method deleteUser.
public Completable deleteUser(String username, String serverUrl) {
Result findUserQueryResult = dataStore.select(User.class).where(UserEntity.USERNAME.eq(username).and(UserEntity.BASE_URL.eq(serverUrl))).limit(1).get();
UserEntity user = (UserEntity) findUserQueryResult.firstOrNull();
return dataStore.delete(user).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread());
}
Aggregations