From 3061deaa758c5fe68d4877db475fede9deedab26 Mon Sep 17 00:00:00 2001 From: DmitriyZaitsev Date: Sat, 8 Aug 2015 01:31:07 +0300 Subject: [PATCH 001/150] Update MainFragment.java refactor(MainFragment) remove code duplication; send code execution through a single entry point; --- .../android/rxjava/MainFragment.java | 144 +++++------------- 1 file changed, 34 insertions(+), 110 deletions(-) diff --git a/app/src/main/java/com/morihacky/android/rxjava/MainFragment.java b/app/src/main/java/com/morihacky/android/rxjava/MainFragment.java index 4239bbad..4a62274e 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/MainFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/MainFragment.java @@ -1,7 +1,9 @@ package com.morihacky.android.rxjava; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -9,154 +11,76 @@ import butterknife.OnClick; import com.morihacky.android.rxjava.rxbus.RxBusDemoFragment; -public class MainFragment - extends BaseFragment { +public class MainFragment extends BaseFragment { @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.fragment_main, container, false); ButterKnife.inject(this, layout); return layout; } @OnClick(R.id.btn_demo_schedulers) - public void demoConcurrencyWithSchedulers() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(ConcurrencyWithSchedulersDemoFragment.class.getName()) - .replace(android.R.id.content, - new ConcurrencyWithSchedulersDemoFragment(), - ConcurrencyWithSchedulersDemoFragment.class.getName()) - .commit(); + void demoConcurrencyWithSchedulers() { + clickedOn(new ConcurrencyWithSchedulersDemoFragment()); } @OnClick(R.id.btn_demo_buffer) - public void demoBuffer() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(BufferDemoFragment.class.toString()) - .replace(android.R.id.content, - new BufferDemoFragment(), - BufferDemoFragment.class.toString()) - .commit(); + void demoBuffer() { + clickedOn(new BufferDemoFragment()); } @OnClick(R.id.btn_demo_debounce) - public void demoThrottling() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(DebounceSearchEmitterFragment.class.toString()) - .replace(android.R.id.content, - new DebounceSearchEmitterFragment(), - DebounceSearchEmitterFragment.class.toString()) - .commit(); + void demoThrottling() { + clickedOn(new DebounceSearchEmitterFragment()); } @OnClick(R.id.btn_demo_retrofit) - public void demoRetrofitCalls() { - getActivity().getSupportFragmentManager() - .beginTransaction().addToBackStack(RetrofitFragment.class.toString()) - //.replace(android.R.id.content, new RetrofitAsyncTaskDeathFragment(), RetrofitAsyncTaskDeathFragment.class.toString()) - .replace(android.R.id.content, - new RetrofitFragment(), - RetrofitFragment.class.toString()).commit(); + void demoRetrofitCalls() { + clickedOn(new RetrofitFragment()); } @OnClick(R.id.btn_demo_double_binding_textview) - public void demoDoubleBindingWithPublishSubject() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(DoubleBindingTextViewFragment.class.toString()) - .replace(android.R.id.content, - new DoubleBindingTextViewFragment(), - DoubleBindingTextViewFragment.class.toString()) - .commit(); + void demoDoubleBindingWithPublishSubject() { + clickedOn(new DoubleBindingTextViewFragment()); } - /*@OnClick(R.id.btn_demo_polling) - public void demoPolling() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(PollingFragment.class.toString()) - .replace(android.R.id.content, new PollingFragment(), PollingFragment.class.toString()) - .commit(); - }*/ - @OnClick(R.id.btn_demo_rxbus) - public void demoRxBus() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(RxBusDemoFragment.class.toString()) - .replace(android.R.id.content, - new RxBusDemoFragment(), - RxBusDemoFragment.class.toString()) - .commit(); - } - - //@OnClick(R.id.btn_demo_subject_timeout) - public void demoTimeout() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(TimeoutDemoFragment.class.toString()) - .replace(android.R.id.content, - new TimeoutDemoFragment(), - TimeoutDemoFragment.class.toString()) - .commit(); + void demoRxBus() { + clickedOn(new RxBusDemoFragment()); } @OnClick(R.id.btn_demo_form_validation_combinel) - public void formValidation() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(FormValidationCombineLatestFragment.class.toString()) - .replace(android.R.id.content, - new FormValidationCombineLatestFragment(), - FormValidationCombineLatestFragment.class.toString()) - .commit(); + void formValidation() { + clickedOn(new FormValidationCombineLatestFragment()); } @OnClick(R.id.btn_demo_pseudo_cache) - public void pseudoCacheDemo() { - getActivity().getSupportFragmentManager().beginTransaction().addToBackStack( - PseudoCacheMergeFragment.class.toString()) - //.replace(android.R.id.content, new PseudoCacheConcatFragment(), PseudoCacheConcatFragment.class.toString()) - .replace(android.R.id.content, - new PseudoCacheMergeFragment(), - PseudoCacheMergeFragment.class.toString()).commit(); + void pseudoCacheDemo() { + clickedOn(new PseudoCacheMergeFragment()); } @OnClick(R.id.btn_demo_timing) - public void demoTimerIntervalDelays() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(TimingDemoFragment.class.toString()) - .replace(android.R.id.content, - new TimingDemoFragment(), - TimingDemoFragment.class.toString()) - .commit(); + void demoTimerIntervalDelays() { + clickedOn(new TimingDemoFragment()); } @OnClick(R.id.btn_demo_exponential_backoff) - public void demoExponentialBackoff() { - getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(ExponentialBackoffFragment.class.toString()) - .replace(android.R.id.content, - new ExponentialBackoffFragment(), - ExponentialBackoffFragment.class.toString()) - .commit(); + void demoExponentialBackoff() { + clickedOn(new ExponentialBackoffFragment()); } @OnClick(R.id.btn_demo_rotation_persist) - public void demoRotationPersist() { + void demoRotationPersist() { + clickedOn(new RotationPersistFragment()); + } + + private void clickedOn(@NonNull Fragment fragment) { + final String tag = fragment.getClass().toString(); getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(RotationPersistFragment.class.toString()) - .replace(android.R.id.content, - new RotationPersistFragment(), - RotationPersistFragment.class.toString()) - .commit(); + .beginTransaction() + .addToBackStack(tag) + .replace(android.R.id.content, fragment, tag) + .commit(); } } From b10368024b06318dff8f90345362ea94986f4854 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaitsev Date: Sat, 8 Aug 2015 02:09:04 +0300 Subject: [PATCH 002/150] refactor(fragments) gather all fragments in one package; --- .../main/java/com/morihacky/android/rxjava/MainActivity.java | 2 ++ .../android/rxjava/{ => fragments}/BaseFragment.java | 3 ++- .../android/rxjava/{ => fragments}/BufferDemoFragment.java | 3 ++- .../ConcurrencyWithSchedulersDemoFragment.java | 4 +++- .../{ => fragments}/DebounceSearchEmitterFragment.java | 5 +++-- .../{ => fragments}/DoubleBindingTextViewFragment.java | 2 +- .../rxjava/{ => fragments}/ExponentialBackoffFragment.java | 4 +++- .../{ => fragments}/FormValidationCombineLatestFragment.java | 2 +- .../android/rxjava/{ => fragments}/MainFragment.java | 3 ++- .../android/rxjava/{ => fragments}/PollingFragment.java | 2 +- .../rxjava/{ => fragments}/PseudoCacheConcatFragment.java | 2 +- .../rxjava/{ => fragments}/PseudoCacheMergeFragment.java | 3 ++- .../{ => fragments}/RetrofitAsyncTaskDeathFragment.java | 3 ++- .../android/rxjava/{ => fragments}/RetrofitFragment.java | 4 +++- .../rxjava/{ => fragments}/RotationPersistFragment.java | 4 +++- .../{ => fragments}/RotationPersistWorkerFragment.java | 4 +++- .../android/rxjava/{ => fragments}/TimeoutDemoFragment.java | 3 ++- .../android/rxjava/{ => fragments}/TimingDemoFragment.java | 3 ++- .../morihacky/android/rxjava/rxbus/RxBusDemoFragment.java | 2 +- .../android/rxjava/rxbus/RxBusDemo_Bottom1Fragment.java | 3 +-- .../android/rxjava/rxbus/RxBusDemo_Bottom2Fragment.java | 3 +-- .../android/rxjava/rxbus/RxBusDemo_Bottom3Fragment.java | 3 +-- .../android/rxjava/rxbus/RxBusDemo_TopFragment.java | 2 +- 23 files changed, 43 insertions(+), 26 deletions(-) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/BaseFragment.java (76%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/BufferDemoFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/ConcurrencyWithSchedulersDemoFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/DebounceSearchEmitterFragment.java (97%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/DoubleBindingTextViewFragment.java (97%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/ExponentialBackoffFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/FormValidationCombineLatestFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/MainFragment.java (96%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/PollingFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/PseudoCacheConcatFragment.java (99%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/PseudoCacheMergeFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/RetrofitAsyncTaskDeathFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/RetrofitFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/RotationPersistFragment.java (96%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/RotationPersistWorkerFragment.java (96%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/TimeoutDemoFragment.java (98%) rename app/src/main/java/com/morihacky/android/rxjava/{ => fragments}/TimingDemoFragment.java (98%) 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 4d03411a..4da21a0e 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/MainActivity.java +++ b/app/src/main/java/com/morihacky/android/rxjava/MainActivity.java @@ -3,6 +3,8 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; +import com.morihacky.android.rxjava.fragments.MainFragment; +import com.morihacky.android.rxjava.fragments.RotationPersistWorkerFragment; import com.morihacky.android.rxjava.rxbus.RxBus; public class MainActivity diff --git a/app/src/main/java/com/morihacky/android/rxjava/BaseFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/BaseFragment.java similarity index 76% rename from app/src/main/java/com/morihacky/android/rxjava/BaseFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/BaseFragment.java index 3d260adc..429f8ba0 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/BaseFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/BaseFragment.java @@ -1,6 +1,7 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.support.v4.app.Fragment; +import com.morihacky.android.rxjava.MyApp; import com.squareup.leakcanary.RefWatcher; public class BaseFragment diff --git a/app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java index e0ee6152..a5d21af2 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.os.Handler; @@ -11,6 +11,7 @@ import android.widget.ListView; import butterknife.ButterKnife; import butterknife.InjectView; +import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.wiring.LogAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java index 83f0f0ca..1ed1771d 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.content.Context; import android.os.Bundle; @@ -16,6 +16,8 @@ import butterknife.OnClick; import java.util.ArrayList; import java.util.List; + +import com.morihacky.android.rxjava.R; import rx.Observable; import rx.Observer; import rx.Subscription; diff --git a/app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java similarity index 97% rename from app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java index 3c3c857d..744c7e5e 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.content.Context; import android.os.Bundle; @@ -17,6 +17,8 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; + +import com.morihacky.android.rxjava.R; import rx.Observable; import rx.Observer; import rx.Subscription; @@ -26,7 +28,6 @@ import timber.log.Timber; import static java.lang.String.format; -import static rx.android.app.AppObservable.bindFragment; import static rx.android.app.AppObservable.bindSupportFragment; public class DebounceSearchEmitterFragment diff --git a/app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java similarity index 97% rename from app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java index 7a7ce56e..f0027bdd 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.support.annotation.Nullable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/ExponentialBackoffFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/ExponentialBackoffFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/ExponentialBackoffFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/ExponentialBackoffFragment.java index 6d254623..df860315 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/ExponentialBackoffFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/ExponentialBackoffFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.os.Handler; @@ -10,6 +10,8 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.RxUtils; import com.morihacky.android.rxjava.wiring.LogAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/FormValidationCombineLatestFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/FormValidationCombineLatestFragment.java index 93bc7183..426adc6a 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/FormValidationCombineLatestFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.support.annotation.Nullable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/MainFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java similarity index 96% rename from app/src/main/java/com/morihacky/android/rxjava/MainFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java index 4a62274e..2b8d27fb 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/MainFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.support.annotation.NonNull; @@ -9,6 +9,7 @@ import android.view.ViewGroup; import butterknife.ButterKnife; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.rxbus.RxBusDemoFragment; public class MainFragment extends BaseFragment { diff --git a/app/src/main/java/com/morihacky/android/rxjava/PollingFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/PollingFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/PollingFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/PollingFragment.java index 6f163e26..fc52780a 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/PollingFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/PollingFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.content.Context; import android.os.Bundle; diff --git a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java similarity index 99% rename from app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java index 623d9cdd..56777a52 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.support.annotation.Nullable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java index f2165950..248e61c5 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.support.annotation.Nullable; @@ -11,6 +11,7 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; import java.util.ArrayList; diff --git a/app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java index a883cbe2..25a01229 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.AsyncTask; import android.os.Bundle; @@ -13,6 +13,7 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.retrofit.GithubApi; import com.morihacky.android.rxjava.retrofit.User; import java.util.ArrayList; diff --git a/app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java index 10bc0e05..ae3ea1eb 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.support.annotation.Nullable; @@ -13,6 +13,8 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.RxUtils; import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; import com.morihacky.android.rxjava.retrofit.User; diff --git a/app/src/main/java/com/morihacky/android/rxjava/RotationPersistFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistFragment.java similarity index 96% rename from app/src/main/java/com/morihacky/android/rxjava/RotationPersistFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistFragment.java index 435c47f8..55175a44 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/RotationPersistFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.os.Handler; @@ -11,6 +11,8 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.RxUtils; import com.morihacky.android.rxjava.wiring.LogAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/morihacky/android/rxjava/RotationPersistWorkerFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java similarity index 96% rename from app/src/main/java/com/morihacky/android/rxjava/RotationPersistWorkerFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java index 828868f1..9e8f6b46 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/RotationPersistWorkerFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java @@ -1,10 +1,12 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import java.util.List; import java.util.concurrent.TimeUnit; + +import com.morihacky.android.rxjava.MainActivity; import rx.Observable; import rx.Subscription; import rx.functions.Func1; diff --git a/app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/TimeoutDemoFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/TimeoutDemoFragment.java index 9a517d5e..057dd8dc 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/TimeoutDemoFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.os.Handler; @@ -11,6 +11,7 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.wiring.LogAdapter; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/TimingDemoFragment.java similarity index 98% rename from app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java rename to app/src/main/java/com/morihacky/android/rxjava/fragments/TimingDemoFragment.java index 791684b0..68d3b16c 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/TimingDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/TimingDemoFragment.java @@ -1,4 +1,4 @@ -package com.morihacky.android.rxjava; +package com.morihacky.android.rxjava.fragments; import android.os.Bundle; import android.os.Handler; @@ -10,6 +10,7 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.wiring.LogAdapter; import java.text.SimpleDateFormat; import java.util.ArrayList; diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java index 058fc66a..66052e0a 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java @@ -6,7 +6,7 @@ import android.view.View; import android.view.ViewGroup; import butterknife.ButterKnife; -import com.morihacky.android.rxjava.BaseFragment; +import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.R; public class RxBusDemoFragment 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 6aa39583..8c2907a3 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 @@ -9,13 +9,12 @@ import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.BaseFragment; +import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; -import static rx.android.app.AppObservable.bindFragment; import static rx.android.app.AppObservable.bindSupportFragment; public class RxBusDemo_Bottom1Fragment 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 7f5cabcf..3ec7560b 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 @@ -9,7 +9,7 @@ import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.BaseFragment; +import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; import java.util.List; @@ -19,7 +19,6 @@ import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; -import static rx.android.app.AppObservable.bindFragment; import static rx.android.app.AppObservable.bindSupportFragment; public class RxBusDemo_Bottom2Fragment 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 a1fa81fc..69170872 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 @@ -9,7 +9,7 @@ import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.BaseFragment; +import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; import java.util.List; @@ -21,7 +21,6 @@ import rx.observables.ConnectableObservable; import rx.subscriptions.CompositeSubscription; -import static rx.android.app.AppObservable.bindFragment; import static rx.android.app.AppObservable.bindSupportFragment; public class RxBusDemo_Bottom3Fragment diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java index 8686a161..3754ed0c 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java @@ -7,7 +7,7 @@ import android.view.ViewGroup; import butterknife.ButterKnife; import butterknife.OnClick; -import com.morihacky.android.rxjava.BaseFragment; +import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; From 019527c1878c64dc7e5955bcd78372ed8094260c Mon Sep 17 00:00:00 2001 From: Kaushik Gopal Date: Wed, 2 Sep 2015 18:55:27 -0700 Subject: [PATCH 003/150] chore: bump up gradle and andoroid plugin versions --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index b24a4434..8d6e1303 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 985d63d6..4bc23594 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Dec 24 12:27:06 PST 2014 +#Wed Sep 02 11:33:19 PDT 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip From 03e880044c9ef741cbe76ea48b288534c9966244 Mon Sep 17 00:00:00 2001 From: Kaushik Gopal Date: Wed, 2 Sep 2015 19:05:39 -0700 Subject: [PATCH 004/150] refactor: remove Guava dependency and reaplce Strings util check with native android #22 --- app/build.gradle | 8 +++----- .../rxjava/DoubleBindingTextViewFragment.java | 9 +++++---- .../FormValidationCombineLatestFragment.java | 11 ++++++----- .../rxjava/PseudoCacheConcatFragment.java | 14 ++++++++------ .../android/rxjava/PseudoCacheMergeFragment.java | 13 ++++++++----- .../rxjava/RetrofitAsyncTaskDeathFragment.java | 16 +++++++++------- .../android/rxjava/RetrofitFragment.java | 15 +++++++++------ 7 files changed, 48 insertions(+), 38 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index af1c76a2..1b9eb001 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,8 +3,6 @@ apply plugin: 'com.android.application' dependencies { compile 'com.android.support:support-v13:21.0.2' - compile 'com.google.guava:guava:17.+' - compile 'com.jakewharton:butterknife:5.1.1' compile 'com.jakewharton.timber:timber:2.4.2' compile 'io.reactivex:rxandroid:0.25.0' @@ -19,13 +17,13 @@ dependencies { } android { - compileSdkVersion 21 - buildToolsVersion '21.1.2' + compileSdkVersion 23 + buildToolsVersion '23' defaultConfig { applicationId "com.morihacky.android.rxjava" minSdkVersion 14 - targetSdkVersion 21 + targetSdkVersion 22 versionCode 1 versionName "1.0" } diff --git a/app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java b/app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java index 7a7ce56e..8e3caac8 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/DoubleBindingTextViewFragment.java @@ -7,15 +7,16 @@ import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; + import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnTextChanged; -import com.google.common.base.Strings; -import com.morihacky.android.rxjava.R; import rx.Subscription; import rx.functions.Action1; import rx.subjects.PublishSubject; +import static android.text.TextUtils.isEmpty; + public class DoubleBindingTextViewFragment extends BaseFragment { @@ -52,11 +53,11 @@ public void onNumberChanged() { float num1 = 0; float num2 = 0; - if (!Strings.isNullOrEmpty(_number1.getText().toString())) { + if (!isEmpty(_number1.getText().toString())) { num1 = Float.parseFloat(_number1.getText().toString()); } - if (!Strings.isNullOrEmpty(_number2.getText().toString())) { + if (!isEmpty(_number2.getText().toString())) { num2 = Float.parseFloat(_number2.getText().toString()); } diff --git a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java b/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java index 93bc7183..2bb02b12 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java @@ -7,9 +7,9 @@ import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; + import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.R; import rx.Observable; import rx.Observer; import rx.Subscription; @@ -18,8 +18,9 @@ import rx.functions.Func3; import timber.log.Timber; +import static android.text.TextUtils.isEmpty; import static android.util.Patterns.EMAIL_ADDRESS; -import static com.google.common.base.Strings.isNullOrEmpty; + public class FormValidationCombineLatestFragment extends BaseFragment { @@ -71,20 +72,20 @@ public Boolean call(OnTextChangeEvent onEmailChangeEvent, OnTextChangeEvent onPasswordChangeEvent, OnTextChangeEvent onNumberChangeEvent) { - boolean emailValid = !isNullOrEmpty(onEmailChangeEvent.text().toString()) && + boolean emailValid = !isEmpty(onEmailChangeEvent.text().toString()) && EMAIL_ADDRESS.matcher(onEmailChangeEvent.text()) .matches(); if (!emailValid) { _email.setError("Invalid Email!"); } - boolean passValid = !isNullOrEmpty(onPasswordChangeEvent.text().toString()) && + boolean passValid = !isEmpty(onPasswordChangeEvent.text().toString()) && onPasswordChangeEvent.text().length() > 8; if (!passValid) { _password.setError("Invalid Password!"); } - boolean numValid = !isNullOrEmpty(onNumberChangeEvent.text().toString()); + boolean numValid = !isEmpty(onNumberChangeEvent.text().toString()); if (numValid) { int num = Integer.parseInt(onNumberChangeEvent.text().toString()); numValid = num > 0 && num <= 100; diff --git a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java b/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java index 623d9cdd..ea1207d1 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheConcatFragment.java @@ -2,20 +2,23 @@ import android.os.Bundle; import android.support.annotation.Nullable; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; -import com.morihacky.android.rxjava.R; + import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observable; @@ -25,7 +28,6 @@ import rx.functions.Func1; import timber.log.Timber; -import static com.google.common.base.Strings.isNullOrEmpty; import static java.lang.String.format; public class PseudoCacheConcatFragment @@ -129,7 +131,7 @@ private GithubApi _createGithubApi() { //.setLogLevel(RestAdapter.LogLevel.FULL); final String githubToken = getResources().getString(R.string.github_oauth_token); - if (!isNullOrEmpty(githubToken)) { + if (!TextUtils.isEmpty(githubToken)) { builder.setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { diff --git a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java b/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java index f2165950..58d7e09c 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/PseudoCacheMergeFragment.java @@ -8,14 +8,17 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; + import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observable; @@ -25,7 +28,7 @@ import rx.functions.Func1; import timber.log.Timber; -import static com.google.common.base.Strings.isNullOrEmpty; +import static android.text.TextUtils.isEmpty; import static java.lang.String.format; public class PseudoCacheMergeFragment @@ -149,7 +152,7 @@ private GithubApi _createGithubApi() { //.setLogLevel(RestAdapter.LogLevel.FULL); final String githubToken = getResources().getString(R.string.github_oauth_token); - if (!isNullOrEmpty(githubToken)) { + if (!isEmpty(githubToken)) { builder.setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { diff --git a/app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java b/app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java index a883cbe2..36030cd3 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/RetrofitAsyncTaskDeathFragment.java @@ -4,27 +4,29 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; + import com.morihacky.android.rxjava.retrofit.GithubApi; import com.morihacky.android.rxjava.retrofit.User; + import java.util.ArrayList; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; -import rx.Observable; import rx.Observer; import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Func1; import rx.schedulers.Schedulers; -import static com.google.common.base.Strings.isNullOrEmpty; +import static android.text.TextUtils.isEmpty; import static java.lang.String.format; public class RetrofitAsyncTaskDeathFragment @@ -109,7 +111,7 @@ private GithubApi _createGithubApi() { //.setLogLevel(RestAdapter.LogLevel.FULL); final String githubToken = getResources().getString(R.string.github_oauth_token); - if (!isNullOrEmpty(githubToken)) { + if (!isEmpty(githubToken)) { builder.setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { diff --git a/app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java b/app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java index 10bc0e05..c40c2430 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/RetrofitFragment.java @@ -10,14 +10,17 @@ import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; + import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; import com.morihacky.android.rxjava.retrofit.User; + import java.util.ArrayList; import java.util.List; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observable; @@ -29,7 +32,7 @@ import rx.subscriptions.CompositeSubscription; import timber.log.Timber; -import static com.google.common.base.Strings.isNullOrEmpty; +import static android.text.TextUtils.isEmpty; import static java.lang.String.format; public class RetrofitFragment @@ -136,7 +139,7 @@ public Observable> call(Contributor contributor) { .filter(new Func1() { @Override public Boolean call(User user) { - return !isNullOrEmpty(user.name) && !isNullOrEmpty(user.email); + return !isEmpty(user.name) && !isEmpty(user.email); } }); @@ -196,7 +199,7 @@ private GithubApi _createGithubApi() { //.setLogLevel(RestAdapter.LogLevel.FULL); final String githubToken = getResources().getString(R.string.github_oauth_token); - if (!isNullOrEmpty(githubToken)) { + if (!isEmpty(githubToken)) { builder.setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade request) { From 3d224e7279b0e36432112090cfc9a6856b44c1e0 Mon Sep 17 00:00:00 2001 From: Kaushik Gopal Date: Wed, 2 Sep 2015 19:31:56 -0700 Subject: [PATCH 005/150] fix: bump up rxandroid to 1.0.1 and pull in RxBindings fixes #21 --- app/build.gradle | 10 +++-- .../android/rxjava/BufferDemoFragment.java | 27 +++++++------- ...ConcurrencyWithSchedulersDemoFragment.java | 3 +- .../rxjava/DebounceSearchEmitterFragment.java | 22 ++++------- .../FormValidationCombineLatestFragment.java | 37 ++++++++----------- .../android/rxjava/TimeoutDemoFragment.java | 10 ++--- .../rxbus/RxBusDemo_Bottom1Fragment.java | 5 +-- .../rxbus/RxBusDemo_Bottom2Fragment.java | 20 ++++------ .../rxbus/RxBusDemo_Bottom3Fragment.java | 20 ++++------ 9 files changed, 65 insertions(+), 89 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1b9eb001..8fedb1bc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,11 +3,15 @@ apply plugin: 'com.android.application' dependencies { compile 'com.android.support:support-v13:21.0.2' + compile 'io.reactivex:rxandroid:1.0.1' + // Because RxAndroid releases are few and far between, it is recommended you also + // explicitly depend on RxJava's latest version for bug fixes and new features. + compile 'io.reactivex:rxjava:1.0.14' + compile 'io.reactivex:rxjava-math:1.0.0' + compile 'com.jakewharton.rxbinding:rxbinding:0.2.0' + compile 'com.jakewharton:butterknife:5.1.1' compile 'com.jakewharton.timber:timber:2.4.2' - compile 'io.reactivex:rxandroid:0.25.0' - compile 'io.reactivex:rxjava-math:0.21.0' - compile 'com.squareup.retrofit:retrofit:1.6.1' compile 'com.squareup.okhttp:okhttp:2.0.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' diff --git a/app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java index e0ee6152..d544f980 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/BufferDemoFragment.java @@ -9,17 +9,20 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ListView; -import butterknife.ButterKnife; -import butterknife.InjectView; + +import com.jakewharton.rxbinding.view.RxView; +import com.jakewharton.rxbinding.view.ViewClickEvent; import com.morihacky.android.rxjava.wiring.LogAdapter; + import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; + +import butterknife.ButterKnife; +import butterknife.InjectView; import rx.Observer; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; -import rx.android.view.OnClickEvent; -import rx.android.view.ViewObservable; import rx.functions.Func1; import timber.log.Timber; @@ -79,10 +82,9 @@ public View onCreateView(LayoutInflater inflater, // Main Rx entities private Subscription _getBufferedSubscription() { - return ViewObservable.clicks(_tapBtn) - .map(new Func1() { - @Override - public Integer call(OnClickEvent onClickEvent) { + return RxView.clickEvents(_tapBtn) + .map(new Func1() { + @Override public Integer call(ViewClickEvent onClickEvent) { Timber.d("--------- GOT A TAP"); _log("GOT A TAP"); return 1; @@ -92,20 +94,17 @@ public Integer call(OnClickEvent onClickEvent) { .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer>() { - @Override - public void onCompleted() { + @Override public void onCompleted() { // fyi: you'll never reach here Timber.d("----- onCompleted"); } - @Override - public void onError(Throwable e) { + @Override public void onError(Throwable e) { Timber.e(e, "--------- Woops on error!"); _log("Dang error! check your logs"); } - @Override - public void onNext(List integers) { + @Override public void onNext(List integers) { Timber.d("--------- onNext"); if (integers.size() > 0) { _log(String.format("%d taps", integers.size())); 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 83f0f0ca..2dd1304a 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/ConcurrencyWithSchedulersDemoFragment.java @@ -19,7 +19,6 @@ import rx.Observable; import rx.Observer; import rx.Subscription; -import rx.android.app.AppObservable; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; import rx.schedulers.Schedulers; @@ -64,7 +63,7 @@ public void startLongOperation() { _progress.setVisibility(View.VISIBLE); _log("Button Clicked"); - _subscription = AppObservable.bindSupportFragment(this, _getObservable()) // Observable + _subscription = _getObservable()// .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(_getObserver()); // Observer diff --git a/app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java b/app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java index 3c3c857d..0e6d9dec 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/DebounceSearchEmitterFragment.java @@ -14,20 +14,17 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.jakewharton.rxbinding.widget.RxTextView; +import com.jakewharton.rxbinding.widget.TextViewTextChangeEvent; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; -import rx.Observable; import rx.Observer; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; -import rx.android.widget.OnTextChangeEvent; -import rx.android.widget.WidgetObservable; import timber.log.Timber; import static java.lang.String.format; -import static rx.android.app.AppObservable.bindFragment; -import static rx.android.app.AppObservable.bindSupportFragment; public class DebounceSearchEmitterFragment extends BaseFragment { @@ -69,20 +66,17 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); _setupLogger(); - Observable textChangeObservable = WidgetObservable.text(_inputSearchText); - - _subscription = bindSupportFragment(this,// - textChangeObservable// - .debounce(400, TimeUnit.MILLISECONDS)// default Scheduler is Computation - .observeOn(AndroidSchedulers.mainThread()))// + _subscription = RxTextView.textChangeEvents(_inputSearchText)// + .debounce(400, TimeUnit.MILLISECONDS)// default Scheduler is Computation + .observeOn(AndroidSchedulers.mainThread())// .subscribe(_getSearchObserver()); } // ----------------------------------------------------------------------------------- // Main Rx entities - private Observer _getSearchObserver() { - return new Observer() { + private Observer _getSearchObserver() { + return new Observer() { @Override public void onCompleted() { Timber.d("--------- onComplete"); @@ -95,7 +89,7 @@ public void onError(Throwable e) { } @Override - public void onNext(OnTextChangeEvent onTextChangeEvent) { + public void onNext(TextViewTextChangeEvent onTextChangeEvent) { _log(format("Searching for %s", onTextChangeEvent.text().toString())); } }; diff --git a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java b/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java index 2bb02b12..16360bc0 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java @@ -7,21 +7,18 @@ import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; - import butterknife.ButterKnife; import butterknife.InjectView; +import com.jakewharton.rxbinding.widget.RxTextView; import rx.Observable; import rx.Observer; import rx.Subscription; -import rx.android.widget.OnTextChangeEvent; -import rx.android.widget.WidgetObservable; import rx.functions.Func3; import timber.log.Timber; import static android.text.TextUtils.isEmpty; import static android.util.Patterns.EMAIL_ADDRESS; - public class FormValidationCombineLatestFragment extends BaseFragment { @@ -30,9 +27,9 @@ public class FormValidationCombineLatestFragment @InjectView(R.id.demo_combl_password) EditText _password; @InjectView(R.id.demo_combl_num) EditText _number; - private Observable _emailChangeObservable; - private Observable _passwordChangeObservable; - private Observable _numberChangeObservable; + private Observable _emailChangeObservable; + private Observable _passwordChangeObservable; + private Observable _numberChangeObservable; private Subscription _subscription = null; @@ -45,9 +42,9 @@ public View onCreateView(LayoutInflater inflater, false); ButterKnife.inject(this, layout); - _emailChangeObservable = WidgetObservable.text(_email); - _passwordChangeObservable = WidgetObservable.text(_password); - _numberChangeObservable = WidgetObservable.text(_number); + _emailChangeObservable = RxTextView.textChanges(_email); + _passwordChangeObservable = RxTextView.textChanges(_password); + _numberChangeObservable = RxTextView.textChanges(_number); _combineLatestEvents(); @@ -66,28 +63,26 @@ private void _combineLatestEvents() { _subscription = Observable.combineLatest(_emailChangeObservable, _passwordChangeObservable, _numberChangeObservable, - new Func3() { + new Func3() { @Override - public Boolean call(OnTextChangeEvent onEmailChangeEvent, - OnTextChangeEvent onPasswordChangeEvent, - OnTextChangeEvent onNumberChangeEvent) { + public Boolean call(CharSequence newEmail, + CharSequence newPassword, + CharSequence newNumber) { - boolean emailValid = !isEmpty(onEmailChangeEvent.text().toString()) && - EMAIL_ADDRESS.matcher(onEmailChangeEvent.text()) - .matches(); + boolean emailValid = !isEmpty(newEmail) && + EMAIL_ADDRESS.matcher(newEmail).matches(); if (!emailValid) { _email.setError("Invalid Email!"); } - boolean passValid = !isEmpty(onPasswordChangeEvent.text().toString()) && - onPasswordChangeEvent.text().length() > 8; + boolean passValid = !isEmpty(newPassword) && newPassword.length() > 8; if (!passValid) { _password.setError("Invalid Password!"); } - boolean numValid = !isEmpty(onNumberChangeEvent.text().toString()); + boolean numValid = !isEmpty(newNumber); if (numValid) { - int num = Integer.parseInt(onNumberChangeEvent.text().toString()); + int num = Integer.parseInt(newNumber.toString()); numValid = num > 0 && num <= 100; } if (!numValid) { diff --git a/app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java index 9a517d5e..4267fb01 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/TimeoutDemoFragment.java @@ -19,7 +19,6 @@ import rx.Observer; import rx.Subscriber; import rx.Subscription; -import rx.android.app.AppObservable; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; import timber.log.Timber; @@ -57,16 +56,14 @@ public View onCreateView(LayoutInflater inflater, @OnClick(R.id.btn_demo_timeout_1_2s) public void onStart2sTask() { - _subscription = AppObservable.bindSupportFragment(TimeoutDemoFragment.this, - _getObservableTask_2sToComplete()) - .observeOn(AndroidSchedulers.mainThread()) + _subscription = _getObservableTask_2sToComplete()// + .observeOn(AndroidSchedulers.mainThread())// .subscribe(_getEventCompletionObserver()); } @OnClick(R.id.btn_demo_timeout_1_5s) public void onStart5sTask() { - _subscription = AppObservable.bindSupportFragment(TimeoutDemoFragment.this, - _getObservableFor5sTask()) + _subscription = _getObservableFor5sTask()// .timeout(2, TimeUnit.SECONDS, _getTimeoutObservable()) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) @@ -176,5 +173,4 @@ public void run() { private boolean _isCurrentlyOnMainThread() { return Looper.myLooper() == Looper.getMainLooper(); } - } \ No newline at end of file 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 6aa39583..7e5dede0 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,9 +15,6 @@ import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; -import static rx.android.app.AppObservable.bindFragment; -import static rx.android.app.AppObservable.bindSupportFragment; - public class RxBusDemo_Bottom1Fragment extends BaseFragment { @@ -46,7 +43,7 @@ public void onStart() { _subscriptions = new CompositeSubscription(); _subscriptions// - .add(bindSupportFragment(this, _rxBus.toObserverable())// + .add(_rxBus.toObserverable()// .subscribe(new Action1() { @Override public void call(Object event) { 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 7f5cabcf..7ff3edbe 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,9 +19,6 @@ import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; -import static rx.android.app.AppObservable.bindFragment; -import static rx.android.app.AppObservable.bindSupportFragment; - public class RxBusDemo_Bottom2Fragment extends BaseFragment { @@ -53,15 +50,14 @@ public void onStart() { Observable tapEventEmitter = _rxBus.toObserverable().share(); _subscriptions// - .add(bindSupportFragment(this, tapEventEmitter)// - .subscribe(new Action1() { - @Override - public void call(Object event) { - if (event instanceof RxBusDemoFragment.TapEvent) { - _showTapText(); - } - } - })); + .add(tapEventEmitter.subscribe(new Action1() { + @Override + public void call(Object event) { + if (event instanceof RxBusDemoFragment.TapEvent) { + _showTapText(); + } + } + })); Observable debouncedEmitter = tapEventEmitter.debounce(1, TimeUnit.SECONDS); Observable> debouncedBufferEmitter = tapEventEmitter.buffer(debouncedEmitter); 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 a1fa81fc..e7ff15b9 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,9 +21,6 @@ import rx.observables.ConnectableObservable; import rx.subscriptions.CompositeSubscription; -import static rx.android.app.AppObservable.bindFragment; -import static rx.android.app.AppObservable.bindSupportFragment; - public class RxBusDemo_Bottom3Fragment extends BaseFragment { @@ -55,15 +52,14 @@ public void onStart() { ConnectableObservable tapEventEmitter = _rxBus.toObserverable().publish(); _subscriptions// - .add(bindSupportFragment(this, tapEventEmitter)// - .subscribe(new Action1() { - @Override - public void call(Object event) { - if (event instanceof RxBusDemoFragment.TapEvent) { - _showTapText(); - } - } - })); + .add(tapEventEmitter.subscribe(new Action1() { + @Override + public void call(Object event) { + if (event instanceof RxBusDemoFragment.TapEvent) { + _showTapText(); + } + } + })); _subscriptions// .add(tapEventEmitter.publish(new Func1, Observable>>() { From 7c634bf43162ad4a038387f148510b63cc50e3d6 Mon Sep 17 00:00:00 2001 From: Kaushik Gopal Date: Wed, 2 Sep 2015 23:21:25 -0700 Subject: [PATCH 006/150] fix: skip first item emitted, so it doesn't show all red until all inputs received --- .../android/rxjava/FormValidationCombineLatestFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java b/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java index 16360bc0..970a4bc9 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/FormValidationCombineLatestFragment.java @@ -42,9 +42,9 @@ public View onCreateView(LayoutInflater inflater, false); ButterKnife.inject(this, layout); - _emailChangeObservable = RxTextView.textChanges(_email); - _passwordChangeObservable = RxTextView.textChanges(_password); - _numberChangeObservable = RxTextView.textChanges(_number); + _emailChangeObservable = RxTextView.textChanges(_email).skip(1); + _passwordChangeObservable = RxTextView.textChanges(_password).skip(1); + _numberChangeObservable = RxTextView.textChanges(_number).skip(1); _combineLatestEvents(); From 1f593cd01ad31e55f84fff712db2aee28e825962 Mon Sep 17 00:00:00 2001 From: Kaushik Gopal Date: Wed, 2 Sep 2015 23:38:01 -0700 Subject: [PATCH 007/150] chore: mass reformat of code --- app/src/main/AndroidManifest.xml | 15 +++++++++------ .../rxjava/fragments/BufferDemoFragment.java | 12 +++++------- .../ConcurrencyWithSchedulersDemoFragment.java | 3 +-- .../fragments/DebounceSearchEmitterFragment.java | 4 +--- .../fragments/DoubleBindingTextViewFragment.java | 1 - .../android/rxjava/fragments/MainFragment.java | 15 +++++++++------ .../fragments/PseudoCacheConcatFragment.java | 9 +++------ .../fragments/PseudoCacheMergeFragment.java | 9 +++------ .../fragments/RetrofitAsyncTaskDeathFragment.java | 10 +++------- .../rxjava/fragments/RetrofitFragment.java | 9 +++------ .../fragments/RotationPersistWorkerFragment.java | 6 +++--- .../android/rxjava/rxbus/RxBusDemoFragment.java | 2 +- .../rxjava/rxbus/RxBusDemo_Bottom1Fragment.java | 2 +- .../rxjava/rxbus/RxBusDemo_Bottom2Fragment.java | 2 +- .../rxjava/rxbus/RxBusDemo_Bottom3Fragment.java | 2 +- .../rxjava/rxbus/RxBusDemo_TopFragment.java | 2 +- app/src/main/res/drawable/btn_round.xml | 15 +++++++++------ app/src/main/res/layout/fragment_debounce.xml | 4 ++-- app/src/main/res/layout/fragment_main.xml | 1 + app/src/main/res/menu/demo.xml | 11 +++++++---- app/src/main/res/values/styles.xml | 3 ++- 21 files changed, 66 insertions(+), 71 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f8779a75..7466dc56 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,23 +1,26 @@ + package="com.morihacky.android.rxjava" + > + android:theme="@style/AppTheme" + > + android:label="@string/app_name" + > - + - + - + diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java index bf99d53e..6a91aec5 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java @@ -9,18 +9,15 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ListView; - +import butterknife.ButterKnife; +import butterknife.InjectView; import com.jakewharton.rxbinding.view.RxView; import com.jakewharton.rxbinding.view.ViewClickEvent; -import com.morihacky.android.rxjava.wiring.LogAdapter; import com.morihacky.android.rxjava.R; - +import com.morihacky.android.rxjava.wiring.LogAdapter; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; - -import butterknife.ButterKnife; -import butterknife.InjectView; import rx.Observer; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; @@ -85,7 +82,8 @@ public View onCreateView(LayoutInflater inflater, private Subscription _getBufferedSubscription() { return RxView.clickEvents(_tapBtn) .map(new Func1() { - @Override public Integer call(ViewClickEvent onClickEvent) { + @Override + public Integer call(ViewClickEvent onClickEvent) { Timber.d("--------- GOT A TAP"); _log("GOT A TAP"); return 1; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java index cbe2560c..292827ca 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java @@ -14,10 +14,9 @@ import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; +import com.morihacky.android.rxjava.R; import java.util.ArrayList; import java.util.List; - -import com.morihacky.android.rxjava.R; import rx.Observable; import rx.Observer; import rx.Subscription; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java index 24d047d1..139a654d 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java @@ -16,12 +16,10 @@ import butterknife.OnClick; import com.jakewharton.rxbinding.widget.RxTextView; import com.jakewharton.rxbinding.widget.TextViewTextChangeEvent; +import com.morihacky.android.rxjava.R; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; - -import com.morihacky.android.rxjava.R; -import rx.Observable; import rx.Observer; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java index f76e6cba..8c810049 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java @@ -7,7 +7,6 @@ import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; - import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnTextChanged; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java index 2b8d27fb..0ec6c01d 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/MainFragment.java @@ -12,10 +12,13 @@ import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.rxbus.RxBusDemoFragment; -public class MainFragment extends BaseFragment { +public class MainFragment + extends BaseFragment { @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + public View onCreateView(LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.fragment_main, container, false); ButterKnife.inject(this, layout); return layout; @@ -79,9 +82,9 @@ void demoRotationPersist() { private void clickedOn(@NonNull Fragment fragment) { final String tag = fragment.getClass().toString(); getActivity().getSupportFragmentManager() - .beginTransaction() - .addToBackStack(tag) - .replace(android.R.id.content, fragment, tag) - .commit(); + .beginTransaction() + .addToBackStack(tag) + .replace(android.R.id.content, fragment, tag) + .commit(); } } diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java index de14ef15..d3b4a405 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java @@ -8,17 +8,14 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; - +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java index 5f4da8a9..17c6a6d5 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheMergeFragment.java @@ -8,18 +8,15 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; - +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java index 62dd5e47..5e6a48c1 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitAsyncTaskDeathFragment.java @@ -4,23 +4,19 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; -import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; - +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.retrofit.GithubApi; import com.morihacky.android.rxjava.retrofit.User; - import java.util.ArrayList; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observer; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java index cd8067fa..13e53c89 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RetrofitFragment.java @@ -10,19 +10,16 @@ import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; - +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; import com.morihacky.android.rxjava.R; import com.morihacky.android.rxjava.RxUtils; import com.morihacky.android.rxjava.retrofit.Contributor; import com.morihacky.android.rxjava.retrofit.GithubApi; import com.morihacky.android.rxjava.retrofit.User; - import java.util.ArrayList; import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; import retrofit.RequestInterceptor; import retrofit.RestAdapter; import rx.Observable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java b/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java index 9e8f6b46..92126687 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/fragments/RotationPersistWorkerFragment.java @@ -3,10 +3,9 @@ import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; +import com.morihacky.android.rxjava.MainActivity; import java.util.List; import java.util.concurrent.TimeUnit; - -import com.morihacky.android.rxjava.MainActivity; import rx.Observable; import rx.Subscription; import rx.functions.Func1; @@ -97,7 +96,8 @@ public void onDetach() { _masterFrag = null; } - @Override public void onDestroy() { + @Override + public void onDestroy() { super.onDestroy(); storedIntsSubscription.unsubscribe(); } diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java index 66052e0a..ad1ad6ff 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemoFragment.java @@ -6,8 +6,8 @@ import android.view.View; import android.view.ViewGroup; import butterknife.ButterKnife; -import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.fragments.BaseFragment; public class RxBusDemoFragment extends BaseFragment { 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 c49b3c51..7b7308fc 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 @@ -9,9 +9,9 @@ import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.fragments.BaseFragment; import rx.functions.Action1; import rx.subscriptions.CompositeSubscription; 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 9b07e071..3098ecc3 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 @@ -9,9 +9,9 @@ import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.fragments.BaseFragment; import java.util.List; import java.util.concurrent.TimeUnit; import rx.Observable; 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 d7ff7811..2f75f165 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 @@ -9,9 +9,9 @@ import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; -import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.fragments.BaseFragment; import java.util.List; import java.util.concurrent.TimeUnit; import rx.Observable; diff --git a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java index 3754ed0c..568244ca 100644 --- a/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java +++ b/app/src/main/java/com/morihacky/android/rxjava/rxbus/RxBusDemo_TopFragment.java @@ -7,9 +7,9 @@ import android.view.ViewGroup; import butterknife.ButterKnife; import butterknife.OnClick; -import com.morihacky.android.rxjava.fragments.BaseFragment; import com.morihacky.android.rxjava.MainActivity; import com.morihacky.android.rxjava.R; +import com.morihacky.android.rxjava.fragments.BaseFragment; public class RxBusDemo_TopFragment extends BaseFragment { diff --git a/app/src/main/res/drawable/btn_round.xml b/app/src/main/res/drawable/btn_round.xml index ac7ba8f8..55ff6d2b 100644 --- a/app/src/main/res/drawable/btn_round.xml +++ b/app/src/main/res/drawable/btn_round.xml @@ -1,9 +1,12 @@ - - + android:shape="rectangle" + > + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_debounce.xml b/app/src/main/res/layout/fragment_debounce.xml index 2dc599c6..4fadbfbb 100644 --- a/app/src/main/res/layout/fragment_debounce.xml +++ b/app/src/main/res/layout/fragment_debounce.xml @@ -26,17 +26,17 @@ android:layout_weight="7" android:layout_height="match_parent" android:layout_width="0dp" - android:inputType="textNoSuggestions" android:textSize="16sp" android:hint="Enter some search text" + android:inputType="textNoSuggestions" /> diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 73b3e120..0f06a098 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -93,6 +93,7 @@ android:layout_width="match_parent" android:text="@string/btn_demo_exponential_backoff" /> +