Fix Nextcloud News login error message

This commit is contained in:
Shinokuni 2020-07-29 12:20:06 +02:00
parent 1695c3baf6
commit 024aa04a60
2 changed files with 23 additions and 21 deletions

View File

@ -49,6 +49,7 @@ public abstract class ARepository<T> {
protected abstract T createAPI();
// TODO : replace Single by Completable
public abstract Single<Boolean> login(Account account, boolean insert);
public abstract Observable<Feed> sync(List<Feed> feeds);

View File

@ -7,13 +7,6 @@ import android.util.TimingLogger;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.readrops.app.utils.FeedInsertionResult;
import com.readrops.app.utils.ParsingResult;
import com.readrops.app.utils.Utils;
import com.readrops.db.entities.Feed;
import com.readrops.db.entities.Folder;
import com.readrops.db.entities.Item;
import com.readrops.db.entities.account.Account;
import com.readrops.api.services.Credentials;
import com.readrops.api.services.SyncResult;
import com.readrops.api.services.SyncType;
@ -21,6 +14,13 @@ import com.readrops.api.services.nextcloudnews.NextNewsAPI;
import com.readrops.api.services.nextcloudnews.NextNewsSyncData;
import com.readrops.api.services.nextcloudnews.json.NextNewsUser;
import com.readrops.api.utils.UnknownFormatException;
import com.readrops.app.utils.FeedInsertionResult;
import com.readrops.app.utils.ParsingResult;
import com.readrops.app.utils.Utils;
import com.readrops.db.entities.Feed;
import com.readrops.db.entities.Folder;
import com.readrops.db.entities.Item;
import com.readrops.db.entities.account.Account;
import org.joda.time.LocalDateTime;
@ -59,23 +59,24 @@ public class NextNewsRepository extends ARepository<NextNewsAPI> {
NextNewsUser user = api.login();
emitter.onSuccess(user);
}).flatMap(user -> {
if (user != null) {
account.setDisplayedName(user.getDisplayName());
account.setCurrentAccount(true);
emitter.onSuccess(user);
} else {
emitter.onError(new Exception("Login failed. Please check your credentials and your Nextcloud News setup."));
}
}).flatMap(user -> {
account.setDisplayedName(user.getDisplayName());
account.setCurrentAccount(true);
if (insert) {
return database.accountDao().insert(account)
.flatMap(id -> {
account.setId(id.intValue());
return Single.just(true);
});
}
if (insert) {
return database.accountDao().insert(account)
.flatMap(id -> {
account.setId(id.intValue());
return Single.just(true);
});
}
return Single.just(true);
} else
return Single.just(false);
return Single.just(true);
});
}