use of io.requery.android.example.app.model.Person in project requery by requery.
the class PersonEditActivity method savePerson.
private void savePerson() {
// TODO make binding 2 way
person.setName(binding.name.getText().toString());
person.setEmail(binding.email.getText().toString());
Phone phone;
if (person.getPhoneNumberList().isEmpty()) {
phone = new PhoneEntity();
phone.setOwner(person);
person.getPhoneNumberList().add(phone);
} else {
phone = person.getPhoneNumberList().get(0);
}
phone.setPhoneNumber(binding.phone.getText().toString());
Address address = person.getAddress();
if (address == null) {
address = new AddressEntity();
person.setAddress(address);
}
address.setLine1(binding.street.getText().toString());
address.setLine2(binding.city.getText().toString());
address.setZip(binding.zip.getText().toString());
address.setState(binding.state.getText().toString());
// save the person
if (person.getId() == 0) {
data.insert(person).subscribe(new Consumer<Person>() {
@Override
public void accept(Person person) {
finish();
}
});
} else {
data.update(person).subscribe(new Consumer<Person>() {
@Override
public void accept(Person person) {
finish();
}
});
}
}
use of io.requery.android.example.app.model.Person in project requery by requery.
the class CreatePeople method call.
@Override
public Observable<Iterable<Person>> call() {
String[] firstNames = new String[] { "Alice", "Bob", "Carol", "Chloe", "Dan", "Emily", "Emma", "Eric", "Eva", "Frank", "Gary", "Helen", "Jack", "James", "Jane", "Kevin", "Laura", "Leon", "Lilly", "Mary", "Maria", "Mia", "Nick", "Oliver", "Olivia", "Patrick", "Robert", "Stan", "Vivian", "Wesley", "Zoe" };
String[] lastNames = new String[] { "Hall", "Hill", "Smith", "Lee", "Jones", "Taylor", "Williams", "Jackson", "Stone", "Brown", "Thomas", "Clark", "Lewis", "Miller", "Walker", "Fox", "Robinson", "Wilson", "Cook", "Carter", "Cooper", "Martin" };
Random random = new Random();
final Set<Person> people = new TreeSet<>(new Comparator<Person>() {
@Override
public int compare(Person lhs, Person rhs) {
return lhs.getName().compareTo(rhs.getName());
}
});
// creating many people (but only with unique names)
for (int i = 0; i < 3000; i++) {
PersonEntity person = new PersonEntity();
String first = firstNames[random.nextInt(firstNames.length)];
String last = lastNames[random.nextInt(lastNames.length)];
person.setName(first + " " + last);
person.setUUID(UUID.randomUUID());
person.setEmail(Character.toLowerCase(first.charAt(0)) + last.toLowerCase() + "@gmail.com");
AddressEntity address = new AddressEntity();
address.setLine1("123 Market St");
address.setZip("94105");
address.setCity("San Francisco");
address.setState("CA");
address.setCountry("US");
person.setAddress(address);
people.add(person);
}
return data.insert(people).toObservable();
}
use of io.requery.android.example.app.model.Person in project requery by requery.
the class PeopleActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle("People");
}
setContentView(R.layout.activity_people);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
data = ((PeopleApplication) getApplication()).getData();
executor = Executors.newSingleThreadExecutor();
adapter = new PersonAdapter();
adapter.setExecutor(executor);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
data.count(Person.class).get().single().subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) {
if (integer == 0) {
Observable.fromCallable(new CreatePeople(data)).flatMap(new Function<Observable<Iterable<Person>>, Observable<?>>() {
@Override
public Observable<?> apply(Observable<Iterable<Person>> o) {
return o;
}
}).observeOn(Schedulers.computation()).subscribe(new Consumer<Object>() {
@Override
public void accept(Object o) {
adapter.queryAsync();
}
});
}
}
});
}
Aggregations