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; 
 | 
                } 
 | 
            } 
 | 
  
 | 
        } 
 | 
    } 
 | 
} 
 |