use of com.kboyarshinov.realmrxjavaexample.model.Label in project realm-rxjava-example by kboyarshinov.
the class RealmDataService method newIssue.
@Override
public Observable<Issue> newIssue(final String title, final String body, final User user, List<Label> labels) {
// map internal UI objects to Realm objects
final RealmUser realmUser = new RealmUser();
realmUser.setLogin(user.getLogin());
final RealmList<RealmLabel> realmLabels = new RealmList<>();
for (Label label : labels) {
RealmLabel realmLabel = new RealmLabel();
realmLabel.setName(label.getName());
realmLabel.setColor(label.getColor());
realmLabels.add(realmLabel);
}
return RealmObservable.object(context, new Func1<Realm, RealmIssue>() {
@Override
public RealmIssue call(Realm realm) {
// internal object instances are not created by realm
// saving them using copyToRealm returning instance associated with realm
RealmUser user = realm.copyToRealm(realmUser);
RealmList<RealmLabel> labels = new RealmList<RealmLabel>();
for (RealmLabel realmLabel : realmLabels) {
labels.add(realm.copyToRealm(realmLabel));
}
// create RealmIssue instance and save it
RealmIssue issue = new RealmIssue();
issue.setTitle(title);
issue.setBody(body);
issue.setUser(user);
issue.setLabels(labels);
return realm.copyToRealm(issue);
}
}).map(new Func1<RealmIssue, Issue>() {
@Override
public Issue call(RealmIssue realmIssue) {
// map to UI object
return issueFromRealm(realmIssue);
}
});
}
use of com.kboyarshinov.realmrxjavaexample.model.Label in project realm-rxjava-example by kboyarshinov.
the class MainActivity method addNewIssue.
private void addNewIssue() {
if (compositeSubscription == null) {
return;
}
String title = "Feature request: removing issues";
String body = "Add function to remove issues";
User user = new User("kboyarshinov");
List<Label> labels = new ArrayList<>();
labels.add(new Label("feature", "FF5722"));
Subscription subscription = dataService.newIssue(title, body, user, labels).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(new Action1<Issue>() {
@Override
public void call(Issue issue) {
Log.d(TAG, "Issue with title " + issue.getTitle() + " successfully saved");
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
Log.e(TAG, "Add new issue error", throwable);
}
});
compositeSubscription.add(subscription);
}
use of com.kboyarshinov.realmrxjavaexample.model.Label in project realm-rxjava-example by kboyarshinov.
the class RealmDataService method issueFromRealm.
private static Issue issueFromRealm(RealmIssue realmIssue) {
final String title = realmIssue.getTitle();
final String body = realmIssue.getBody();
final User user = userFromRealm(realmIssue.getUser());
final RealmList<RealmLabel> realmLabels = realmIssue.getLabels();
final List<Label> labels = new ArrayList<>(realmLabels.size());
for (RealmLabel realmLabel : realmLabels) {
labels.add(labelFromRealm(realmLabel));
}
return new Issue(title, body, user, labels);
}
Aggregations