Skip to content

Commit e1fbb02

Browse files
committed
Fix additional missing Rx disposal logic.
1 parent 9033acc commit e1fbb02

File tree

5 files changed

+39
-15
lines changed

5 files changed

+39
-15
lines changed

app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import fr.free.nrw.commons.utils.ViewUtil;
3131
import io.reactivex.Observable;
3232
import io.reactivex.android.schedulers.AndroidSchedulers;
33+
import io.reactivex.disposables.CompositeDisposable;
3334
import io.reactivex.schedulers.Schedulers;
3435
import timber.log.Timber;
3536

@@ -41,6 +42,7 @@ public class BookmarkPicturesFragment extends DaggerFragment {
4142
private static final int TIMEOUT_SECONDS = 15;
4243

4344
private GridViewAdapter gridAdapter;
45+
private CompositeDisposable compositeDisposable = new CompositeDisposable();
4446

4547
@BindView(R.id.statusMessage) TextView statusTextView;
4648
@BindView(R.id.loadingImagesProgressBar) ProgressBar progressBar;
@@ -82,6 +84,12 @@ public void onStop() {
8284
controller.stop();
8385
}
8486

87+
@Override
88+
public void onDestroy() {
89+
super.onDestroy();
90+
compositeDisposable.clear();
91+
}
92+
8593
@Override
8694
public void onResume() {
8795
super.onResume();
@@ -113,11 +121,11 @@ private void initList() {
113121
progressBar.setVisibility(VISIBLE);
114122
statusTextView.setVisibility(GONE);
115123

116-
Observable.fromCallable(() -> controller.loadBookmarkedPictures())
124+
compositeDisposable.add(Observable.fromCallable(() -> controller.loadBookmarkedPictures())
117125
.subscribeOn(Schedulers.io())
118126
.observeOn(AndroidSchedulers.mainThread())
119127
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
120-
.subscribe(this::handleSuccess, this::handleError);
128+
.subscribe(this::handleSuccess, this::handleError));
121129
}
122130

123131
/**

app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java

+12-4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import fr.free.nrw.commons.utils.ViewUtil;
3232
import io.reactivex.Observable;
3333
import io.reactivex.android.schedulers.AndroidSchedulers;
34+
import io.reactivex.disposables.CompositeDisposable;
3435
import io.reactivex.schedulers.Schedulers;
3536
import timber.log.Timber;
3637

@@ -51,6 +52,7 @@ public class CategoryImagesListFragment extends DaggerFragment {
5152
@BindView(R.id.loadingImagesProgressBar) ProgressBar progressBar;
5253
@BindView(R.id.categoryImagesList) GridView gridView;
5354
@BindView(R.id.parentLayout) RelativeLayout parentLayout;
55+
private CompositeDisposable compositeDisposable = new CompositeDisposable();
5456
private boolean hasMoreImages = true;
5557
private boolean isLoading = true;
5658
private String categoryName = null;
@@ -74,6 +76,12 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
7476
initViews();
7577
}
7678

79+
@Override
80+
public void onDestroy() {
81+
super.onDestroy();
82+
compositeDisposable.clear();
83+
}
84+
7785
/**
7886
* Initializes the UI elements for the fragment
7987
* Setup the grid view to and scroll listener for it
@@ -109,11 +117,11 @@ private void initList() {
109117

110118
isLoading = true;
111119
progressBar.setVisibility(VISIBLE);
112-
Observable.fromCallable(() -> controller.getCategoryImages(categoryName))
120+
compositeDisposable.add(Observable.fromCallable(() -> controller.getCategoryImages(categoryName))
113121
.subscribeOn(Schedulers.io())
114122
.observeOn(AndroidSchedulers.mainThread())
115123
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
116-
.subscribe(this::handleSuccess, this::handleError);
124+
.subscribe(this::handleSuccess, this::handleError));
117125
}
118126

119127
/**
@@ -215,11 +223,11 @@ private void fetchMoreImages() {
215223
}
216224

217225
progressBar.setVisibility(VISIBLE);
218-
Observable.fromCallable(() -> controller.getCategoryImages(categoryName))
226+
compositeDisposable.add(Observable.fromCallable(() -> controller.getCategoryImages(categoryName))
219227
.subscribeOn(Schedulers.io())
220228
.observeOn(AndroidSchedulers.mainThread())
221229
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
222-
.subscribe(this::handleSuccess, this::handleError);
230+
.subscribe(this::handleSuccess, this::handleError));
223231
}
224232

225233
/**

app/src/main/java/fr/free/nrw/commons/category/SubCategoryListFragment.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,17 @@ public void initSubCategoryList() {
9797
}
9898
progressBar.setVisibility(View.VISIBLE);
9999
if (!isParentCategory){
100-
Observable.fromCallable(() -> mwApi.getSubCategoryList(categoryName))
100+
compositeDisposable.add(Observable.fromCallable(() -> mwApi.getSubCategoryList(categoryName))
101101
.subscribeOn(Schedulers.io())
102102
.observeOn(AndroidSchedulers.mainThread())
103103
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
104-
.subscribe(this::handleSuccess, this::handleError);
104+
.subscribe(this::handleSuccess, this::handleError));
105105
}else {
106-
Observable.fromCallable(() -> mwApi.getParentCategoryList(categoryName))
106+
compositeDisposable.add(Observable.fromCallable(() -> mwApi.getParentCategoryList(categoryName))
107107
.subscribeOn(Schedulers.io())
108108
.observeOn(AndroidSchedulers.mainThread())
109109
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
110-
.subscribe(this::handleSuccess, this::handleError);
110+
.subscribe(this::handleSuccess, this::handleError));
111111
}
112112
}
113113

app/src/main/java/fr/free/nrw/commons/di/CommonsDaggerSupportFragment.java

+9
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,27 @@
99
import dagger.android.AndroidInjector;
1010
import dagger.android.DispatchingAndroidInjector;
1111
import dagger.android.support.HasSupportFragmentInjector;
12+
import io.reactivex.disposables.CompositeDisposable;
1213

1314
public abstract class CommonsDaggerSupportFragment extends Fragment implements HasSupportFragmentInjector {
1415

1516
@Inject
1617
DispatchingAndroidInjector<Fragment> childFragmentInjector;
1718

19+
protected CompositeDisposable compositeDisposable = new CompositeDisposable();
20+
1821
@Override
1922
public void onAttach(Context context) {
2023
inject();
2124
super.onAttach(context);
2225
}
2326

27+
@Override
28+
public void onDestroy() {
29+
super.onDestroy();
30+
compositeDisposable.clear();
31+
}
32+
2433
@Override
2534
public AndroidInjector<Fragment> supportFragmentInjector() {
2635
return childFragmentInjector;

app/src/main/java/fr/free/nrw/commons/explore/categories/SearchCategoryFragment.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import android.content.res.Configuration;
55
import android.os.Bundle;
6-
import android.os.Handler;
76
import androidx.recyclerview.widget.GridLayoutManager;
87
import androidx.recyclerview.widget.LinearLayoutManager;
98
import androidx.recyclerview.widget.RecyclerView;
@@ -136,12 +135,12 @@ public void updateCategoryList(String query) {
136135
progressBar.setVisibility(GONE);
137136
queryList.clear();
138137
categoriesAdapter.clear();
139-
Observable.fromCallable(() -> mwApi.searchCategory(query,queryList.size()))
138+
compositeDisposable.add(Observable.fromCallable(() -> mwApi.searchCategory(query,queryList.size()))
140139
.subscribeOn(Schedulers.io())
141140
.observeOn(AndroidSchedulers.mainThread())
142141
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
143142
.doOnSubscribe(disposable -> saveQuery(query))
144-
.subscribe(this::handleSuccess, this::handleError);
143+
.subscribe(this::handleSuccess, this::handleError));
145144
}
146145

147146

@@ -152,11 +151,11 @@ public void addCategoriesToList(String query) {
152151
this.query = query;
153152
bottomProgressBar.setVisibility(View.VISIBLE);
154153
progressBar.setVisibility(GONE);
155-
Observable.fromCallable(() -> mwApi.searchCategory(query,queryList.size()))
154+
compositeDisposable.add(Observable.fromCallable(() -> mwApi.searchCategory(query,queryList.size()))
156155
.subscribeOn(Schedulers.io())
157156
.observeOn(AndroidSchedulers.mainThread())
158157
.timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
159-
.subscribe(this::handlePaginationSuccess, this::handleError);
158+
.subscribe(this::handlePaginationSuccess, this::handleError));
160159
}
161160

162161
/**

0 commit comments

Comments
 (0)