From 522728ea45098a2d0d73fd182279a791bbde6b20 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Sat, 18 Feb 2017 15:00:16 +0530 Subject: [PATCH 01/78] Add open-source badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 473ad79..3f715c9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Learning RxJava 2 for Android by example +[![Mindorks](https://img.shields.io/badge/mindorks-opensource-blue.svg)](https://mindorks.com/open-source-projects) + ## How to use RxJava 2 in Android Application From 5ebdcbcba1e28301261f491fd5c82dc70d15c744 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Wed, 22 Feb 2017 22:08:23 +0530 Subject: [PATCH 02/78] Add link --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 3f715c9..6e8f580 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,9 @@ RxJava1 -> RxJava2 ### Check out an awesome library for fast and simple networking in Android. * [Fast Android Networking Library](https://github.com/amitshekhariitbhu/Fast-Android-Networking) +### Another awesome library for debugging databases and shared preferences. +* [Android Debug Database](https://github.com/amitshekhariitbhu/Android-Debug-Database) + ###[Check out Mindorks awesome open source projects here](https://mindorks.com/open-source-projects) ### Contact - Let's become friend From 5869e880382c45ffc25f5ce57c3be84175f899e4 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Fri, 24 Feb 2017 17:36:44 +0530 Subject: [PATCH 03/78] correct format --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6e8f580..7ea9dbb 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ + + # Learning RxJava 2 for Android by example [![Mindorks](https://img.shields.io/badge/mindorks-opensource-blue.svg)](https://mindorks.com/open-source-projects) - - +[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-RxJava2%20Android%20Samples-blue.svg?style=flat)](https://android-arsenal.com/details/3/4314) ## How to use RxJava 2 in Android Application ## How to migrate from RxJava 1 to RxJava 2 From 48840f451090cc4b4f51521cd60beaffdeef4889 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Sat, 25 Feb 2017 08:54:49 +0530 Subject: [PATCH 04/78] Add open-source and license --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7ea9dbb..4c1af9a 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ [![Mindorks](https://img.shields.io/badge/mindorks-opensource-blue.svg)](https://mindorks.com/open-source-projects) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-RxJava2%20Android%20Samples-blue.svg?style=flat)](https://android-arsenal.com/details/3/4314) +[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=102)](https://opensource.org/licenses/Apache-2.0) +[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/LICENSE) ## How to use RxJava 2 in Android Application ## How to migrate from RxJava 1 to RxJava 2 From 4de25ce82deb92c1e48f50a826ae3e63339263ec Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Sat, 4 Mar 2017 09:44:28 +0530 Subject: [PATCH 05/78] Update RxJava2 version to 2.0.6 --- README.md | 2 +- app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4c1af9a..de475a8 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Users switching from 1.x to 2.x have to re-organize their imports, but carefully Add this in your build.gradle ```groovy -compile 'io.reactivex.rxjava2:rxjava:2.0.5' +compile 'io.reactivex.rxjava2:rxjava:2.0.6' ``` If you are using RxAndroid also, then add the following ```groovy diff --git a/app/build.gradle b/app/build.gradle index f5f3ef9..c12509c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.1.0' - compile 'io.reactivex.rxjava2:rxjava:2.0.5' + compile 'io.reactivex.rxjava2:rxjava:2.0.6' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.amitshekhar.android:rx2-android-networking:0.0.1' } From c22c1d7d79b7156c2e4c4fddf6f77cd80f9222e7 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Sun, 5 Mar 2017 09:39:49 +0530 Subject: [PATCH 06/78] Add delay operator example --- app/src/main/AndroidManifest.xml | 3 + .../android/samples/ui/OperatorsActivity.java | 4 + .../ui/operators/DelayExampleActivity.java | 94 +++++++++++++++++++ .../main/res/layout/activity_operators.xml | 7 ++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 109 insertions(+) create mode 100644 app/src/main/java/com/rxjava2/android/samples/ui/operators/DelayExampleActivity.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ed2ef7..2e6e713 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -114,6 +114,9 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/rxjava2/android/samples/ui/OperatorsActivity.java b/app/src/main/java/com/rxjava2/android/samples/ui/OperatorsActivity.java index 903fcc3..63df8a2 100644 --- a/app/src/main/java/com/rxjava2/android/samples/ui/OperatorsActivity.java +++ b/app/src/main/java/com/rxjava2/android/samples/ui/OperatorsActivity.java @@ -13,6 +13,7 @@ import com.rxjava2.android.samples.ui.operators.ConcatExampleActivity; import com.rxjava2.android.samples.ui.operators.DebounceExampleActivity; import com.rxjava2.android.samples.ui.operators.DeferExampleActivity; +import com.rxjava2.android.samples.ui.operators.DelayExampleActivity; import com.rxjava2.android.samples.ui.operators.DisposableExampleActivity; import com.rxjava2.android.samples.ui.operators.DistinctExampleActivity; import com.rxjava2.android.samples.ui.operators.FilterExampleActivity; @@ -160,5 +161,8 @@ public void startWindowActivity(View view) { startActivity(new Intent(OperatorsActivity.this,WindowExampleActivity.class)); } + public void startDelayActivity(View view) { + startActivity(new Intent(OperatorsActivity.this,DelayExampleActivity.class)); + } } diff --git a/app/src/main/java/com/rxjava2/android/samples/ui/operators/DelayExampleActivity.java b/app/src/main/java/com/rxjava2/android/samples/ui/operators/DelayExampleActivity.java new file mode 100644 index 0000000..1633c98 --- /dev/null +++ b/app/src/main/java/com/rxjava2/android/samples/ui/operators/DelayExampleActivity.java @@ -0,0 +1,94 @@ +package com.rxjava2.android.samples.ui.operators; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.rxjava2.android.samples.R; +import com.rxjava2.android.samples.utils.AppConstant; + +import java.util.concurrent.TimeUnit; + +import io.reactivex.Observable; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * Created by amitshekhar on 05/03/17. + */ + +public class DelayExampleActivity extends AppCompatActivity { + + private static final String TAG = DelayExampleActivity.class.getSimpleName(); + Button btn; + TextView textView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_example); + btn = (Button) findViewById(R.id.btn); + textView = (TextView) findViewById(R.id.textView); + + btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + doSomeWork(); + } + }); + } + + /* + * simple example using delay to emit after 2 second + */ + private void doSomeWork() { + getObservable().delay(2, TimeUnit.SECONDS) + // Run on a background thread + .subscribeOn(Schedulers.io()) + // Be notified on the main thread + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getObserver()); + } + + private Observable getObservable() { + return Observable.timer(2, TimeUnit.SECONDS); + } + + private Observer getObserver() { + return new Observer() { + + @Override + public void onSubscribe(Disposable d) { + Log.d(TAG, " onSubscribe : " + d.isDisposed()); + } + + @Override + public void onNext(Long value) { + textView.append(" onNext : value : " + value); + textView.append(AppConstant.LINE_SEPARATOR); + Log.d(TAG, " onNext : value : " + value); + } + + @Override + public void onError(Throwable e) { + textView.append(" onError : " + e.getMessage()); + textView.append(AppConstant.LINE_SEPARATOR); + Log.d(TAG, " onError : " + e.getMessage()); + } + + @Override + public void onComplete() { + textView.append(" onComplete"); + textView.append(AppConstant.LINE_SEPARATOR); + Log.d(TAG, " onComplete"); + } + }; + } + + +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_operators.xml b/app/src/main/res/layout/activity_operators.xml index 66deb1d..1c453de 100644 --- a/app/src/main/res/layout/activity_operators.xml +++ b/app/src/main/res/layout/activity_operators.xml @@ -218,5 +218,12 @@ android:text="@string/window" android:textColor="@android:color/black" /> +