package com.cesarferreira.rxpaper.sample; import android.content.Context; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.TextView; import com.cesarferreira.rxpaper.RxPaper; import java.util.List; import rx.Subscriber; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; public class MainActivity extends AppCompatActivity { private TextView targetTextView; private Person defaultValue = null; private final String PERSON_KEY = "PERSON_KEY"; private final String ANOTHER_PERSON_KEY = "ANOTHER_PERSON_KEY"; private String mCustomBook = "SOME_BOOK"; Person person = new Person("Cesar", "Ferreira"); Person anotherPerson = new Person("Ivo", "Ferreira"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); targetTextView = (TextView) findViewById(R.id.targetTextView); } private void log(String s) { Log.d("rxpaper", s); targetTextView.setText(s); } public void writeCustom(View view) { RxPaper.book(mCustomBook) .write(PERSON_KEY, anotherPerson) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Person>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(Person person) { log("Custom write success!!! " + person.getFirstName()); } }); } public void write(View view) { RxPaper.book() .write(PERSON_KEY, person) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Person>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(Person person) { if (person != null) { log("Write success!!!"); } } }); } public void readCustom(View view) { RxPaper.book(mCustomBook) .read(PERSON_KEY, defaultValue) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Person>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(Person person) { log(String.valueOf(person)); } }); } public void read(View view) { RxPaper.book() .read(PERSON_KEY, defaultValue) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Person>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(Person person) { log(String.valueOf(person)); } }); } public void destroy(View view) { RxPaper.book() .destroy() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Boolean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(Boolean success) { log("Data destroyed"); } }); } public void destroyCustom(View view) { RxPaper.book(mCustomBook) .destroy() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Boolean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(Boolean success) { log("Custom data destroyed"); } }); } public void getAllKeys(View view) { RxPaper.book() .getAllKeys() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<String>>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { log(e.getMessage()); } @Override public void onNext(List<String> allKeys) { StringBuilder output = new StringBuilder(); for (String s : allKeys) { output.append(s).append("\n"); } log(String.valueOf(output)); } }); } }