package com.github.florent37.rxandroidorm.sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.github.florent37.rxandroidorm.sample.model.Computer;
import com.github.florent37.rxandroidorm.sample.model.ComputerDatabase;
import com.github.florent37.rxandroidorm.sample.model.Software;
import com.github.florent37.rxandroidorm.sample.model.SoftwareDatabase;
import java.util.Arrays;
import io.reactivex.Observable;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private ComputerDatabase computerDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
computerDb = new ComputerDatabase();
queries();
}
protected void queries() {
Observable.fromArray(
new Computer(Computer.WINDOWS, "MasterRace", Arrays.asList(new Software("Photoshop"))),
new Computer(Computer.WINDOWS, "Gamerz"),
new Computer(Computer.LINUX, "MasterRace", Arrays.asList(new Software("Gimp"))))
.flatMap(computerDb::add)
.subscribe();
Observable.just(new Computer(Computer.MAC, "Mac Mini"))
.flatMap(computerDb::add)
.doOnNext(computer -> computer.getSoftwares().add(new Software("Photoshop")))
.flatMap(computerDb::update)
.subscribe();
computerDb.select()
.label().equalsTo("MasterRace")
.or()
.softwares(SoftwareDatabase.where().name().equalsTo("Photoshop"))
.asObservable()
.subscribe(computers -> Log.d(TAG, computers.toString()));
}
}