package androidx.room.util; import android.database.Cursor; import androidx.media3.exoplayer.upstream.CmcdConfiguration; import androidx.room.util.TableInfo; import androidx.sqlite.db.SupportSQLiteDatabase; import io.sentry.Session; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; import kotlin.Metadata; import kotlin.collections.CollectionsKt; import kotlin.collections.MapsKt; import kotlin.collections.SetsKt; import kotlin.io.CloseableKt; import kotlin.jvm.internal.Intrinsics; /* compiled from: TableInfo.kt */ @Metadata(d1 = {"\u0000H\n\u0000\n\u0002\u0010$\n\u0002\u0010\u000e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\"\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\u001a$\u0010\u0000\u001a\u000e\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u00030\u00012\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0002H\u0002\u001a\u0016\u0010\u0007\u001a\b\u0012\u0004\u0012\u00020\t0\b2\u0006\u0010\n\u001a\u00020\u000bH\u0002\u001a\u001e\u0010\f\u001a\b\u0012\u0004\u0012\u00020\u000e0\r2\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0002H\u0002\u001a\"\u0010\u000f\u001a\u0004\u0018\u00010\u00102\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0011\u001a\u00020\u00022\u0006\u0010\u0012\u001a\u00020\u0013H\u0002\u001a \u0010\u0014\u001a\n\u0012\u0004\u0012\u00020\u0010\u0018\u00010\r2\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0002H\u0002\u001a\u0018\u0010\u0015\u001a\u00020\u00162\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u0002H\u0000ยจ\u0006\u0017"}, d2 = {"readColumns", "", "", "Landroidx/room/util/TableInfo$Column;", "database", "Landroidx/sqlite/db/SupportSQLiteDatabase;", "tableName", "readForeignKeyFieldMappings", "", "Landroidx/room/util/TableInfo$ForeignKeyWithSequence;", "cursor", "Landroid/database/Cursor;", "readForeignKeys", "", "Landroidx/room/util/TableInfo$ForeignKey;", "readIndex", "Landroidx/room/util/TableInfo$Index;", "name", "unique", "", "readIndices", "readTableInfo", "Landroidx/room/util/TableInfo;", "room-runtime_release"}, k = 2, mv = {1, 7, 1}, xi = 48) /* loaded from: classes2.dex */ public final class TableInfoKt { public static final TableInfo readTableInfo(SupportSQLiteDatabase database, String tableName) { Intrinsics.checkNotNullParameter(database, "database"); Intrinsics.checkNotNullParameter(tableName, "tableName"); return new TableInfo(tableName, readColumns(database, tableName), readForeignKeys(database, tableName), readIndices(database, tableName)); } private static final Set readForeignKeys(SupportSQLiteDatabase supportSQLiteDatabase, String str) { Cursor query = supportSQLiteDatabase.query("PRAGMA foreign_key_list(`" + str + "`)"); try { Cursor cursor = query; int columnIndex = cursor.getColumnIndex("id"); int columnIndex2 = cursor.getColumnIndex(Session.JsonKeys.SEQ); int columnIndex3 = cursor.getColumnIndex("table"); int columnIndex4 = cursor.getColumnIndex("on_delete"); int columnIndex5 = cursor.getColumnIndex("on_update"); List readForeignKeyFieldMappings = readForeignKeyFieldMappings(cursor); cursor.moveToPosition(-1); Set createSetBuilder = SetsKt.createSetBuilder(); while (cursor.moveToNext()) { if (cursor.getInt(columnIndex2) == 0) { int i = cursor.getInt(columnIndex); ArrayList arrayList = new ArrayList(); ArrayList arrayList2 = new ArrayList(); ArrayList arrayList3 = new ArrayList(); for (Object obj : readForeignKeyFieldMappings) { if (((TableInfo.ForeignKeyWithSequence) obj).getId() == i) { arrayList3.add(obj); } } for (TableInfo.ForeignKeyWithSequence foreignKeyWithSequence : arrayList3) { arrayList.add(foreignKeyWithSequence.getFrom()); arrayList2.add(foreignKeyWithSequence.getTo()); } String string = cursor.getString(columnIndex3); Intrinsics.checkNotNullExpressionValue(string, "cursor.getString(tableColumnIndex)"); String string2 = cursor.getString(columnIndex4); Intrinsics.checkNotNullExpressionValue(string2, "cursor.getString(onDeleteColumnIndex)"); String string3 = cursor.getString(columnIndex5); Intrinsics.checkNotNullExpressionValue(string3, "cursor.getString(onUpdateColumnIndex)"); createSetBuilder.add(new TableInfo.ForeignKey(string, string2, string3, arrayList, arrayList2)); } } Set build = SetsKt.build(createSetBuilder); CloseableKt.closeFinally(query, null); return build; } finally { } } private static final List readForeignKeyFieldMappings(Cursor cursor) { int columnIndex = cursor.getColumnIndex("id"); int columnIndex2 = cursor.getColumnIndex(Session.JsonKeys.SEQ); int columnIndex3 = cursor.getColumnIndex("from"); int columnIndex4 = cursor.getColumnIndex("to"); List createListBuilder = CollectionsKt.createListBuilder(); while (cursor.moveToNext()) { int i = cursor.getInt(columnIndex); int i2 = cursor.getInt(columnIndex2); String string = cursor.getString(columnIndex3); Intrinsics.checkNotNullExpressionValue(string, "cursor.getString(fromColumnIndex)"); String string2 = cursor.getString(columnIndex4); Intrinsics.checkNotNullExpressionValue(string2, "cursor.getString(toColumnIndex)"); createListBuilder.add(new TableInfo.ForeignKeyWithSequence(i, i2, string, string2)); } return CollectionsKt.sorted(CollectionsKt.build(createListBuilder)); } private static final Map readColumns(SupportSQLiteDatabase supportSQLiteDatabase, String str) { Cursor query = supportSQLiteDatabase.query("PRAGMA table_info(`" + str + "`)"); try { Cursor cursor = query; if (cursor.getColumnCount() <= 0) { Map emptyMap = MapsKt.emptyMap(); CloseableKt.closeFinally(query, null); return emptyMap; } int columnIndex = cursor.getColumnIndex("name"); int columnIndex2 = cursor.getColumnIndex("type"); int columnIndex3 = cursor.getColumnIndex("notnull"); int columnIndex4 = cursor.getColumnIndex("pk"); int columnIndex5 = cursor.getColumnIndex("dflt_value"); Map createMapBuilder = MapsKt.createMapBuilder(); while (cursor.moveToNext()) { String name = cursor.getString(columnIndex); String type = cursor.getString(columnIndex2); boolean z = cursor.getInt(columnIndex3) != 0; int i = cursor.getInt(columnIndex4); String string = cursor.getString(columnIndex5); Intrinsics.checkNotNullExpressionValue(name, "name"); Intrinsics.checkNotNullExpressionValue(type, "type"); createMapBuilder.put(name, new TableInfo.Column(name, type, z, i, string, 2)); } Map build = MapsKt.build(createMapBuilder); CloseableKt.closeFinally(query, null); return build; } catch (Throwable th) { try { throw th; } catch (Throwable th2) { CloseableKt.closeFinally(query, th); throw th2; } } } private static final Set readIndices(SupportSQLiteDatabase supportSQLiteDatabase, String str) { Cursor query = supportSQLiteDatabase.query("PRAGMA index_list(`" + str + "`)"); try { Cursor cursor = query; int columnIndex = cursor.getColumnIndex("name"); int columnIndex2 = cursor.getColumnIndex("origin"); int columnIndex3 = cursor.getColumnIndex("unique"); if (columnIndex != -1 && columnIndex2 != -1 && columnIndex3 != -1) { Set createSetBuilder = SetsKt.createSetBuilder(); while (cursor.moveToNext()) { if (Intrinsics.areEqual("c", cursor.getString(columnIndex2))) { String name = cursor.getString(columnIndex); boolean z = true; if (cursor.getInt(columnIndex3) != 1) { z = false; } Intrinsics.checkNotNullExpressionValue(name, "name"); TableInfo.Index readIndex = readIndex(supportSQLiteDatabase, name, z); if (readIndex == null) { CloseableKt.closeFinally(query, null); return null; } createSetBuilder.add(readIndex); } } Set build = SetsKt.build(createSetBuilder); CloseableKt.closeFinally(query, null); return build; } CloseableKt.closeFinally(query, null); return null; } finally { } } private static final TableInfo.Index readIndex(SupportSQLiteDatabase supportSQLiteDatabase, String str, boolean z) { Cursor query = supportSQLiteDatabase.query("PRAGMA index_xinfo(`" + str + "`)"); try { Cursor cursor = query; int columnIndex = cursor.getColumnIndex("seqno"); int columnIndex2 = cursor.getColumnIndex(CmcdConfiguration.KEY_CONTENT_ID); int columnIndex3 = cursor.getColumnIndex("name"); int columnIndex4 = cursor.getColumnIndex("desc"); if (columnIndex != -1 && columnIndex2 != -1 && columnIndex3 != -1 && columnIndex4 != -1) { TreeMap treeMap = new TreeMap(); TreeMap treeMap2 = new TreeMap(); while (cursor.moveToNext()) { if (cursor.getInt(columnIndex2) >= 0) { int i = cursor.getInt(columnIndex); String columnName = cursor.getString(columnIndex3); String str2 = cursor.getInt(columnIndex4) > 0 ? "DESC" : "ASC"; Integer valueOf = Integer.valueOf(i); Intrinsics.checkNotNullExpressionValue(columnName, "columnName"); treeMap.put(valueOf, columnName); treeMap2.put(Integer.valueOf(i), str2); } } Collection values = treeMap.values(); Intrinsics.checkNotNullExpressionValue(values, "columnsMap.values"); List list = CollectionsKt.toList(values); Collection values2 = treeMap2.values(); Intrinsics.checkNotNullExpressionValue(values2, "ordersMap.values"); TableInfo.Index index = new TableInfo.Index(str, z, list, CollectionsKt.toList(values2)); CloseableKt.closeFinally(query, null); return index; } CloseableKt.closeFinally(query, null); return null; } finally { } } }