From d443f688c6798080f785d0bacf8c49965aee4f0b Mon Sep 17 00:00:00 2001 From: Kaushik Gopal Date: Wed, 21 Jan 2015 11:02:24 +0300 Subject: [PATCH 001/221] chore: upgrade RxAndroid from 0.23 to 0.24 --- app/app.iml | 4 +- app/build.gradle | 2 +- ...ConcurrencyWithSchedulersDemoFragment.java | 4 +- .../android/rxjava/DemoTimeoutFragment.java | 9 +-- .../android/rxjava/MainActivity.java | 1 + .../SubjectDebounceSearchEmitterFragment.java | 6 +- .../android/rxjava/TimingDemoFragment.java | 74 +++++++++++++++++++ .../rxbus/RxBusDemo_Bottom1Fragment.java | 2 +- .../rxbus/RxBusDemo_Bottom2Fragment.java | 2 +- .../rxbus/RxBusDemo_Bottom3Fragment.java | 3 +- .../main/res/layout/fragment_timing_demo.xml | 13 ++++ 11 files changed, 104 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java create mode 100644 app/src/main/res/layout/fragment_timing_demo.xml diff --git a/app/app.iml b/app/app.iml index 53174074..e02b1a40 100644 --- a/app/app.iml +++ b/app/app.iml @@ -83,13 +83,13 @@ + - + - diff --git a/app/build.gradle b/app/build.gradle index 79f8a4ca..805e4007 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,7 +7,7 @@ dependencies { compile 'com.jakewharton:butterknife:5.1.1' compile 'com.jakewharton.timber:timber:2.4.2' - compile 'io.reactivex:rxandroid:0.23.0' + compile 'io.reactivex:rxandroid:0.24.0' //compile 'io.reactivex:rxjava-math:0.21.0' compile 'com.squareup.retrofit:retrofit:1.6.1' diff --git a/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java index 03611474..0abf2a8e 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java @@ -22,7 +22,7 @@ import rx.Observer; import rx.Subscriber; import rx.Subscription; -import rx.android.observables.AndroidObservable; +import rx.android.app.AppObservable; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import timber.log.Timber; @@ -66,7 +66,7 @@ public void startLongOperation() { _progress.setVisibility(View.VISIBLE); _log("Button Clicked"); - _subscription = AndroidObservable.bindFragment(this, _getObservable()) // Observable + _subscription = AppObservable.bindFragment(this, _getObservable()) // Observable .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(_getObserver()); // Observer diff --git a/app/src/main/java/com/morihacky/android/rxjava/DemoTimeoutFragment.java b/app/src/main/java/com/morihacky/android/rxjava/DemoTimeoutFragment.java index 8770dd63..a4e48d85 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/DemoTimeoutFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/DemoTimeoutFragment.java @@ -22,7 +22,7 @@ import rx.Observer; import rx.Subscriber; import rx.Subscription; -import rx.android.observables.AndroidObservable; +import rx.android.app.AppObservable; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import timber.log.Timber; @@ -60,16 +60,15 @@ public View onCreateView(LayoutInflater inflater, @OnClick(R.id.btn_demo_timeout_1_2s) public void onStart2sTask() { - _subscription = AndroidObservable.bindFragment(DemoTimeoutFragment.this, - _getObservableTask_2sToComplete()) + _subscription = AppObservable.bindFragment(DemoTimeoutFragment.this, + _getObservableTask_2sToComplete()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(_getEventCompletionObserver()); } @OnClick(R.id.btn_demo_timeout_1_5s) public void onStart5sTask() { - _subscription = AndroidObservable.bindFragment(DemoTimeoutFragment.this, - _getObservableFor5sTask()) + _subscription = AppObservable.bindFragment(DemoTimeoutFragment.this, _getObservableFor5sTask()) .timeout(2, TimeUnit.SECONDS, _getTimeoutObservable()) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/morihacky/android/rxjava/MainActivity.java b/app/src/main/java/com/morihacky/android/rxjava/MainActivity.java index 07204647..6b107805 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/MainActivity.java +++ b/app/src/main/java/com/morihacky/android/rxjava/MainActivity.java @@ -21,6 +21,7 @@ protected void onCreate(Bundle savedInstanceState) { getSupportFragmentManager().beginTransaction() .addToBackStack(this.toString()) .replace(R.id.activity_main, new MainFragment(), this.toString()) + //.replace(R.id.activity_main, new TimingDemoFragment(), this.toString()) .commit(); } diff --git a/app/src/main/java/com/morihacky/android/rxjava/SubjectDebounceSearchEmitterFragment.java b/app/src/main/java/com/morihacky/android/rxjava/SubjectDebounceSearchEmitterFragment.java index 793d0296..311020ad 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/SubjectDebounceSearchEmitterFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/SubjectDebounceSearchEmitterFragment.java @@ -22,7 +22,7 @@ import rx.Observer; import rx.Subscriber; import rx.Subscription; -import rx.android.observables.AndroidObservable; +import rx.android.app.AppObservable; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import rx.subjects.PublishSubject; @@ -85,8 +85,8 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) { _setupLogger(); _searchTextEmitterSubject = PublishSubject.create(); - _subscription = AndroidObservable.bindFragment(SubjectDebounceSearchEmitterFragment.this, - Observable.switchOnNext(_searchTextEmitterSubject)) + _subscription = AppObservable.bindFragment(SubjectDebounceSearchEmitterFragment.this, + Observable.switchOnNext(_searchTextEmitterSubject)) .debounce(400, TimeUnit.MILLISECONDS, Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(_getSearchObserver()); diff --git a/app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java new file mode 100644 index 00000000..b1b84d10 --- /dev/null +++ b/app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java @@ -0,0 +1,74 @@ +package com.morihacky.android.rxjava; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import butterknife.ButterKnife; +import butterknife.OnClick; +import com.morihacky.android.rxjava.app.R; +import java.util.concurrent.TimeUnit; +import rx.Notification; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action0; +import rx.functions.Action1; +import rx.functions.Func1; +import timber.log.Timber; + +public class TimingDemoFragment + extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View layout = inflater.inflate(R.layout.fragment_timing_demo, container, false); + ButterKnife.inject(this, layout); + return layout; + } + + @OnClick(R.id.btn_start_demo) + public void onStartButtonClicked() { + Timber.d("-------------------- Shutter clicked"); + + Observable.just(1) + .flatMap(new Func1>() { + @Override + public Observable call(Integer integer) { + return _getCountdownFlashObservable(); + } + }) + .repeat(3) + .subscribe(); + } + + private Observable _getCountdownFlashObservable() { + return Observable.interval(1, TimeUnit.SECONDS) + .map(new Func1() { + @Override + public Object call(Long aLong) { + Timber.d("-------------------- Number to show %s", String.valueOf(3l - aLong)); + return 3l - aLong; + } + }) + .take(3) + .observeOn(AndroidSchedulers.mainThread()) + .doOnNext(new Action1() { + @Override + public void call(Object o) { + Timber.d("-------------------- %s", String.valueOf(o)); + } + }) + .delay(1, TimeUnit.SECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .doOnCompleted(new Action0() { + @Override + public void call() { + Timber.d("-------------------- FLASH!"); + } + }); + } +} diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom1Fragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom1Fragment.java index 0cc5b5ea..b124d534 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom1Fragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom1Fragment.java @@ -15,7 +15,7 @@ import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; -import static rx.android.observables.AndroidObservable.bindFragment; +import static rx.android.app.AppObservable.bindFragment; public class RxBusDemo_Bottom1Fragment extends Fragment { diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom2Fragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom2Fragment.java index 3b159de0..c37023a2 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom2Fragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom2Fragment.java @@ -19,7 +19,7 @@ import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; -import static rx.android.observables.AndroidObservable.bindFragment; +import static rx.android.app.AppObservable.bindFragment; public class RxBusDemo_Bottom2Fragment extends Fragment { diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom3Fragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom3Fragment.java index edad963d..b04d84a6 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom3Fragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_Bottom3Fragment.java @@ -21,7 +21,7 @@ import rx.observables.ConnectableObservable; import rx.subscriptions.CompositeSubscription; -import static rx.android.observables.AndroidObservable.bindFragment; +import static rx.android.app.AppObservable.bindFragment; public class RxBusDemo_Bottom3Fragment extends Fragment { @@ -79,6 +79,7 @@ public void call(List taps) { })); _subscriptions.add(tapEventEmitter.connect()); + } @Override diff --git a/app/src/main/res/layout/fragment_timing_demo.xml b/app/src/main/res/layout/fragment_timing_demo.xml new file mode 100644 index 00000000..2e3c485d --- /dev/null +++ b/app/src/main/res/layout/fragment_timing_demo.xml @@ -0,0 +1,13 @@ + + + + +