// Path: app/src/main/java/com/kuahusg/weather/Presenter/base/BasePresenter.java
// public abstract class BasePresenter implements IBasePresenter {
// 
//     private IBaseView mView;
//     //    private IDataSource dataSource;
//     private WeakReference<IDataSource> dataSourceWeakReference;
// 
//     public BasePresenter(IBaseView view) {
//         this.mView = view;
//     }
// 
//     public IBaseView getView() {
//         return mView;
//     }
// 
//     public boolean hasView() {
//         return mView != null;
//     }
// 
// 
//     protected abstract IDataSource setDataSource();
// 
//     public IDataSource getDataSource() {
//         if (dataSourceWeakReference.get() == null) {
//             getDatasource();
//         }
//             return dataSourceWeakReference.get();
//     }
// 
//     @Override
//     public void init() {
//         dataSourceWeakReference = new WeakReference<>(setDataSource());
//     }
// 
//     @Override
//     public void onDestroy() {
//         mView = null;
//         if (dataSourceWeakReference != null) {
//             dataSourceWeakReference.clear();
//             dataSourceWeakReference = null;
//         }
//     }
// 
//     private void getDatasource() {
//         this.dataSourceWeakReference = new WeakReference<IDataSource>(new WeatherDataSource(new RemoteForecastDataSource(), new LocalForecastDataSource()));
//     }
// 
// 
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/Presenter/interfaceOfPresenter/IFutureWeatherFragPresenter.java
// public interface IFutureWeatherFragPresenter extends IBasePresenter {
//     @Override
//     void init();
// 
//     @Override
//     void start();
// 
//     @Override
//     void onDestroy();
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/UI/base/IBaseView.java
// public interface IBaseView {
//     void init();
// 
//     void start();
// 
//     void error(String message);
// 
//     void finish();
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/UI/interfaceOfView/IFutureWeatherFragView.java
// public interface IFutureWeatherFragView extends IBaseView {
//     @Override
//     void start();
// 
//     @Override
//     void error(String message);
// 
//     @Override
//     void finish();
// 
//     @Override
//     void init();
// 
//     void showForecast(List<Forecast> forecastList);
// 
//     void scrollToTop();
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/data/IDataSource.java
// public interface IDataSource {
//     void queryWeather(String woeid, RequestWeatherCallback callback);
// 
//     void queryWeather(RequestWeatherCallback callback);
// 
// 
//     void saveWeather(List<Forecast> forecastList, ForecastInfo info);
// 
//     void loadAllCity(RequestCityCallback cityCallback);
// 
//     void saveAllCity(List<String> cityList);
// 
//     void queryCity(RequestCityResultCallback callback, String cityName);
// 
// }


import com.kuahusg.weather.Presenter.base.BasePresenter;
import com.kuahusg.weather.Presenter.interfaceOfPresenter.IFutureWeatherFragPresenter;
import com.kuahusg.weather.UI.base.IBaseView;
import com.kuahusg.weather.UI.interfaceOfView.IFutureWeatherFragView;
import com.kuahusg.weather.data.IDataSource;
package com.kuahusg.weather.Presenter;


/**
 * Created by kuahusg on 16-9-29.
 */

public class FutureWeatherFragPresenterImpl extends BasePresenter implements IFutureWeatherFragPresenter {
    private IFutureWeatherFragView mView;

// Path: app/src/main/java/com/kuahusg/weather/Presenter/base/BasePresenter.java
// public abstract class BasePresenter implements IBasePresenter {
// 
//     private IBaseView mView;
//     //    private IDataSource dataSource;
//     private WeakReference<IDataSource> dataSourceWeakReference;
// 
//     public BasePresenter(IBaseView view) {
//         this.mView = view;
//     }
// 
//     public IBaseView getView() {
//         return mView;
//     }
// 
//     public boolean hasView() {
//         return mView != null;
//     }
// 
// 
//     protected abstract IDataSource setDataSource();
// 
//     public IDataSource getDataSource() {
//         if (dataSourceWeakReference.get() == null) {
//             getDatasource();
//         }
//             return dataSourceWeakReference.get();
//     }
// 
//     @Override
//     public void init() {
//         dataSourceWeakReference = new WeakReference<>(setDataSource());
//     }
// 
//     @Override
//     public void onDestroy() {
//         mView = null;
//         if (dataSourceWeakReference != null) {
//             dataSourceWeakReference.clear();
//             dataSourceWeakReference = null;
//         }
//     }
// 
//     private void getDatasource() {
//         this.dataSourceWeakReference = new WeakReference<IDataSource>(new WeatherDataSource(new RemoteForecastDataSource(), new LocalForecastDataSource()));
//     }
// 
// 
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/Presenter/interfaceOfPresenter/IFutureWeatherFragPresenter.java
// public interface IFutureWeatherFragPresenter extends IBasePresenter {
//     @Override
//     void init();
// 
//     @Override
//     void start();
// 
//     @Override
//     void onDestroy();
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/UI/base/IBaseView.java
// public interface IBaseView {
//     void init();
// 
//     void start();
// 
//     void error(String message);
// 
//     void finish();
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/UI/interfaceOfView/IFutureWeatherFragView.java
// public interface IFutureWeatherFragView extends IBaseView {
//     @Override
//     void start();
// 
//     @Override
//     void error(String message);
// 
//     @Override
//     void finish();
// 
//     @Override
//     void init();
// 
//     void showForecast(List<Forecast> forecastList);
// 
//     void scrollToTop();
// }
// 
// Path: app/src/main/java/com/kuahusg/weather/data/IDataSource.java
// public interface IDataSource {
//     void queryWeather(String woeid, RequestWeatherCallback callback);
// 
//     void queryWeather(RequestWeatherCallback callback);
// 
// 
//     void saveWeather(List<Forecast> forecastList, ForecastInfo info);
// 
//     void loadAllCity(RequestCityCallback cityCallback);
// 
//     void saveAllCity(List<String> cityList);
// 
//     void queryCity(RequestCityResultCallback callback, String cityName);
// 
// }


// Path: app/src/main/java/com/kuahusg/weather/Presenter/FutureWeatherFragPresenterImpl.java
import com.kuahusg.weather.Presenter.base.BasePresenter;
import com.kuahusg.weather.Presenter.interfaceOfPresenter.IFutureWeatherFragPresenter;
import com.kuahusg.weather.UI.base.IBaseView;
import com.kuahusg.weather.UI.interfaceOfView.IFutureWeatherFragView;
import com.kuahusg.weather.data.IDataSource;

package com.kuahusg.weather.Presenter;


/**
 * Created by kuahusg on 16-9-29.
 */

public class FutureWeatherFragPresenterImpl extends BasePresenter implements IFutureWeatherFragPresenter {
    private IFutureWeatherFragView mView;

    public FutureWeatherFragPresenterImpl(IBaseView view) {