/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.fragments;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.support.v4.content.AsyncTaskLoader;
import com.galaxy.meetup.client.android.api.GetViewerSquareOperation;
import com.galaxy.meetup.client.android.content.DbSquareStream;
import com.galaxy.meetup.client.android.content.EsAccount;
import com.galaxy.meetup.client.android.content.EsProvider;
/**
*
* @author sihai
*
*/
public class SquareCategoryLoader extends AsyncTaskLoader {
private static final String PROJECTION[] = {
"square_streams", "last_sync"
};
private final EsAccount mAccount;
private DbSquareStream mData[];
private boolean mIsDataStale;
private final String mSquareId;
public SquareCategoryLoader(Context context, EsAccount esaccount, String s)
{
super(context);
mAccount = esaccount;
mSquareId = s;
}
public final void deliverResult(Object obj)
{
DbSquareStream adbsquarestream[] = (DbSquareStream[])obj;
if(!isReset())
{
mData = adbsquarestream;
if(isStarted())
super.deliverResult(adbsquarestream);
}
}
public final boolean isDataStale()
{
return mIsDataStale;
}
public final Object loadInBackground() {
Uri uri = EsProvider.appendAccountParameter(EsProvider.SQUARES_URI.buildUpon().appendPath(mSquareId), mAccount).build();
Cursor cursor = null;
try {
cursor = getContext().getContentResolver().query(uri, PROJECTION, null, null, null);
if(null != cursor && cursor.moveToFirst()) {
long l = cursor.getLong(1);
if(l > 0L) {
DbSquareStream adbsquarestream[];
boolean flag2;
if(System.currentTimeMillis() - l > 0xdbba0L)
flag2 = true;
else
flag2 = false;
mIsDataStale = flag2;
return DbSquareStream.deserialize(cursor.getBlob(0));
}
}
DbSquareStream adbsquarestream[] = null;
GetViewerSquareOperation getviewersquareoperation = new GetViewerSquareOperation(getContext(), mAccount, mSquareId, null, null);
getviewersquareoperation.start();
boolean flag = getviewersquareoperation.hasError();
if(!flag)
{
Cursor cursor1 = getContext().getContentResolver().query(uri, PROJECTION, null, null, null);
if(cursor1 != null)
{
boolean flag1 = cursor1.moveToFirst();
adbsquarestream = null;
if(flag1)
adbsquarestream = DbSquareStream.deserialize(cursor1.getBlob(0));
}
}
return adbsquarestream;
} finally {
if(null != cursor) {
cursor.close();
}
}
}
protected final void onStartLoading()
{
if(mData == null)
forceLoad();
}
}