package com.github.captain_miao.agera.tutorial.supplier; import android.support.annotation.NonNull; import com.github.captain_miao.agera.tutorial.http.DemoApiService; import com.github.captain_miao.agera.tutorial.http.RetrofitServiceFactory; import com.github.captain_miao.agera.tutorial.model.ApiResult; import com.github.captain_miao.agera.tutorial.model.GirlInfo; import com.google.android.agera.Result; import com.google.android.agera.Supplier; import java.io.IOException; /** * @author YanLu * @since 16/5/16 */ public class GirlsSupplier implements Supplier<Result<ApiResult<GirlInfo>>> { private String baseUrl = "http://gank.io/api/data/%E7%A6%8F%E5%88%A9/"; private Supplier<Integer> mSupplierPagination; public GirlsSupplier(@NonNull Supplier<Integer> supplier ) { mSupplierPagination = supplier; } @NonNull @Override public Result<ApiResult<GirlInfo>> get() { return loadGirls(); } private Result<ApiResult<GirlInfo>> loadGirls() { DemoApiService apiService = RetrofitServiceFactory.createService(DemoApiService.class, baseUrl); ApiResult<GirlInfo> girlInfos = null; try { girlInfos = (apiService.getGirls(mSupplierPagination.get()).execute().body()); } catch (IOException e) { e.printStackTrace(); } if(girlInfos != null){ return !girlInfos.error ? Result.success(girlInfos) : Result.<ApiResult<GirlInfo>>failure(); } else { return Result.failure(); } } }