package com.mozu.mozuandroidinstoreassistant.app.order.loaders; import android.content.AsyncTaskLoader; import android.content.Context; import com.crashlytics.android.Crashlytics; import com.mozu.api.MozuApiContext; import com.mozu.api.contracts.commerceruntime.orders.Order; import com.mozu.api.resources.commerce.OrderResource; public class OrderDetailLoader extends AsyncTaskLoader<Order> { private Order mOrder; private Integer mTenantId; private Integer mSiteId; private String mOrderNumber; public OrderDetailLoader(Context context, Integer tenantId, Integer siteId, String orderNumber) { super(context); mTenantId = tenantId; mSiteId = siteId; mOrderNumber = orderNumber; } @Override protected void onForceLoad() { super.onForceLoad(); } @Override public Order loadInBackground() { mOrder = loadOrderFromWeb(); return mOrder; } @Override public void deliverResult(Order data) { if (isReset()) return; if (isStarted()) super.deliverResult(data); } @Override protected void onStartLoading() { if (mOrder == null) { mOrder = new Order(); } if (takeContentChanged()) forceLoad(); } @Override protected void onStopLoading() { cancelLoad(); } @Override public void onCanceled(Order data) { super.onCanceled(data); } @Override protected void onReset() { onStopLoading(); mOrder = null; super.onReset(); } private Order loadOrderFromWeb() { Order order = new Order(); OrderResource orderResource = new OrderResource(new MozuApiContext(mTenantId, mSiteId)); try { order = orderResource.getOrder(mOrderNumber); } catch (Exception e) { Crashlytics.logException(e); } return order; } }