// Path: app/src/main/java/com/yunq/gankio/data/DataManager.java
// @Singleton
// public class DataManager {
//     private final OkHttpClient mClient;
// 
//     private final MeiziService mMeiziService;
// 
//     @Inject
//     public DataManager(OkHttpClient client) {
//         mClient = client;
//         mMeiziService = MeiziService.Creator.newGudongService(client);
//     }
// 
// 
//     public void cancelRequest() {
//        mClient.dispatcher().cancelAll();
//     }
// 
//     /**
//      * MainActivity中获取所有Girls
//      */
//     public Observable<List<Girl>> getGirls(int pageSize, int currentPage) {
//         return Observable.zip(mMeiziService.getPrettyGirlData(pageSize, currentPage),
//                 mMeiziService.get休息视频Data(pageSize, currentPage),
//                 new Func2<PrettyGirlData, 休息视频Data, PrettyGirlData>() {
//                     @Override
//                     public PrettyGirlData call(PrettyGirlData prettyGirlData, 休息视频Data 休息视频Data) {
//                         return DataUtils.createGirlInfoWith休息视频(prettyGirlData, 休息视频Data);
//                     }
//                 })
//                 .map(new Func1<PrettyGirlData, List<Girl>>() {
//                     @Override
//                     public List<Girl> call(PrettyGirlData girlData) {
//                         return girlData.results;
//                     }
//                 })
//                 .flatMap(new Func1<List<Girl>, Observable<Girl>>() {
//                     @Override
//                     public Observable<Girl> call(List<Girl> girls) {
//                         return Observable.from(girls);
//                     }
//                 })
//                 .toSortedList(new Func2<Girl, Girl, Integer>() {
//                     @Override
//                     public Integer call(Girl girl, Girl girl2) {
//                         return girl2.publishedAt.compareTo(girl.publishedAt);
//                     }
//                 });
//     }
// 
//     /**
//      * GankDetailActivity
//      */
//     public Observable<List<Gank>> getGankData(Date date) {
//         Calendar calendar = Calendar.getInstance();
//         calendar.setTime(date);
//         int year = calendar.get(Calendar.YEAR);
//         int month = calendar.get(Calendar.MONTH) + 1;
//         int day = calendar.get(Calendar.DAY_OF_MONTH);
// 
//         return mMeiziService.getGankData(year, month, day)
//                 .map(new Func1<GankData, GankData.Result>() {
//                     @Override
//                     public GankData.Result call(GankData gankData) {
//                         return gankData.results;
//                     }
//                 })
//                 .map(new Func1<GankData.Result, List<Gank>>() {
//                     @Override
//                     public List<Gank> call(GankData.Result result) {
//                         return DataUtils.addAllResults(result);
//                     }
//                 });
//     }
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/presenter/view/IGirlFaceView.java
// public interface IGirlFaceView extends IBaseView {
// 
//     void saveSuccess(String message);
// 
//     void showFailInfo(String error);
// }
// 
// Path: app/src/main/java/com/yunq/gankio/util/TaskUtils.java
// public class TaskUtils {
// 
//     @SafeVarargs
//     public static <Params, Progress, Result> void executeAsyncTask(
//             AsyncTask<Params, Progress, Result> task, Params... params) {
//         if (Build.VERSION.SDK_INT >= 11) {
//             task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
//         } else {
//             task.execute(params);
//         }
// 
//     }
// }


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;
import com.yunq.gankio.data.DataManager;
import com.yunq.gankio.R;
import com.yunq.gankio.presenter.view.IGirlFaceView;
import com.yunq.gankio.util.TaskUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.inject.Inject;
import timber.log.Timber;
package com.yunq.gankio.presenter;







/**
 * Created by admin on 16/1/6.
 */
public class GirlFacePresenter extends BasePresenter<IGirlFaceView> {

    private final DataManager mDataManager;
    private Context mContext;

    @Inject
    public GirlFacePresenter(Activity context,DataManager dataManager){
        mContext =  context;
        mDataManager = dataManager;
    }
    public void loadGirl(String url, ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(mContext).load(url).into(imageView);
        }
    }

    public void saveFace(String url) {
        if (!TextUtils.isEmpty(url)) {
            String fileName = url.substring(url.lastIndexOf("/") + 1);
            saveImageToSdCard(mContext, url, fileName);
        }
    }

    private void saveImageToSdCard(final Context context, final String url, final String fileName) {
// Path: app/src/main/java/com/yunq/gankio/data/DataManager.java
// @Singleton
// public class DataManager {
//     private final OkHttpClient mClient;
// 
//     private final MeiziService mMeiziService;
// 
//     @Inject
//     public DataManager(OkHttpClient client) {
//         mClient = client;
//         mMeiziService = MeiziService.Creator.newGudongService(client);
//     }
// 
// 
//     public void cancelRequest() {
//        mClient.dispatcher().cancelAll();
//     }
// 
//     /**
//      * MainActivity中获取所有Girls
//      */
//     public Observable<List<Girl>> getGirls(int pageSize, int currentPage) {
//         return Observable.zip(mMeiziService.getPrettyGirlData(pageSize, currentPage),
//                 mMeiziService.get休息视频Data(pageSize, currentPage),
//                 new Func2<PrettyGirlData, 休息视频Data, PrettyGirlData>() {
//                     @Override
//                     public PrettyGirlData call(PrettyGirlData prettyGirlData, 休息视频Data 休息视频Data) {
//                         return DataUtils.createGirlInfoWith休息视频(prettyGirlData, 休息视频Data);
//                     }
//                 })
//                 .map(new Func1<PrettyGirlData, List<Girl>>() {
//                     @Override
//                     public List<Girl> call(PrettyGirlData girlData) {
//                         return girlData.results;
//                     }
//                 })
//                 .flatMap(new Func1<List<Girl>, Observable<Girl>>() {
//                     @Override
//                     public Observable<Girl> call(List<Girl> girls) {
//                         return Observable.from(girls);
//                     }
//                 })
//                 .toSortedList(new Func2<Girl, Girl, Integer>() {
//                     @Override
//                     public Integer call(Girl girl, Girl girl2) {
//                         return girl2.publishedAt.compareTo(girl.publishedAt);
//                     }
//                 });
//     }
// 
//     /**
//      * GankDetailActivity
//      */
//     public Observable<List<Gank>> getGankData(Date date) {
//         Calendar calendar = Calendar.getInstance();
//         calendar.setTime(date);
//         int year = calendar.get(Calendar.YEAR);
//         int month = calendar.get(Calendar.MONTH) + 1;
//         int day = calendar.get(Calendar.DAY_OF_MONTH);
// 
//         return mMeiziService.getGankData(year, month, day)
//                 .map(new Func1<GankData, GankData.Result>() {
//                     @Override
//                     public GankData.Result call(GankData gankData) {
//                         return gankData.results;
//                     }
//                 })
//                 .map(new Func1<GankData.Result, List<Gank>>() {
//                     @Override
//                     public List<Gank> call(GankData.Result result) {
//                         return DataUtils.addAllResults(result);
//                     }
//                 });
//     }
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/presenter/view/IGirlFaceView.java
// public interface IGirlFaceView extends IBaseView {
// 
//     void saveSuccess(String message);
// 
//     void showFailInfo(String error);
// }
// 
// Path: app/src/main/java/com/yunq/gankio/util/TaskUtils.java
// public class TaskUtils {
// 
//     @SafeVarargs
//     public static <Params, Progress, Result> void executeAsyncTask(
//             AsyncTask<Params, Progress, Result> task, Params... params) {
//         if (Build.VERSION.SDK_INT >= 11) {
//             task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
//         } else {
//             task.execute(params);
//         }
// 
//     }
// }


// Path: app/src/main/java/com/yunq/gankio/presenter/GirlFacePresenter.java
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;
import com.yunq.gankio.data.DataManager;
import com.yunq.gankio.R;
import com.yunq.gankio.presenter.view.IGirlFaceView;
import com.yunq.gankio.util.TaskUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.inject.Inject;
import timber.log.Timber;

package com.yunq.gankio.presenter;







/**
 * Created by admin on 16/1/6.
 */
public class GirlFacePresenter extends BasePresenter<IGirlFaceView> {

    private final DataManager mDataManager;
    private Context mContext;

    @Inject
    public GirlFacePresenter(Activity context,DataManager dataManager){
        mContext =  context;
        mDataManager = dataManager;
    }
    public void loadGirl(String url, ImageView imageView) {
        if (!TextUtils.isEmpty(url)) {
            Picasso.with(mContext).load(url).into(imageView);
        }
    }

    public void saveFace(String url) {
        if (!TextUtils.isEmpty(url)) {
            String fileName = url.substring(url.lastIndexOf("/") + 1);
            saveImageToSdCard(mContext, url, fileName);
        }
    }

    private void saveImageToSdCard(final Context context, final String url, final String fileName) {
        TaskUtils.executeAsyncTask(new AsyncTask<Object, Object, Boolean>() {