/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.fragments;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.database.MergeCursor;
import android.net.Uri;
import android.support.v4.content.CursorLoader;
import android.text.TextUtils;
import com.galaxy.meetup.client.android.EsMatrixCursor;
import com.galaxy.meetup.client.android.content.EsAccount;
import com.galaxy.meetup.client.android.content.EsPeopleData;
import com.galaxy.meetup.client.android.content.EsProvider;
import com.galaxy.meetup.client.util.MediaStoreUtils;
import com.galaxy.meetup.server.client.domain.DataVideo;
import com.galaxy.meetup.server.client.util.JsonUtil;
/**
*
* @author sihai
*
*/
public class PhotoOneUpLoader extends CursorLoader {
private final EsAccount mAccount;
private final boolean mDisableComments;
private final android.support.v4.content.Loader.ForceLoadContentObserver mObserver = new android.support.v4.content.Loader.ForceLoadContentObserver();
private boolean mObserverRegistered;
private final String mOwnerId;
private final long mPhotoId;
private final String mPhotoUrl;
public PhotoOneUpLoader(Context context, EsAccount esaccount, long l, String s, String s1, boolean flag)
{
super(context);
mAccount = esaccount;
mPhotoId = l;
mPhotoUrl = s1;
mOwnerId = s;
mDisableComments = flag;
}
public final Cursor loadInBackground()
{
MatrixCursor matrixcursor;
MergeCursor mergecursor;
ContentResolver contentresolver = getContext().getContentResolver();
Object obj;
boolean flag;
Cursor cursor;
Cursor cursor1;
EsMatrixCursor esmatrixcursor;
if(mPhotoId != 0L)
{
obj = contentresolver.query(EsProvider.appendAccountParameter(ContentUris.withAppendedId(EsProvider.PHOTO_BY_PHOTO_ID_URI, mPhotoId), mAccount), PhotoQuery.PROJECTION, null, null, null);
} else
{
String as[] = PhotoQuery.PROJECTION;
obj = new EsMatrixCursor(as);
DataVideo datavideo = MediaStoreUtils.toVideoData(getContext(), Uri.parse(mPhotoUrl));
byte abyte0[];
String s;
Object obj1;
String s1;
Object aobj[];
if(datavideo != null)
abyte0 = JsonUtil.toByteArray(datavideo);
else
abyte0 = null;
if(TextUtils.isEmpty(mOwnerId))
s = mAccount.getGaiaId();
else
s = mOwnerId;
if(s != null)
obj1 = null;
else
obj1 = Integer.valueOf(1);
s1 = EsPeopleData.getUserName(getContext(), mAccount, s);
aobj = new Object[PhotoQuery.PROJECTION.length];
aobj[0] = Long.valueOf(0L);
aobj[1] = Integer.valueOf(0);
aobj[2] = Long.valueOf(0L);
aobj[3] = s;
aobj[4] = s1;
aobj[6] = Long.valueOf(0L);
aobj[7] = null;
aobj[8] = null;
aobj[9] = mPhotoUrl;
aobj[10] = Integer.valueOf(0);
aobj[11] = null;
aobj[12] = Integer.valueOf(0);
aobj[13] = null;
aobj[14] = abyte0;
aobj[15] = Integer.valueOf(0);
aobj[16] = Integer.valueOf(0);
aobj[17] = "ORIGINAL";
aobj[18] = obj1;
aobj[19] = null;
aobj[20] = null;
((EsMatrixCursor)obj).addRow(aobj);
}
flag = mDisableComments;
cursor = null;
cursor1 = null;
esmatrixcursor = null;
if(!flag)
{
int i;
Uri uri;
Cursor cursor2;
int j;
if(obj != null && ((Cursor) (obj)).moveToFirst())
{
i = ((Cursor) (obj)).getInt(12);
((Cursor) (obj)).moveToPosition(-1);
} else
{
i = 0;
}
uri = EsProvider.appendAccountParameter(ContentUris.withAppendedId(EsProvider.PHOTO_COMMENTS_BY_PHOTO_ID_URI, mPhotoId), mAccount);
cursor2 = contentresolver.query(uri, PhotoCommentCountQuery.PROJECTION, null, null, null);
if(cursor2 != null && cursor2.moveToFirst() && cursor2.getInt(2) > 0)
{
cursor = cursor2;
} else
{
cursor = null;
if(cursor2 != null)
{
cursor2.close();
cursor = null;
}
}
cursor1 = contentresolver.query(uri, PhotoCommentQuery.PROJECTION, null, null, "create_time");
if(cursor1 != null)
j = cursor1.getCount();
else
j = 0;
esmatrixcursor = null;
if(i != j)
{
esmatrixcursor = new EsMatrixCursor(PhotoCommentLoadingQuery.PROJECTION);
((EsMatrixCursor)esmatrixcursor).newRow().add(Integer.valueOf(0x7ffffffd)).add(Integer.valueOf(3));
}
}
matrixcursor = new MatrixCursor(LeftoverQuery.PROJECTION);
matrixcursor.newRow().add(Integer.valueOf(0x7ffffffc)).add(Integer.valueOf(5));
mergecursor = new MergeCursor(new Cursor[] {
(Cursor)obj, cursor, cursor1, esmatrixcursor, matrixcursor
});
return mergecursor;
}
protected final void onAbandon()
{
if(mObserverRegistered)
{
getContext().getContentResolver().unregisterContentObserver(mObserver);
mObserverRegistered = false;
}
}
protected final void onReset()
{
cancelLoad();
super.onReset();
onAbandon();
}
protected final void onStartLoading()
{
super.onStartLoading();
if(!mObserverRegistered)
{
ContentResolver contentresolver = getContext().getContentResolver();
Uri uri = ContentUris.withAppendedId(EsProvider.PHOTO_COMMENTS_BY_PHOTO_ID_URI, mPhotoId);
contentresolver.registerContentObserver(ContentUris.withAppendedId(EsProvider.PHOTO_BY_PHOTO_ID_URI, mPhotoId), false, mObserver);
contentresolver.registerContentObserver(uri, false, mObserver);
mObserverRegistered = true;
}
}
protected final void onStopLoading()
{
}
public static interface LeftoverQuery
{
public static final String PROJECTION[] = {
"_id", "5 AS row_type"
};
}
public static interface PhotoCommentCountQuery
{
public static final String PROJECTION[] = {
"2147483646 AS _id", "4 AS row_type", "COUNT(*) AS _count"
};
}
public static interface PhotoCommentLoadingQuery
{
public static final String PROJECTION[] = {
"_id", "4 AS row_type"
};
}
public static interface PhotoCommentQuery
{
public static final String PROJECTION[] = {
"_id", "1 AS row_type", "comment_id", "author_id", "owner_name", "avatar", "create_time", "truncated", "content", "plusone_data"
};
}
public static interface PhotoQuery
{
public static final String PROJECTION[] = {
"_id", "0 AS row_type", "photo_id", "owner_id", "owner_name", "owner_avatar_url", "album_id", "album_name", "album_stream", "url",
"action_state", "timestamp", "comment_count", "pending_status", "video_data", "plusone_by_me", "plusone_count", "upload_status", "downloadable", "description",
"plusone_data"
};
}
}