// 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/IWeatherMainFragPresenter.java
// public interface IWeatherMainFragPresenter extends IBasePresenter {
//     @Override
//     void init();
// 
//     @Override
//     void start();
// 
//     @Override
//     void onDestroy();
// 
//     void onClickBackgroundPic(ImageView imageViewToLoadImage);
// 
//     void checkForecastSource(String link, Context context);
// 
//     void initBackgroundPic(ImageView imageViewToInit);
// 
// 
// }
// 
// 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/IWeatherFragView.java
// public interface IWeatherFragView extends IBaseView {
// 
//     void showWeather(List<Forecast> forecastList);
// 
//     void showForecastInfo(ForecastInfo info);
// 
//     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/util/DateUtil.java
// public class DateUtil {
//     private static Date date;
//     private static SimpleDateFormat format;
//     public static String getDate(String formatString){
//         date = new Date();
//         DateUtil.format = new SimpleDateFormat(formatString);
//         return format.format(date);
//     }
// 
//     public static String getDate(String formatString, int howLongFromToday) {
//         date = new Date();
//         DateUtil.format = new SimpleDateFormat(formatString);
//         return format.format(new Date(date.getTime() - (howLongFromToday * 24 * 60 * 60 * 1000)));
// 
//     }
// 
// 
//     public static int getDatePart(int field,int offSet) {
//         Calendar calendar = Calendar.getInstance();
//         return calendar.get(field) - offSet;
// 
//     }
// 
//    /* public static String getFormatDate(String formatString, String date_string) {
//         date = new Date(date_string);
//         format = new SimpleDateFormat(formatString);
//         return format.format(date);
// 
//     }*/
// }


import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.kuahusg.weather.Presenter.base.BasePresenter;
import com.kuahusg.weather.Presenter.interfaceOfPresenter.IWeatherMainFragPresenter;
import com.kuahusg.weather.R;
import com.kuahusg.weather.UI.base.IBaseView;
import com.kuahusg.weather.UI.interfaceOfView.IWeatherFragView;
import com.kuahusg.weather.data.IDataSource;
import com.kuahusg.weather.util.DateUtil;
import java.util.Random;
package com.kuahusg.weather.Presenter;




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

public class WeatherFragPresenterImpl extends BasePresenter implements IWeatherMainFragPresenter {
    private IWeatherFragView mView;

    public WeatherFragPresenterImpl(IBaseView view) {
        super(view);
        mView = (IWeatherFragView) view;


    }

    @Override
    public void init() {
        super.init();
        if (hasView())
            mView.init();
    }

    @Override
// 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/IWeatherMainFragPresenter.java
// public interface IWeatherMainFragPresenter extends IBasePresenter {
//     @Override
//     void init();
// 
//     @Override
//     void start();
// 
//     @Override
//     void onDestroy();
// 
//     void onClickBackgroundPic(ImageView imageViewToLoadImage);
// 
//     void checkForecastSource(String link, Context context);
// 
//     void initBackgroundPic(ImageView imageViewToInit);
// 
// 
// }
// 
// 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/IWeatherFragView.java
// public interface IWeatherFragView extends IBaseView {
// 
//     void showWeather(List<Forecast> forecastList);
// 
//     void showForecastInfo(ForecastInfo info);
// 
//     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/util/DateUtil.java
// public class DateUtil {
//     private static Date date;
//     private static SimpleDateFormat format;
//     public static String getDate(String formatString){
//         date = new Date();
//         DateUtil.format = new SimpleDateFormat(formatString);
//         return format.format(date);
//     }
// 
//     public static String getDate(String formatString, int howLongFromToday) {
//         date = new Date();
//         DateUtil.format = new SimpleDateFormat(formatString);
//         return format.format(new Date(date.getTime() - (howLongFromToday * 24 * 60 * 60 * 1000)));
// 
//     }
// 
// 
//     public static int getDatePart(int field,int offSet) {
//         Calendar calendar = Calendar.getInstance();
//         return calendar.get(field) - offSet;
// 
//     }
// 
//    /* public static String getFormatDate(String formatString, String date_string) {
//         date = new Date(date_string);
//         format = new SimpleDateFormat(formatString);
//         return format.format(date);
// 
//     }*/
// }


// Path: app/src/main/java/com/kuahusg/weather/Presenter/WeatherFragPresenterImpl.java
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.kuahusg.weather.Presenter.base.BasePresenter;
import com.kuahusg.weather.Presenter.interfaceOfPresenter.IWeatherMainFragPresenter;
import com.kuahusg.weather.R;
import com.kuahusg.weather.UI.base.IBaseView;
import com.kuahusg.weather.UI.interfaceOfView.IWeatherFragView;
import com.kuahusg.weather.data.IDataSource;
import com.kuahusg.weather.util.DateUtil;
import java.util.Random;

package com.kuahusg.weather.Presenter;




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

public class WeatherFragPresenterImpl extends BasePresenter implements IWeatherMainFragPresenter {
    private IWeatherFragView mView;

    public WeatherFragPresenterImpl(IBaseView view) {
        super(view);
        mView = (IWeatherFragView) view;


    }

    @Override
    public void init() {
        super.init();
        if (hasView())
            mView.init();
    }

    @Override
    protected IDataSource setDataSource() {