// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/DataManager.java
// public interface DataManager extends PreferencesHelper, DbHelper, ApiHelper {
// }
// 
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/remote/helper/CompositeDisposableHelper.java
// public class CompositeDisposableHelper {
// 
//   public CompositeDisposable disposables;
//   public BaseSchedulerProvider schedulerProvider;
// 
//   @Inject public CompositeDisposableHelper(CompositeDisposable disposables,
//       BaseSchedulerProvider schedulerProvider) {
//     this.disposables = disposables;
//     this.schedulerProvider = schedulerProvider;
//   }
// 
//   private final ObservableTransformer schedulersTransformer = new ObservableTransformer() {
//     @Override public ObservableSource apply(Observable upstream) {
//       return upstream.subscribeOn(schedulerProvider.io()).observeOn(schedulerProvider.ui());
//     }
//   };
// 
//   public <T> ObservableTransformer<T, T> applySchedulers() {
//     return (ObservableTransformer<T, T>) schedulersTransformer;
//   }
// 
//   public void addDisposable(Disposable disposable) {
//     disposables.add(disposable);
//   }
// 
//   public void dispose() {
//     if (!disposables.isDisposed()) {
//       disposables.dispose();
//     }
//   }
// 
//   public BaseSchedulerProvider getSchedulerProvider() {
//     return schedulerProvider;
//   }
// }


import android.support.annotation.NonNull;
import javax.inject.Inject;
import mk.petrovski.weathergurumvp.data.DataManager;
import mk.petrovski.weathergurumvp.data.remote.helper.CompositeDisposableHelper;
package mk.petrovski.weathergurumvp.ui.base;


/**
 * Base class that implements the Presenter interface and provides a base implementation for
 * attachView() and detachView(). It also handles keeping a reference to the mvpView that
 * can be accessed from the children classes by calling getMvpView().
 */
public class BasePresenter<V extends BaseMvpView> implements Presenter<V> {

  CompositeDisposableHelper compositeDisposableHelper;
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/DataManager.java
// public interface DataManager extends PreferencesHelper, DbHelper, ApiHelper {
// }
// 
// Path: app/src/main/java/mk/petrovski/weathergurumvp/data/remote/helper/CompositeDisposableHelper.java
// public class CompositeDisposableHelper {
// 
//   public CompositeDisposable disposables;
//   public BaseSchedulerProvider schedulerProvider;
// 
//   @Inject public CompositeDisposableHelper(CompositeDisposable disposables,
//       BaseSchedulerProvider schedulerProvider) {
//     this.disposables = disposables;
//     this.schedulerProvider = schedulerProvider;
//   }
// 
//   private final ObservableTransformer schedulersTransformer = new ObservableTransformer() {
//     @Override public ObservableSource apply(Observable upstream) {
//       return upstream.subscribeOn(schedulerProvider.io()).observeOn(schedulerProvider.ui());
//     }
//   };
// 
//   public <T> ObservableTransformer<T, T> applySchedulers() {
//     return (ObservableTransformer<T, T>) schedulersTransformer;
//   }
// 
//   public void addDisposable(Disposable disposable) {
//     disposables.add(disposable);
//   }
// 
//   public void dispose() {
//     if (!disposables.isDisposed()) {
//       disposables.dispose();
//     }
//   }
// 
//   public BaseSchedulerProvider getSchedulerProvider() {
//     return schedulerProvider;
//   }
// }


// Path: app/src/main/java/mk/petrovski/weathergurumvp/ui/base/BasePresenter.java
import android.support.annotation.NonNull;
import javax.inject.Inject;
import mk.petrovski.weathergurumvp.data.DataManager;
import mk.petrovski.weathergurumvp.data.remote.helper.CompositeDisposableHelper;

package mk.petrovski.weathergurumvp.ui.base;


/**
 * Base class that implements the Presenter interface and provides a base implementation for
 * attachView() and detachView(). It also handles keeping a reference to the mvpView that
 * can be accessed from the children classes by calling getMvpView().
 */
public class BasePresenter<V extends BaseMvpView> implements Presenter<V> {

  CompositeDisposableHelper compositeDisposableHelper;
  DataManager dataManager;