Skip to content

Commit 27a1ddb

Browse files
author
Kaushik Gopal
committed
Merge branch 'kg/composite_sub_clean'
* kg/composite_sub_clean: fix: use unsubscriptions.clear instead of unsubscribe fix: filter empty texts in search debouncer chore: add simple core helper utils
2 parents 75bdc27 + 1e7d4b2 commit 27a1ddb

20 files changed

Lines changed: 72 additions & 100 deletions

app/build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
apply plugin: 'com.android.application'
22

33
dependencies {
4-
compile 'com.android.support:support-v13:23.1.1'
5-
compile 'com.android.support:appcompat-v7:23.1.1'
4+
compile 'com.android.support:support-v13:23.2.1'
5+
compile 'com.android.support:appcompat-v7:23.2.1'
66

77
compile 'io.reactivex:rxandroid:1.0.1'
88
// Because RxAndroid releases are few and far between, it is recommended you also
99
// explicitly depend on RxJava's latest version for bug fixes and new features.
1010
compile 'io.reactivex:rxjava:1.0.14'
1111
compile 'io.reactivex:rxjava-math:1.0.0'
12+
compile 'io.reactivex:rxjava-math:1.0.0'
13+
compile 'com.github.kaushikgopal:CoreTextUtils:c703fa12b6'
1214
compile 'com.jakewharton.rxbinding:rxbinding:0.2.0'
13-
1415
compile 'com.jakewharton:butterknife:7.0.1'
1516
compile 'com.jakewharton.timber:timber:2.4.2'
1617
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
@@ -30,7 +31,7 @@ android {
3031

3132
defaultConfig {
3233
applicationId "com.morihacky.android.rxjava"
33-
minSdkVersion 14
34+
minSdkVersion 15
3435
targetSdkVersion 22
3536
versionCode 1
3637
versionName "1.0"
Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.morihacky.android.rxjava;
22

33
import rx.Subscription;
4-
import rx.subscriptions.CompositeSubscription;
54

65
public class RxUtils {
76

@@ -10,12 +9,4 @@ public static void unsubscribeIfNotNull(Subscription subscription) {
109
subscription.unsubscribe();
1110
}
1211
}
13-
14-
public static CompositeSubscription getNewCompositeSubIfUnsubscribed(CompositeSubscription subscription) {
15-
if (subscription == null || subscription.isUnsubscribed()) {
16-
return new CompositeSubscription();
17-
}
18-
19-
return subscription;
20-
}
2112
}

app/src/main/java/com/morihacky/android/rxjava/fragments/BufferDemoFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ public class BufferDemoFragment
5353
private Subscription _subscription;
5454

5555
@Override
56-
public void onStart() {
57-
super.onStart();
56+
public void onResume() {
57+
super.onResume();
5858
_subscription = _getBufferedSubscription();
5959
}
6060

app/src/main/java/com/morihacky/android/rxjava/fragments/ConcurrencyWithSchedulersDemoFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public class ConcurrencyWithSchedulersDemoFragment
4242
@Override
4343
public void onDestroy() {
4444
super.onDestroy();
45-
RxUtils.unsubscribeIfNotNull(_subscription);
4645
ButterKnife.unbind(this);
46+
RxUtils.unsubscribeIfNotNull(_subscription);
4747
}
4848

4949
@Override

app/src/main/java/com/morihacky/android/rxjava/fragments/DebounceSearchEmitterFragment.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import com.jakewharton.rxbinding.widget.RxTextView;
1616
import com.jakewharton.rxbinding.widget.TextViewTextChangeEvent;
1717
import com.morihacky.android.rxjava.R;
18-
import com.morihacky.android.rxjava.RxUtils;
1918

2019
import java.util.ArrayList;
2120
import java.util.List;
@@ -24,9 +23,11 @@
2423
import butterknife.Bind;
2524
import butterknife.ButterKnife;
2625
import butterknife.OnClick;
26+
import co.kaush.core.util.CoreNullnessUtils;
2727
import rx.Observer;
2828
import rx.Subscription;
2929
import rx.android.schedulers.AndroidSchedulers;
30+
import rx.functions.Func1;
3031
import timber.log.Timber;
3132

3233
import static java.lang.String.format;
@@ -45,7 +46,7 @@ public class DebounceSearchEmitterFragment
4546
@Override
4647
public void onDestroy() {
4748
super.onDestroy();
48-
RxUtils.unsubscribeIfNotNull(_subscription);
49+
_subscription.unsubscribe();
4950
ButterKnife.unbind(this);
5051
}
5152

@@ -72,6 +73,12 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
7273

7374
_subscription = RxTextView.textChangeEvents(_inputSearchText)//
7475
.debounce(400, TimeUnit.MILLISECONDS)// default Scheduler is Computation
76+
.filter(new Func1<TextViewTextChangeEvent, Boolean>() {
77+
@Override
78+
public Boolean call(TextViewTextChangeEvent changes) {
79+
return CoreNullnessUtils.isNotNullOrEmpty(_inputSearchText.getText().toString());
80+
}
81+
})
7582
.observeOn(AndroidSchedulers.mainThread())//
7683
.subscribe(_getSearchObserver());
7784
}

app/src/main/java/com/morihacky/android/rxjava/fragments/DoubleBindingTextViewFragment.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import android.widget.TextView;
1010

1111
import com.morihacky.android.rxjava.R;
12-
import com.morihacky.android.rxjava.RxUtils;
1312

1413
import butterknife.Bind;
1514
import butterknife.ButterKnife;
@@ -70,7 +69,7 @@ public void onNumberChanged() {
7069
@Override
7170
public void onDestroyView() {
7271
super.onDestroyView();
73-
RxUtils.unsubscribeIfNotNull(_subscription);
72+
_subscription.unsubscribe();
7473
ButterKnife.unbind(this);
7574
}
7675
}

app/src/main/java/com/morihacky/android/rxjava/fragments/ExponentialBackoffFragment.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import android.widget.ListView;
1010

1111
import com.morihacky.android.rxjava.R;
12-
import com.morihacky.android.rxjava.RxUtils;
1312
import com.morihacky.android.rxjava.wiring.LogAdapter;
1413

1514
import java.util.ArrayList;
@@ -38,12 +37,6 @@ public class ExponentialBackoffFragment
3837

3938
private CompositeSubscription _subscriptions = new CompositeSubscription();
4039

41-
@Override
42-
public void onResume() {
43-
super.onResume();
44-
_subscriptions = RxUtils.getNewCompositeSubIfUnsubscribed(_subscriptions);
45-
}
46-
4740
@Override
4841
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
4942
super.onActivityCreated(savedInstanceState);
@@ -63,7 +56,7 @@ public View onCreateView(LayoutInflater inflater,
6356
public void onPause() {
6457
super.onPause();
6558

66-
RxUtils.unsubscribeIfNotNull(_subscriptions);
59+
_subscriptions.clear();
6760
}
6861

6962
@Override

app/src/main/java/com/morihacky/android/rxjava/fragments/FormValidationCombineLatestFragment.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import com.jakewharton.rxbinding.widget.RxTextView;
1212
import com.morihacky.android.rxjava.R;
13-
import com.morihacky.android.rxjava.RxUtils;
1413

1514
import butterknife.Bind;
1615
import butterknife.ButterKnife;
@@ -55,16 +54,11 @@ public View onCreateView(LayoutInflater inflater,
5554
return layout;
5655
}
5756

58-
@Override
59-
public void onPause() {
60-
super.onPause();
61-
RxUtils.unsubscribeIfNotNull(_subscription);
62-
}
63-
6457
@Override
6558
public void onDestroyView() {
6659
super.onDestroyView();
6760
ButterKnife.unbind(this);
61+
_subscription.unsubscribe();
6862
}
6963

7064
private void _combineLatestEvents() {

app/src/main/java/com/morihacky/android/rxjava/fragments/PollingFragment.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import android.widget.ListView;
1313

1414
import com.morihacky.android.rxjava.R;
15-
import com.morihacky.android.rxjava.RxUtils;
1615

1716
import java.util.ArrayList;
1817
import java.util.List;
@@ -40,9 +39,18 @@ public class PollingFragment
4039

4140
private LogAdapter _adapter;
4241
private List<String> _logs;
43-
private CompositeSubscription _subscriptions = new CompositeSubscription();
42+
43+
private CompositeSubscription _subscriptions;
4444
private int _counter = 0;
4545

46+
47+
@Override
48+
public void onCreate(@Nullable Bundle savedInstanceState) {
49+
super.onCreate(savedInstanceState);
50+
51+
_subscriptions = new CompositeSubscription();
52+
}
53+
4654
@Override
4755
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
4856
super.onActivityCreated(savedInstanceState);
@@ -61,7 +69,7 @@ public View onCreateView(LayoutInflater inflater,
6169
@Override
6270
public void onDestroy() {
6371
super.onDestroy();
64-
RxUtils.unsubscribeIfNotNull(_subscriptions);
72+
_subscriptions.unsubscribe();
6573
ButterKnife.unbind(this);
6674
}
6775

app/src/main/java/com/morihacky/android/rxjava/fragments/PseudoCacheConcatFragment.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import android.widget.ListView;
1010

1111
import com.morihacky.android.rxjava.R;
12-
import com.morihacky.android.rxjava.RxUtils;
1312
import com.morihacky.android.rxjava.retrofit.Contributor;
1413
import com.morihacky.android.rxjava.retrofit.GithubApi;
1514
import com.morihacky.android.rxjava.retrofit.GithubService;
@@ -33,7 +32,6 @@ public class PseudoCacheConcatFragment
3332

3433
@Bind(R.id.log_list) ListView _resultList;
3534

36-
private Subscription _subscription = null;
3735
private HashMap<String, Long> _contributionMap = null;
3836
private ArrayAdapter<String> _adapter;
3937

@@ -47,12 +45,6 @@ public View onCreateView(LayoutInflater inflater,
4745
return layout;
4846
}
4947

50-
@Override
51-
public void onPause() {
52-
super.onPause();
53-
RxUtils.unsubscribeIfNotNull(_subscription);
54-
}
55-
5648
@Override
5749
public void onDestroyView() {
5850
super.onDestroyView();

0 commit comments

Comments
 (0)