/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.iu;
import java.util.ArrayList;
import java.util.List;
import android.content.ComponentName;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import com.android.gallery3d.common.Entry;
import com.android.gallery3d.common.EntrySchema;
import com.android.gallery3d.common.Fingerprint;
/**
*
* @author sihai
*
*/
@Entry.Table("upload_tasks")
public class UploadTaskEntry extends Entry {
private static final String REQUIRED_COLUMNS[] = {
"account", "content_uri", "media_record_id"
};
public static final EntrySchema SCHEMA = new EntrySchema(UploadTaskEntry.class);
@Entry.Column("account")
private String mAccount;
@Entry.Column("album_id")
private String mAlbumId;
@Entry.Column("album_title")
private String mAlbumTitle;
@Entry.Column("auth_token_type")
private String mAuthTokenType;
@Entry.Column("bytes_total")
private long mBytesTotal;
@Entry.Column("bytes_uploaded")
private long mBytesUploaded;
private ComponentName mComponentName;
@Entry.Column("content_uri")
private String mContentUri;
@Entry.Column("display_name")
private String mDisplayName;
private Throwable mError;
@Entry.Column("event_id")
private String mEventId;
@Entry.Column("fingerprint")
private byte mFingerprint[];
@Entry.Column("media_record_id")
private long mMediaRecordId;
@Entry.Column("mime_type")
private String mMimeType;
@Entry.Column("priority")
private int mPriority;
@Entry.Column("component_name")
private String mRawComponentName;
@Entry.Column("request_template")
private String mRequestTemplate;
@Entry.Column("state")
private int mState;
@Entry.Column("upload_url")
private String mUploadUrl;
@Entry.Column("uploaded_time")
private long mUploadedTime;
@Entry.Column("url")
private String mUrl;
private UploadTaskEntry()
{
mState = 3;
}
static UploadTaskEntry createNew(ContentValues contentvalues)
{
List arraylist = new ArrayList();
String as[] = REQUIRED_COLUMNS;
int i = as.length;
for(int j = 0; j < i; j++)
{
String s = as[j];
if(contentvalues.get(s) == null)
arraylist.add(s);
}
if(!arraylist.isEmpty())
throw new RuntimeException((new StringBuilder("missing fields in upload request: ")).append(arraylist).toString());
else
return (UploadTaskEntry)SCHEMA.valuesToObject(contentvalues, new UploadTaskEntry());
}
public static UploadTaskEntry fromDb(SQLiteDatabase sqlitedatabase, long l)
{
UploadTaskEntry uploadtaskentry = new UploadTaskEntry();
if(!SCHEMA.queryWithId(sqlitedatabase, l, uploadtaskentry))
uploadtaskentry = null;
return uploadtaskentry;
}
public final String getAccount()
{
return mAccount;
}
public final String getAlbumId()
{
return mAlbumId;
}
public final long getBytesTotal()
{
return mBytesTotal;
}
public final long getBytesUploaded()
{
return mBytesUploaded;
}
final ComponentName getComponentName()
{
if(mComponentName == null && mRawComponentName != null)
mComponentName = ComponentName.unflattenFromString(mRawComponentName);
return mComponentName;
}
public final Uri getContentUri()
{
return Uri.parse(mContentUri);
}
public final String getEventId()
{
return mEventId;
}
public final Fingerprint getFingerprint()
{
Fingerprint fingerprint;
if(mFingerprint == null)
fingerprint = null;
else
fingerprint = new Fingerprint(mFingerprint);
return fingerprint;
}
public final long getMediaRecordId()
{
return mMediaRecordId;
}
final String getMimeType()
{
return mMimeType;
}
public final int getPercentageUploaded() {
int i = 0;
if(mBytesTotal != 0L && mBytesUploaded != 0L) {
i = (int)Math.round(100D * (double)((float)mBytesUploaded / (float)mBytesTotal));
if(i > 100)
i = 100;
}
return i;
}
final String getRequestTemplate()
{
return mRequestTemplate;
}
public final int getState()
{
return mState;
}
final String getUploadUrl()
{
return mUploadUrl;
}
public final Uri getUrl()
{
Uri uri;
if(mUrl == null)
uri = null;
else
uri = Uri.parse(mUrl);
return uri;
}
public final boolean hasFingerprint()
{
boolean flag;
if(mFingerprint != null)
flag = true;
else
flag = false;
return flag;
}
public final boolean hasPriority()
{
boolean flag = true;
if(mPriority != 2 && mPriority != 1)
flag = false;
return flag;
}
public final boolean isCancellable()
{
boolean flag = true;
if(mState != 1 && mState != 2 && mState != 3)
flag = false;
return flag;
}
public final boolean isReadyForUpload()
{
boolean flag = true;
if(mState != 3 && mState != 1)
flag = false;
return flag;
}
public final boolean isStartedYet()
{
boolean flag;
if(mBytesUploaded > 0L)
flag = true;
else
flag = false;
return flag;
}
public final boolean isUploading()
{
boolean flag = true;
if(mState != 1)
flag = false;
return flag;
}
public final void setAlbumId(String s)
{
mAlbumId = s;
}
final void setAuthTokenType(String s)
{
mAuthTokenType = s;
}
public final void setBytesTotal(long l)
{
mBytesTotal = l;
}
public final void setBytesUploaded(long l)
{
mBytesUploaded = l;
}
public final void setFingerprint(Fingerprint fingerprint)
{
mFingerprint = fingerprint.getBytes();
}
final void setMimeType(String s)
{
mMimeType = s;
}
final void setPriority(int i)
{
mPriority = 1;
}
final void setRequestTemplate(String s)
{
mRequestTemplate = s;
}
public final void setState(int i)
{
mState = i;
}
public final void setState(int i, Throwable throwable)
{
mState = i;
mError = throwable;
}
final void setUploadUrl(String s)
{
mUploadUrl = s;
}
final void setUploadedTime()
{
mUploadedTime = System.currentTimeMillis();
}
final void setUrl(String s)
{
mUrl = s;
}
public final boolean shouldRetry()
{
boolean flag;
if(mState == 2)
flag = true;
else
flag = false;
return flag;
}
public String toString()
{
return (new StringBuilder()).append(SCHEMA.toDebugString(this, new String[] {
"content_uri", "media_record_id", "album_id", "event_id", "mime_type", "state", "bytes_total"
})).append(" [").append(getPercentageUploaded()).append("%]").toString();
}
}