Search in sources :

Example 1 with Person

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();
            }
        });
    }
}
Also used : PhoneEntity(io.requery.android.example.app.model.PhoneEntity) Address(io.requery.android.example.app.model.Address) Phone(io.requery.android.example.app.model.Phone) Person(io.requery.android.example.app.model.Person) AddressEntity(io.requery.android.example.app.model.AddressEntity)

Example 2 with Person

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();
}
Also used : Random(java.util.Random) TreeSet(java.util.TreeSet) PersonEntity(io.requery.android.example.app.model.PersonEntity) Person(io.requery.android.example.app.model.Person) AddressEntity(io.requery.android.example.app.model.AddressEntity)

Example 3 with Person

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();
                    }
                });
            }
        }
    });
}
Also used : LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) Observable(io.reactivex.Observable) Function(io.reactivex.functions.Function) Consumer(io.reactivex.functions.Consumer) RecyclerView(android.support.v7.widget.RecyclerView) Person(io.requery.android.example.app.model.Person)

Aggregations

Person (io.requery.android.example.app.model.Person)3 AddressEntity (io.requery.android.example.app.model.AddressEntity)2 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 RecyclerView (android.support.v7.widget.RecyclerView)1 Observable (io.reactivex.Observable)1 Consumer (io.reactivex.functions.Consumer)1 Function (io.reactivex.functions.Function)1 Address (io.requery.android.example.app.model.Address)1 PersonEntity (io.requery.android.example.app.model.PersonEntity)1 Phone (io.requery.android.example.app.model.Phone)1 PhoneEntity (io.requery.android.example.app.model.PhoneEntity)1 Random (java.util.Random)1 TreeSet (java.util.TreeSet)1