package com.doumee.lib_coremodel.http.rxJava;
|
|
import java.util.Collection;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
|
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.Disposable;
|
|
public class RxJavaGcManager {
|
public RxJavaGcManager() {
|
|
}
|
|
private CompositeDisposable compositeDisposable;
|
|
public void addDisposable(Disposable disposable) {
|
if (compositeDisposable == null) {
|
compositeDisposable
|
= new CompositeDisposable();
|
}
|
compositeDisposable.add(disposable);
|
}
|
|
private void deleteDisposable(Disposable disposable) {
|
if (compositeDisposable != null) {
|
compositeDisposable.delete(disposable);
|
}
|
}
|
|
public void clearDisposable() {
|
if (compositeDisposable != null) {
|
compositeDisposable.clear();
|
}
|
}
|
|
public void disposableActive(Disposable disposable) {
|
synchronized (this) {
|
if (disposable != null && !disposable.isDisposed()) {
|
disposable.dispose();
|
deleteDisposable(disposable);
|
disposable = null;
|
}
|
}
|
}
|
|
public void disposableActives() {
|
synchronized (this) {
|
if(compositeDisposable!=null){
|
compositeDisposable.clear();
|
}
|
}
|
}
|
|
|
public void disposableActives(HashMap<String, Disposable> disposables) {
|
synchronized (this) {
|
Collection<Disposable> values=disposables.values();
|
Iterator<Disposable> iterator2=values.iterator();
|
while (iterator2.hasNext()){
|
Disposable disposable=iterator2.next();
|
if (disposable != null && !disposable.isDisposed()) {
|
disposable.dispose();
|
deleteDisposable(disposable);
|
disposable = null;
|
}
|
}
|
|
}
|
}
|
}
|