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 disposables) { synchronized (this) { Collection values=disposables.values(); Iterator iterator2=values.iterator(); while (iterator2.hasNext()){ Disposable disposable=iterator2.next(); if (disposable != null && !disposable.isDisposed()) { disposable.dispose(); deleteDisposable(disposable); disposable = null; } } } } }