package com.liulishuo.filedownloader.database; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.text.TextUtils; import android.util.SparseArray; import com.liulishuo.filedownloader.database.FileDownloadDatabase; import com.liulishuo.filedownloader.model.ConnectionModel; import com.liulishuo.filedownloader.model.FileDownloadModel; import com.liulishuo.filedownloader.util.FileDownloadHelper; import com.liulishuo.filedownloader.util.FileDownloadLog; import com.liulishuo.filedownloader.util.FileDownloadUtils; import com.ubt.jimu.controller.data.widget.JockstickDataConverter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* loaded from: classes.dex */ public class SqliteDatabaseImpl implements FileDownloadDatabase { private final SQLiteDatabase a = new SqliteDatabaseOpenHelper(FileDownloadHelper.a()).getWritableDatabase(); public class Maintainer implements FileDownloadDatabase.Maintainer { private final SparseArray a; private MaintainerIterator b; private final SparseArray c; private final SparseArray> d; Maintainer(SqliteDatabaseImpl sqliteDatabaseImpl) { this(null, null); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase.Maintainer public void a(int i, FileDownloadModel fileDownloadModel) { this.a.put(i, fileDownloadModel); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase.Maintainer public void a(FileDownloadModel fileDownloadModel) { } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase.Maintainer public void b(FileDownloadModel fileDownloadModel) { SparseArray sparseArray = this.c; if (sparseArray != null) { sparseArray.put(fileDownloadModel.getId(), fileDownloadModel); } } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase.Maintainer public void c() { MaintainerIterator maintainerIterator = this.b; if (maintainerIterator != null) { maintainerIterator.a(); } int size = this.a.size(); if (size < 0) { return; } SqliteDatabaseImpl.this.a.beginTransaction(); for (int i = 0; i < size; i++) { try { int keyAt = this.a.keyAt(i); FileDownloadModel fileDownloadModel = this.a.get(keyAt); SqliteDatabaseImpl.this.a.delete("filedownloader", "_id = ?", new String[]{String.valueOf(keyAt)}); SqliteDatabaseImpl.this.a.insert("filedownloader", null, fileDownloadModel.toContentValues()); if (fileDownloadModel.getConnectionCount() > 1) { List d = SqliteDatabaseImpl.this.d(keyAt); if (d.size() > 0) { SqliteDatabaseImpl.this.a.delete("filedownloaderConnection", "id = ?", new String[]{String.valueOf(keyAt)}); for (ConnectionModel connectionModel : d) { connectionModel.a(fileDownloadModel.getId()); SqliteDatabaseImpl.this.a.insert("filedownloaderConnection", null, connectionModel.f()); } } } } finally { SqliteDatabaseImpl.this.a.endTransaction(); } } if (this.c != null && this.d != null) { int size2 = this.c.size(); for (int i2 = 0; i2 < size2; i2++) { int id = this.c.valueAt(i2).getId(); List d2 = SqliteDatabaseImpl.this.d(id); if (d2 != null && d2.size() > 0) { this.d.put(id, d2); } } } SqliteDatabaseImpl.this.a.setTransactionSuccessful(); } @Override // java.lang.Iterable public Iterator iterator() { MaintainerIterator maintainerIterator = SqliteDatabaseImpl.this.new MaintainerIterator(); this.b = maintainerIterator; return maintainerIterator; } Maintainer(SparseArray sparseArray, SparseArray> sparseArray2) { this.a = new SparseArray<>(); this.c = sparseArray; this.d = sparseArray2; } } class MaintainerIterator implements Iterator { private final Cursor a; private final List b = new ArrayList(); private int c; MaintainerIterator() { this.a = SqliteDatabaseImpl.this.a.rawQuery("SELECT * FROM filedownloader", null); } void a() { this.a.close(); if (this.b.isEmpty()) { return; } String join = TextUtils.join(", ", this.b); if (FileDownloadLog.a) { FileDownloadLog.a(this, "delete %s", join); } SqliteDatabaseImpl.this.a.execSQL(FileDownloadUtils.a("DELETE FROM %s WHERE %s IN (%s);", "filedownloader", FileDownloadModel.ID, join)); SqliteDatabaseImpl.this.a.execSQL(FileDownloadUtils.a("DELETE FROM %s WHERE %s IN (%s);", "filedownloaderConnection", JockstickDataConverter.ID, join)); } @Override // java.util.Iterator public boolean hasNext() { return this.a.moveToNext(); } @Override // java.util.Iterator public void remove() { this.b.add(Integer.valueOf(this.c)); } /* JADX WARN: Can't rename method to resolve collision */ @Override // java.util.Iterator public FileDownloadModel next() { FileDownloadModel b = SqliteDatabaseImpl.b(this.a); this.c = b.getId(); return b; } } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i) { } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void b(int i) { this.a.execSQL("DELETE FROM filedownloaderConnection WHERE id = " + i); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void c(int i) { } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void c(int i, long j) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.STATUS, (Byte) (byte) -2); contentValues.put(FileDownloadModel.SOFAR, Long.valueOf(j)); a(i, contentValues); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void clear() { this.a.delete("filedownloader", null, null); this.a.delete("filedownloaderConnection", null, null); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public List d(int i) { ArrayList arrayList = new ArrayList(); Cursor cursor = null; try { cursor = this.a.rawQuery(FileDownloadUtils.a("SELECT * FROM %s WHERE %s = ?", "filedownloaderConnection", JockstickDataConverter.ID), new String[]{Integer.toString(i)}); while (cursor.moveToNext()) { ConnectionModel connectionModel = new ConnectionModel(); connectionModel.a(i); connectionModel.b(cursor.getInt(cursor.getColumnIndex("connectionIndex"))); connectionModel.c(cursor.getLong(cursor.getColumnIndex("startOffset"))); connectionModel.a(cursor.getLong(cursor.getColumnIndex("currentOffset"))); connectionModel.b(cursor.getLong(cursor.getColumnIndex("endOffset"))); arrayList.add(connectionModel); } return arrayList; } finally { if (cursor != null) { cursor.close(); } } } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public FileDownloadModel e(int i) { Cursor rawQuery; Cursor cursor = null; try { rawQuery = this.a.rawQuery(FileDownloadUtils.a("SELECT * FROM %s WHERE %s = ?", "filedownloader", FileDownloadModel.ID), new String[]{Integer.toString(i)}); } catch (Throwable th) { th = th; } try { if (!rawQuery.moveToNext()) { if (rawQuery != null) { rawQuery.close(); } return null; } FileDownloadModel b = b(rawQuery); if (rawQuery != null) { rawQuery.close(); } return b; } catch (Throwable th2) { cursor = rawQuery; th = th2; if (cursor != null) { cursor.close(); } throw th; } } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public boolean remove(int i) { return this.a.delete("filedownloader", "_id = ?", new String[]{String.valueOf(i)}) != 0; } public void b(FileDownloadModel fileDownloadModel) { this.a.insert("filedownloader", null, fileDownloadModel.toContentValues()); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(ConnectionModel connectionModel) { this.a.insert("filedownloaderConnection", null, connectionModel.f()); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void b(int i, long j) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.STATUS, (Byte) (byte) 3); contentValues.put(FileDownloadModel.SOFAR, Long.valueOf(j)); a(i, contentValues); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, int i2, long j) { ContentValues contentValues = new ContentValues(); contentValues.put("currentOffset", Long.valueOf(j)); this.a.update("filedownloaderConnection", contentValues, "id = ? AND connectionIndex = ?", new String[]{Integer.toString(i), Integer.toString(i2)}); } /* JADX INFO: Access modifiers changed from: private */ public static FileDownloadModel b(Cursor cursor) { FileDownloadModel fileDownloadModel = new FileDownloadModel(); fileDownloadModel.setId(cursor.getInt(cursor.getColumnIndex(FileDownloadModel.ID))); fileDownloadModel.setUrl(cursor.getString(cursor.getColumnIndex("url"))); fileDownloadModel.setPath(cursor.getString(cursor.getColumnIndex(FileDownloadModel.PATH)), cursor.getShort(cursor.getColumnIndex(FileDownloadModel.PATH_AS_DIRECTORY)) == 1); fileDownloadModel.setStatus((byte) cursor.getShort(cursor.getColumnIndex(FileDownloadModel.STATUS))); fileDownloadModel.setSoFar(cursor.getLong(cursor.getColumnIndex(FileDownloadModel.SOFAR))); fileDownloadModel.setTotal(cursor.getLong(cursor.getColumnIndex(FileDownloadModel.TOTAL))); fileDownloadModel.setErrMsg(cursor.getString(cursor.getColumnIndex(FileDownloadModel.ERR_MSG))); fileDownloadModel.setETag(cursor.getString(cursor.getColumnIndex(FileDownloadModel.ETAG))); fileDownloadModel.setFilename(cursor.getString(cursor.getColumnIndex(FileDownloadModel.FILENAME))); fileDownloadModel.setConnectionCount(cursor.getInt(cursor.getColumnIndex(FileDownloadModel.CONNECTION_COUNT))); return fileDownloadModel; } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, int i2) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.CONNECTION_COUNT, Integer.valueOf(i2)); this.a.update("filedownloader", contentValues, "_id = ? ", new String[]{Integer.toString(i)}); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(FileDownloadModel fileDownloadModel) { if (fileDownloadModel == null) { FileDownloadLog.e(this, "update but model == null!", new Object[0]); } else if (e(fileDownloadModel.getId()) != null) { this.a.update("filedownloader", fileDownloadModel.toContentValues(), "_id = ? ", new String[]{String.valueOf(fileDownloadModel.getId())}); } else { b(fileDownloadModel); } } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, String str, long j, long j2, int i2) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.SOFAR, Long.valueOf(j)); contentValues.put(FileDownloadModel.TOTAL, Long.valueOf(j2)); contentValues.put(FileDownloadModel.ETAG, str); contentValues.put(FileDownloadModel.CONNECTION_COUNT, Integer.valueOf(i2)); a(i, contentValues); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, long j, String str, String str2) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.STATUS, (Byte) (byte) 2); contentValues.put(FileDownloadModel.TOTAL, Long.valueOf(j)); contentValues.put(FileDownloadModel.ETAG, str); contentValues.put(FileDownloadModel.FILENAME, str2); a(i, contentValues); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, Throwable th, long j) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.ERR_MSG, th.toString()); contentValues.put(FileDownloadModel.STATUS, (Byte) (byte) -1); contentValues.put(FileDownloadModel.SOFAR, Long.valueOf(j)); a(i, contentValues); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, Throwable th) { ContentValues contentValues = new ContentValues(); contentValues.put(FileDownloadModel.ERR_MSG, th.toString()); contentValues.put(FileDownloadModel.STATUS, (Byte) (byte) 5); a(i, contentValues); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public void a(int i, long j) { remove(i); } @Override // com.liulishuo.filedownloader.database.FileDownloadDatabase public FileDownloadDatabase.Maintainer a() { return new Maintainer(this); } public FileDownloadDatabase.Maintainer a(SparseArray sparseArray, SparseArray> sparseArray2) { return new Maintainer(sparseArray, sparseArray2); } private void a(int i, ContentValues contentValues) { this.a.update("filedownloader", contentValues, "_id = ? ", new String[]{String.valueOf(i)}); } }