// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.olio.data.object.transfer; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import com.olio.communication.notifications.Utilities; import com.olio.olios.model.record.DatabaseRecord; import com.olio.olios.model.record.DatabaseRecordMixins; import com.olio.util.ALog; import java.lang.annotation.Annotation; import java.util.LinkedList; import java.util.List; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; // Referenced classes of package com.olio.data.object.transfer: // FileTransferObserver public class FileTransfer implements DatabaseRecord { public static interface PausedReason extends Annotation { } public static final String ACTUAL_HASH = "actual_hash"; public static final String BYTES_TRANSFERRED = "bytes_transferred"; public static final String DOWNLOAD_TYPE = "download_type"; public static final int DOWNLOAD_TYPE_FIRMWARE = 1; public static final int DOWNLOAD_TYPE_IMAGE = 4; public static final int DOWNLOAD_TYPE_JSON_FILE = 5; public static final int DOWNLOAD_TYPE_SOFTWARE = 3; public static final int DOWNLOAD_TYPE_THEME = 2; public static final int DOWNLOAD_TYPE_UNDEFINED = 0; public static final String EXPECTED_HASH = "expected_hash"; public static final String FILE_IDENTIFIER = "file_identifier"; public static final String FILE_SIZE = "file_size"; public static final String LAST_UPDATED = "last_updated"; public static final String OBSERVER = "observer"; public static final String PAUSED_REASON = "paused_reason"; public static final int PAUSED_REASON_ABOVE95_AND_SCREEN_ON = 4; public static final int PAUSED_REASON_LOW_CHARGE = 2; public static final int PAUSED_REASON_NOT_CHARGED = 5; public static final int PAUSED_REASON_NOT_CONNECTED = 6; public static final int PAUSED_REASON_NOT_ON_CHARGER = 1; public static final int PAUSED_REASON_SHOULD_CONTINUE = 0; public static final int PAUSED_REASON_TEMPERATURE = 3; public static final String PROCESS_UPDATE_RETRY_COUNT = "process_update_retry_count"; public static final String PROCESS_UPDATE_START_TIME = "process_update_start_time"; public static final String STATUS = "status"; public static final int STATUS_FINISHED = 4; public static final int STATUS_NOT_STARTED = 0; public static final int STATUS_PAUSED = 3; public static final int STATUS_TRANSFERRING = 1; public static final String TABLE_NAME = "file_transfers"; public static final String UPDATE_STATUS = "update_status"; public static final int UPDATE_STATUS_APPLIED = 2; public static final int UPDATE_STATUS_APPLYING = 1; public static final int UPDATE_STATUS_NOT_STARTED = 0; private static String columnProjection[]; private static com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory databaseRecordFactory = new com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory() { public DatabaseRecord getRecordInstance() { return new FileTransfer(); } }; private static final List recordFields; String actualHash; int bytesTransferred; int downloadType; String expectedHash; String fileIdentifier; int fileSize; int id; long lastUpdated; FileTransferObserver observer; long processUpdateStartTime; int reason; int status; int updateRetryCount; int updateStatus; public FileTransfer() { updateRetryCount = 0; } public static List allTransfers(ContentResolver contentresolver) { ContentResolver contentresolver1 = null; contentresolver = contentresolver.query(DatabaseRecordMixins.baseUriForTable(staticFactory()), staticColumnProjection(), null, null, null); contentresolver1 = contentresolver; List list = DatabaseRecordMixins.recordsFromCursor(contentresolver, staticFactory()); if (contentresolver != null) { contentresolver.close(); } return list; contentresolver; if (contentresolver1 != null) { contentresolver1.close(); } throw contentresolver; } public static Uri firstOrCreateTransfer(FileTransfer filetransfer, ContentResolver contentresolver) { Cursor cursor; Cursor cursor1; ALog.v("firstOrCreateTransfer", new Object[0]); ALog.d(filetransfer.toString(), new Object[0]); cursor1 = null; cursor = cursor1; Uri uri = DatabaseRecordMixins.baseUriForTable(staticFactory()); cursor = cursor1; String as[] = staticColumnProjection(); cursor = cursor1; String s = filetransfer.getFileIdentifier(); cursor = cursor1; String s1 = filetransfer.getExpectedHash(); cursor = cursor1; String s2 = filetransfer.defaultOrderBy(); cursor = cursor1; cursor1 = contentresolver.query(uri, as, "file_identifier = ? AND expected_hash = ? ", new String[] { s, s1 }, s2); if (cursor1 != null) goto _L2; else goto _L1 _L1: if (cursor1 != null) { cursor1.close(); } filetransfer = null; _L4: return filetransfer; _L2: cursor = cursor1; if (cursor1.getCount() != 0) { break; /* Loop/switch isn't completed */ } cursor = cursor1; ALog.d("creating db record", new Object[0]); cursor = cursor1; filetransfer = DatabaseRecordMixins.valuesForRecord(filetransfer); cursor = cursor1; contentresolver = contentresolver.insert(DatabaseRecordMixins.baseUriForTable(staticFactory()), filetransfer); filetransfer = contentresolver; if (cursor1 != null) { cursor1.close(); return contentresolver; } if (true) goto _L4; else goto _L3 _L3: cursor = cursor1; if (cursor1.getCount() <= 0) { break; /* Loop/switch isn't completed */ } cursor = cursor1; ALog.w("cursor count = %d", new Object[] { Integer.valueOf(cursor1.getCount()) }); cursor = cursor1; cursor1.moveToFirst(); cursor = cursor1; int i = DatabaseRecordMixins.idFromCursor(cursor1); cursor = cursor1; contentresolver = DatabaseRecordMixins.baseUriForTable(staticFactory()).buildUpon().appendPath(Integer.toString(i)).build(); filetransfer = contentresolver; if (cursor1 != null) { cursor1.close(); return contentresolver; } if (true) goto _L4; else goto _L5 _L5: if (cursor1 != null) { cursor1.close(); } return null; filetransfer; if (cursor != null) { cursor.close(); } throw filetransfer; } public static void removeAllTransfers(ContentResolver contentresolver) { ALog.v("removeAllTransfers", new Object[0]); contentresolver.delete(DatabaseRecordMixins.baseUriForTable(staticFactory()), null, null); } public static void removeAllTransfersForFileIdentifier(String s, ContentResolver contentresolver) { ALog.v("removeAllTransfersForFileIdentifier", new Object[0]); contentresolver.delete(DatabaseRecordMixins.baseUriForTable(staticFactory()), "file_identifier = ? ", new String[] { s }); } public static Uri startNewTransfer(FileTransfer filetransfer, ContentResolver contentresolver) { ALog.v("startNewTransfer", new Object[0]); ALog.d(filetransfer.toString(), new Object[0]); filetransfer = DatabaseRecordMixins.valuesForRecord(filetransfer); return contentresolver.insert(DatabaseRecordMixins.baseUriForTable(staticFactory()), filetransfer); } public static String[] staticColumnProjection() { return columnProjection; } public static com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory staticFactory() { return databaseRecordFactory; } public static FileTransfer transferForFileIdentifier(String s, ContentResolver contentresolver) { String s1 = null; s = contentresolver.query(DatabaseRecordMixins.baseUriForTable(staticFactory()), staticColumnProjection(), "file_identifier = ? ", new String[] { s }, null); s1 = s; contentresolver = DatabaseRecordMixins.recordsFromCursor(s, staticFactory()); s1 = s; if (contentresolver.size() <= 0) { break MISSING_BLOCK_LABEL_74; } s1 = s; contentresolver = (FileTransfer)contentresolver.get(0); if (s != null) { s.close(); } return contentresolver; if (s != null) { s.close(); } return null; s; if (s1 != null) { s1.close(); } throw s; } public static FileTransfer transferForId(int i, ContentResolver contentresolver) { return transferForUri(DatabaseRecordMixins.baseUriForTable(staticFactory()).buildUpon().appendPath(Integer.toString(i)).build(), contentresolver); } public static FileTransfer transferForUri(Uri uri, ContentResolver contentresolver) { Uri uri1 = null; uri = contentresolver.query(uri, staticColumnProjection(), null, null, null); uri1 = uri; contentresolver = DatabaseRecordMixins.recordsFromCursor(uri, staticFactory()); uri1 = uri; if (contentresolver.size() <= 0) { break MISSING_BLOCK_LABEL_60; } uri1 = uri; contentresolver = (FileTransfer)contentresolver.get(0); if (uri != null) { uri.close(); } return contentresolver; if (uri != null) { uri.close(); } return null; uri; if (uri1 != null) { uri1.close(); } throw uri; } public String[] columnProjection() { return staticColumnProjection(); } public String defaultOrderBy() { return null; } public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } else { obj = (FileTransfer)obj; return (new EqualsBuilder()).append(bytesTransferred, ((FileTransfer) (obj)).bytesTransferred).append(fileSize, ((FileTransfer) (obj)).fileSize).append(status, ((FileTransfer) (obj)).status).append(id, ((FileTransfer) (obj)).id).append(lastUpdated, ((FileTransfer) (obj)).lastUpdated).append(downloadType, ((FileTransfer) (obj)).downloadType).append(updateStatus, ((FileTransfer) (obj)).updateStatus).append(fileIdentifier, ((FileTransfer) (obj)).fileIdentifier).append(expectedHash, ((FileTransfer) (obj)).expectedHash).append(actualHash, ((FileTransfer) (obj)).actualHash).append(reason, ((FileTransfer) (obj)).reason).append(processUpdateStartTime, ((FileTransfer) (obj)).processUpdateStartTime).append(updateRetryCount, ((FileTransfer) (obj)).updateRetryCount).isEquals(); } } public com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory factory() { return staticFactory(); } public String getActualHash() { return actualHash; } public int getBytesTransferred() { return bytesTransferred; } public int getDownloadType() { return downloadType; } public String getExpectedHash() { return expectedHash; } public String getFileIdentifier() { return fileIdentifier; } public int getFileSize() { return fileSize; } public int getId() { return id; } public long getLastUpdated() { return lastUpdated; } public FileTransferObserver getObserver() { return observer; } public int getPausedReason() { return reason; } public long getProcessUpdateStartTime() { return processUpdateStartTime; } public int getStatus() { return status; } public int getUpdateRetryCount() { return updateRetryCount; } public int getUpdateStatus() { return updateStatus; } public Cursor handleCustomUriQuery(Uri uri, String as[], String s, String as1[], String s1) { return null; } public int hashCode() { return (new HashCodeBuilder(17, 37)).append(fileIdentifier).append(bytesTransferred).append(fileSize).append(status).append(id).append(lastUpdated).append(downloadType).append(expectedHash).append(actualHash).append(updateStatus).append(reason).append(processUpdateStartTime).append(updateRetryCount).toHashCode(); } public String indexColumn() { return "_id"; } public List recordFields() { return recordFields; } public void removeTransfer(ContentResolver contentresolver) { ALog.v("removeTransfer", new Object[0]); contentresolver.delete(DatabaseRecordMixins.baseUriForTable(staticFactory()).buildUpon().appendPath(Integer.toString(id)).build(), null, null); } public void setActualHash(String s) { actualHash = s; } public void setBytesTransferred(int i) { bytesTransferred = i; } public void setDownloadType(int i) { downloadType = i; } public void setExpectedHash(String s) { expectedHash = s; } public void setFileIdentifier(String s) { fileIdentifier = s; } public void setFileSize(int i) { fileSize = i; } public void setId(int i) { id = i; } public void setLastUpdated(long l) { lastUpdated = l; } public void setObserver(FileTransferObserver filetransferobserver) { observer = filetransferobserver; } public void setPausedReason(int i) { reason = i; } public void setProcessUpdateStartTime(long l) { processUpdateStartTime = l; } public void setProcessingAndUpdateRetryCount(ContentResolver contentresolver) { ALog.d("WatchTransfer: setProcessing called", new Object[0]); setUpdateStatus(1); updateRetryCount = updateRetryCount + 1; setProcessUpdateStartTime(System.currentTimeMillis()); update(contentresolver); } public void setStatus(int i) { status = i; } public void setUpdateRetryCount(int i) { updateRetryCount = i; } public void setUpdateStatus(int i) { updateStatus = i; } public String tableName() { return "file_transfers"; } public Uri tableUri() { return DatabaseRecordMixins.baseUriForTable(factory()); } public String toString() { return (new StringBuilder()).append("FileTransfer{actualHash='").append(actualHash).append('\'').append(", fileIdentifier='").append(fileIdentifier).append('\'').append(", bytesTransferred=").append(bytesTransferred).append(", fileSize=").append(fileSize).append(", status=").append(status).append(", id=").append(id).append(", lastUpdated=").append(lastUpdated).append(", downloadType=").append(downloadType).append(", expectedHash='").append(expectedHash).append('\'').append(", updateStatus=").append(updateStatus).append(", processUpdateStartTime=").append(processUpdateStartTime).append(", updateRetryCount=").append(updateRetryCount).append('}').toString(); } public int update(ContentResolver contentresolver) { ALog.v("WatchTransfer: update called. %s", new Object[] { toString() }); return contentresolver.update(DatabaseRecordMixins.baseUriForTable(staticFactory()).buildUpon().appendPath(Integer.toString(getId())).build(), DatabaseRecordMixins.valuesForRecord(this), null, null); } static { recordFields = new LinkedList(); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setId(cursor.getInt(0)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "_id"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setBytesTransferred(cursor.getInt(1)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "bytes_transferred"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getBytesTransferred())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setFileSize(cursor.getInt(2)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "file_size"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getFileSize())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setStatus(cursor.getInt(3)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "status"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getStatus())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setFileIdentifier(cursor.getString(4)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "file_identifier"; } public String createType() { return "TEXT"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), filetransfer.getFileIdentifier()); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setLastUpdated(cursor.getLong(5)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "last_updated"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Long.valueOf(filetransfer.getLastUpdated())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setDownloadType(cursor.getInt(6)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "download_type"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getDownloadType())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setObserver((FileTransferObserver)Utilities.decode(cursor.getBlob(7))); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "observer"; } public String createType() { return "BLOB"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Utilities.encodeWithSerialization(filetransfer.getObserver())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setExpectedHash(cursor.getString(8)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "expected_hash"; } public String createType() { return "TEXT"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), filetransfer.getExpectedHash()); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setActualHash(cursor.getString(9)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "actual_hash"; } public String createType() { return "TEXT"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), filetransfer.getActualHash()); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setUpdateStatus(cursor.getInt(10)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "update_status"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getUpdateStatus())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setProcessUpdateStartTime(cursor.getLong(11)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "process_update_start_time"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Long.valueOf(filetransfer.getProcessUpdateStartTime())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setUpdateRetryCount(cursor.getInt(12)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "process_update_retry_count"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getUpdateRetryCount())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); recordFields.add(new com.olio.olios.model.record.DatabaseRecord.RecordField() { public void assignFromCursor(FileTransfer filetransfer, Cursor cursor) { filetransfer.setPausedReason(cursor.getInt(13)); } public volatile void assignFromCursor(Object obj, Cursor cursor) { assignFromCursor((FileTransfer)obj, cursor); } public String columnName() { return "paused_reason"; } public String createType() { return "INTEGER"; } public void writeToContentValues(FileTransfer filetransfer, ContentValues contentvalues) { contentvalues.put(columnName(), Integer.valueOf(filetransfer.getPausedReason())); } public volatile void writeToContentValues(Object obj, ContentValues contentvalues) { writeToContentValues((FileTransfer)obj, contentvalues); } }); columnProjection = DatabaseRecordMixins.columnProjectionFromRecordFields(recordFields); } }