/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.fragments;
import android.content.Context;
import android.support.v4.content.AsyncTaskLoader;
import android.text.TextUtils;
import com.galaxy.meetup.client.android.api.SquareSearchQueryOperation;
import com.galaxy.meetup.client.android.content.EsAccount;
/**
*
* @author sihai
*
*/
public class SquareSearchLoader extends AsyncTaskLoader {
public static final SquareSearchLoaderResults ABORTED = new SquareSearchLoaderResults();
private final EsAccount mAccount;
private final String mContinuationToken;
private SquareSearchLoaderResults mData;
private final int mMinQueryLength = 2;
private volatile SquareSearchQueryOperation mOperation;
private final String mQuery;
public SquareSearchLoader(Context context, EsAccount esaccount, String s, int i, String s1)
{
super(context);
mAccount = esaccount;
mQuery = s;
mContinuationToken = s1;
}
private void abort()
{
SquareSearchQueryOperation squaresearchqueryoperation = mOperation;
if(squaresearchqueryoperation != null)
squaresearchqueryoperation.abort();
mOperation = null;
}
public SquareSearchLoaderResults loadInBackground() {
if(TextUtils.isEmpty(mQuery) || mQuery.length() < mMinQueryLength) {
return new SquareSearchLoaderResults();
}
try {
SquareSearchLoaderResults squaresearchloaderresults = null;
Context context = getContext();
EsAccount esaccount = mAccount;
String s = mQuery;
SquareSearchQueryOperation squaresearchqueryoperation = new SquareSearchQueryOperation(context, esaccount, s, null, null);
mOperation = squaresearchqueryoperation;
SquareSearchLoaderResults squaresearchloaderresults1;
squaresearchqueryoperation.start();
if(squaresearchqueryoperation.isAborted()) {
squaresearchloaderresults1 = ABORTED;
mOperation = null;
squaresearchloaderresults = squaresearchloaderresults1;
} else {
mOperation = null;
if(squaresearchqueryoperation.hasError())
{
squaresearchqueryoperation.logError("SquareSearch");
squaresearchloaderresults = null;
} else
{
squaresearchloaderresults = new SquareSearchLoaderResults(mContinuationToken, squaresearchqueryoperation.getContinuationToken(), squaresearchqueryoperation.getSquareSearchResults());
}
}
if(squaresearchqueryoperation.hasError())
{
squaresearchqueryoperation.logError("SquareSearch");
squaresearchloaderresults = null;
} else
{
squaresearchloaderresults = new SquareSearchLoaderResults(mContinuationToken, squaresearchqueryoperation.getContinuationToken(), squaresearchqueryoperation.getSquareSearchResults());
}
return squaresearchloaderresults;
} finally {
mOperation = null;
}
}
public final boolean cancelLoad()
{
abort();
return super.cancelLoad();
}
public final void deliverResult(Object obj)
{
SquareSearchLoaderResults squaresearchloaderresults = (SquareSearchLoaderResults)obj;
if(!isReset())
{
mData = squaresearchloaderresults;
if(isStarted())
super.deliverResult(squaresearchloaderresults);
}
}
public final String getContinuationToken()
{
return mContinuationToken;
}
public final void onAbandon()
{
abort();
}
protected final void onStartLoading()
{
if(mData == null)
forceLoad();
}
}