package com.pandocloud.freeiot.ui.helper; import com.pandocloud.android.api.interfaces.RequestListener; import com.pandocloud.freeiot.api.ProductApi; import com.pandocloud.freeiot.ui.app.AppConstants; import com.pandocloud.freeiot.ui.app.ProductInfoPrefs; import com.pandocloud.freeiot.ui.bean.ProductInfo; import com.pandocloud.freeiot.ui.bean.http.ProductInfoResponse; import com.pandocloud.freeiot.utils.GsonUtils; import org.apache.http.Header; import android.content.Context; import android.text.TextUtils; import com.loopj.android.http.BaseJsonHttpResponseHandler; import com.pandocloud.freeiot.utils.LogUtils; public class ProductInfoHelper { private RequestListener listener; public ProductInfoHelper(RequestListener listener) { if (listener == null) { throw new IllegalArgumentException("ReuqestListener not allow be null..."); } this.listener = listener; } public void getProductInfo(final Context context) { ProductApi.getProductInfo(context, AppConstants.PRODUCT_KEY, new BaseJsonHttpResponseHandler<ProductInfoResponse>() { @Override public void onFailure(int statusCode, Header[] headers, Throwable e, String rawJsonResponse, ProductInfoResponse response) { listener.onFail(new Exception(e)); } @Override public void onSuccess(int statusCode, Header[] headers, String rawJsonResponse, ProductInfoResponse response) { if (response != null) { ProductInfo productInfo = response.data; if (productInfo != null && context != null) { ProductInfoPrefs.Builder builder = new ProductInfoPrefs.Builder(context); builder.saveString("name", productInfo.name); builder.saveString("code", productInfo.code); builder.saveString("icon", productInfo.icon); builder.saveString("app", productInfo.app); builder.commit(); } listener.onSuccess(); } else { listener.onFail(new Exception("response is null")); } } @Override protected ProductInfoResponse parseResponse(String rawJsonData, boolean isFailure) throws Throwable { LogUtils.d("Outlet#getProductInfo-> parseResponse: " + rawJsonData); if (isFailure || TextUtils.isEmpty(rawJsonData)) { return null; } return GsonUtils.getInstance().getGson().fromJson(rawJsonData, ProductInfoResponse.class); } @Override public void onFinish() { listener.onFinish(); } }); } }