DataBaseEventsStorage.smali

.class public Lcom/ironsource/eventsmodule/DataBaseEventsStorage;
.super Landroid/database/sqlite/SQLiteOpenHelper;


# static fields
.field private static f:Lcom/ironsource/eventsmodule/DataBaseEventsStorage;


# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;I)V
    .registers 5

    const/4 v0, 0x0

    invoke-direct {p0, p1, p2, v0, p3}, Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V

    return-void
.end method

.method private b(Lcom/ironsource/eventsmodule/EventData;Ljava/lang/String;)Landroid/content/ContentValues;
    .registers 6

    if-eqz p1, :cond_31

    new-instance v0, Landroid/content/ContentValues;

    const/4 v1, 0x4

    invoke-direct {v0, v1}, Landroid/content/ContentValues;-><init>(I)V

    invoke-virtual {p1}, Lcom/ironsource/eventsmodule/EventData;->d()I

    move-result v1

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    const-string v2, "eventid"

    invoke-virtual {v0, v2, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V

    invoke-virtual {p1}, Lcom/ironsource/eventsmodule/EventData;->e()J

    move-result-wide v1

    invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v1

    const-string v2, "timestamp"

    invoke-virtual {v0, v2, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V

    const-string v1, "type"

    invoke-virtual {v0, v1, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V

    invoke-virtual {p1}, Lcom/ironsource/eventsmodule/EventData;->b()Ljava/lang/String;

    move-result-object p1

    const-string p2, "data"

    invoke-virtual {v0, p2, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_32

    :cond_31
    const/4 v0, 0x0

    :goto_32
    return-object v0
.end method

.method private declared-synchronized d(Z)Landroid/database/sqlite/SQLiteDatabase;
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Throwable;
        }
    .end annotation

    monitor-enter p0

    const/4 v0, 0x0

    :goto_2
    if-eqz p1, :cond_a

    :try_start_4
    invoke-virtual {p0}, Landroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object p1
    :try_end_8
    .catchall {:try_start_4 .. :try_end_8} :catchall_10

    monitor-exit p0

    return-object p1

    :cond_a
    :try_start_a
    invoke-virtual {p0}, Landroid/database/sqlite/SQLiteOpenHelper;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object p1
    :try_end_e
    .catchall {:try_start_a .. :try_end_e} :catchall_10

    monitor-exit p0

    return-object p1

    :catchall_10
    move-exception v1

    add-int/lit8 v0, v0, 0x1

    const/4 v2, 0x4

    if-ge v0, v2, :cond_1f

    mul-int/lit16 v1, v0, 0x190

    int-to-long v1, v1

    :try_start_19
    invoke-static {v1, v2}, Landroid/os/SystemClock;->sleep(J)V

    goto :goto_2

    :catchall_1d
    move-exception p1

    goto :goto_20

    :cond_1f
    throw v1
    :try_end_20
    .catchall {:try_start_19 .. :try_end_20} :catchall_1d

    :goto_20
    monitor-exit p0

    throw p1
.end method

.method public static declared-synchronized e(Landroid/content/Context;Ljava/lang/String;I)Lcom/ironsource/eventsmodule/DataBaseEventsStorage;
    .registers 5

    const-class v0, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;

    monitor-enter v0

    :try_start_3
    sget-object v1, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->f:Lcom/ironsource/eventsmodule/DataBaseEventsStorage;

    if-nez v1, :cond_e

    new-instance v1, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;

    invoke-direct {v1, p0, p1, p2}, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;-><init>(Landroid/content/Context;Ljava/lang/String;I)V

    sput-object v1, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->f:Lcom/ironsource/eventsmodule/DataBaseEventsStorage;

    :cond_e
    sget-object p0, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->f:Lcom/ironsource/eventsmodule/DataBaseEventsStorage;
    :try_end_10
    .catchall {:try_start_3 .. :try_end_10} :catchall_12

    monitor-exit v0

    return-object p0

    :catchall_12
    move-exception p0

    monitor-exit v0

    throw p0
.end method


# virtual methods
.method public declared-synchronized a(Ljava/lang/String;)V
    .registers 7

    monitor-enter p0

    const/4 v0, 0x0

    :try_start_2
    const-string v1, "type = ?"

    const/4 v2, 0x1

    new-array v3, v2, [Ljava/lang/String;

    const/4 v4, 0x0

    aput-object p1, v3, v4
    :try_end_a
    .catchall {:try_start_2 .. :try_end_a} :catchall_3f

    :try_start_a
    invoke-direct {p0, v2}, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->d(Z)Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    const-string p1, "events"

    invoke-virtual {v0, p1, v1, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
    :try_end_13
    .catchall {:try_start_a .. :try_end_13} :catchall_1f

    if-eqz v0, :cond_30

    :try_start_15
    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p1

    if-eqz p1, :cond_30

    :goto_1b
    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
    :try_end_1e
    .catchall {:try_start_15 .. :try_end_1e} :catchall_3f

    goto :goto_30

    :catchall_1f
    move-exception p1

    :try_start_20
    const-string v1, "IronSource"

    const-string v2, "Exception while clearing events: "

    invoke-static {v1, v2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    :try_end_27
    .catchall {:try_start_20 .. :try_end_27} :catchall_32

    if-eqz v0, :cond_30

    :try_start_29
    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p1
    :try_end_2d
    .catchall {:try_start_29 .. :try_end_2d} :catchall_3f

    if-eqz p1, :cond_30

    goto :goto_1b

    :cond_30
    :goto_30
    monitor-exit p0

    return-void

    :catchall_32
    move-exception p1

    if-eqz v0, :cond_3e

    :try_start_35
    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result v1

    if-eqz v1, :cond_3e

    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V

    :cond_3e
    throw p1
    :try_end_3f
    .catchall {:try_start_35 .. :try_end_3f} :catchall_3f

    :catchall_3f
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public declared-synchronized f(Ljava/lang/String;)Ljava/util/ArrayList;
    .registers 14
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            ")",
            "Ljava/util/ArrayList<",
            "Lcom/ironsource/eventsmodule/EventData;",
            ">;"
        }
    .end annotation

    monitor-enter p0

    :try_start_1
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
    :try_end_6
    .catchall {:try_start_1 .. :try_end_6} :catchall_b0

    const/4 v1, 0x0

    const/4 v2, 0x0

    :try_start_8
    invoke-direct {p0, v1}, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->d(Z)Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v11
    :try_end_c
    .catchall {:try_start_8 .. :try_end_c} :catchall_79

    :try_start_c
    const-string v6, "type = ?"

    const/4 v3, 0x1

    new-array v7, v3, [Ljava/lang/String;

    aput-object p1, v7, v1

    const-string v10, "timestamp ASC"

    const-string v4, "events"

    const/4 v5, 0x0

    const/4 v8, 0x0

    const/4 v9, 0x0

    move-object v3, v11

    invoke-virtual/range {v3 .. v10}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;

    move-result-object v2

    invoke-interface {v2}, Landroid/database/Cursor;->getCount()I

    move-result p1

    if-lez p1, :cond_60

    invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z

    :goto_28
    invoke-interface {v2}, Landroid/database/Cursor;->isAfterLast()Z

    move-result p1

    if-nez p1, :cond_5d

    const-string p1, "eventid"

    invoke-interface {v2, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I

    move-result p1

    invoke-interface {v2, p1}, Landroid/database/Cursor;->getInt(I)I

    move-result p1

    const-string v1, "timestamp"

    invoke-interface {v2, v1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I

    move-result v1

    invoke-interface {v2, v1}, Landroid/database/Cursor;->getLong(I)J

    move-result-wide v3

    const-string v1, "data"

    invoke-interface {v2, v1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I

    move-result v1

    invoke-interface {v2, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;

    move-result-object v1

    new-instance v5, Lcom/ironsource/eventsmodule/EventData;

    new-instance v6, Lorg/json/JSONObject;

    invoke-direct {v6, v1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V

    invoke-direct {v5, p1, v3, v4, v6}, Lcom/ironsource/eventsmodule/EventData;-><init>(IJLorg/json/JSONObject;)V

    invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z

    goto :goto_28

    :cond_5d
    invoke-interface {v2}, Landroid/database/Cursor;->close()V
    :try_end_60
    .catchall {:try_start_c .. :try_end_60} :catchall_77

    :cond_60
    if-eqz v2, :cond_6b

    :try_start_62
    invoke-interface {v2}, Landroid/database/Cursor;->isClosed()Z

    move-result p1

    if-nez p1, :cond_6b

    invoke-interface {v2}, Landroid/database/Cursor;->close()V

    :cond_6b
    if-eqz v11, :cond_96

    invoke-virtual {v11}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p1

    if-eqz p1, :cond_96

    :goto_73
    invoke-virtual {v11}, Landroid/database/sqlite/SQLiteDatabase;->close()V
    :try_end_76
    .catchall {:try_start_62 .. :try_end_76} :catchall_b0

    goto :goto_96

    :catchall_77
    move-exception p1

    goto :goto_7b

    :catchall_79
    move-exception p1

    move-object v11, v2

    :goto_7b
    :try_start_7b
    const-string v1, "IronSource"

    const-string v3, "Exception while loading events: "

    invoke-static {v1, v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    :try_end_82
    .catchall {:try_start_7b .. :try_end_82} :catchall_98

    if-eqz v2, :cond_8d

    :try_start_84
    invoke-interface {v2}, Landroid/database/Cursor;->isClosed()Z

    move-result p1

    if-nez p1, :cond_8d

    invoke-interface {v2}, Landroid/database/Cursor;->close()V

    :cond_8d
    if-eqz v11, :cond_96

    invoke-virtual {v11}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p1
    :try_end_93
    .catchall {:try_start_84 .. :try_end_93} :catchall_b0

    if-eqz p1, :cond_96

    goto :goto_73

    :cond_96
    :goto_96
    monitor-exit p0

    return-object v0

    :catchall_98
    move-exception p1

    if-eqz v2, :cond_a4

    :try_start_9b
    invoke-interface {v2}, Landroid/database/Cursor;->isClosed()Z

    move-result v0

    if-nez v0, :cond_a4

    invoke-interface {v2}, Landroid/database/Cursor;->close()V

    :cond_a4
    if-eqz v11, :cond_af

    invoke-virtual {v11}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result v0

    if-eqz v0, :cond_af

    invoke-virtual {v11}, Landroid/database/sqlite/SQLiteDatabase;->close()V

    :cond_af
    throw p1
    :try_end_b0
    .catchall {:try_start_9b .. :try_end_b0} :catchall_b0

    :catchall_b0
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public declared-synchronized g(Ljava/util/List;Ljava/lang/String;)V
    .registers 7
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Lcom/ironsource/eventsmodule/EventData;",
            ">;",
            "Ljava/lang/String;",
            ")V"
        }
    .end annotation

    monitor-enter p0

    if-eqz p1, :cond_62

    :try_start_3
    invoke-interface {p1}, Ljava/util/List;->isEmpty()Z

    move-result v0
    :try_end_7
    .catchall {:try_start_3 .. :try_end_7} :catchall_5f

    if-eqz v0, :cond_a

    goto :goto_62

    :cond_a
    const/4 v0, 0x1

    const/4 v1, 0x0

    :try_start_c
    invoke-direct {p0, v0}, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->d(Z)Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0
    :try_end_10
    .catchall {:try_start_c .. :try_end_10} :catchall_3d

    :try_start_10
    invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :cond_14
    :goto_14
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_2e

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/ironsource/eventsmodule/EventData;

    invoke-direct {p0, v2, p2}, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->b(Lcom/ironsource/eventsmodule/EventData;Ljava/lang/String;)Landroid/content/ContentValues;

    move-result-object v2

    if-eqz v0, :cond_14

    if-eqz v2, :cond_14

    const-string v3, "events"

    invoke-virtual {v0, v3, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
    :try_end_2d
    .catchall {:try_start_10 .. :try_end_2d} :catchall_3a

    goto :goto_14

    :cond_2e
    if-eqz v0, :cond_50

    :try_start_30
    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p1

    if-eqz p1, :cond_50

    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
    :try_end_39
    .catchall {:try_start_30 .. :try_end_39} :catchall_5f

    goto :goto_50

    :catchall_3a
    move-exception p1

    move-object v1, v0

    goto :goto_3e

    :catchall_3d
    move-exception p1

    :goto_3e
    :try_start_3e
    const-string p2, "IronSource"

    const-string v0, "Exception while saving events: "

    invoke-static {p2, v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    :try_end_45
    .catchall {:try_start_3e .. :try_end_45} :catchall_52

    if-eqz v1, :cond_50

    :try_start_47
    invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p1

    if-eqz p1, :cond_50

    invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
    :try_end_50
    .catchall {:try_start_47 .. :try_end_50} :catchall_5f

    :cond_50
    :goto_50
    monitor-exit p0

    return-void

    :catchall_52
    move-exception p1

    if-eqz v1, :cond_5e

    :try_start_55
    invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z

    move-result p2

    if-eqz p2, :cond_5e

    invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->close()V

    :cond_5e
    throw p1
    :try_end_5f
    .catchall {:try_start_55 .. :try_end_5f} :catchall_5f

    :catchall_5f
    move-exception p1

    monitor-exit p0

    throw p1

    :cond_62
    :goto_62
    monitor-exit p0

    return-void
.end method

.method public onCreate(Landroid/database/sqlite/SQLiteDatabase;)V
    .registers 3

    const-string v0, "CREATE TABLE events (_id INTEGER PRIMARY KEY,eventid INTEGER,timestamp INTEGER,type TEXT,data TEXT )"

    invoke-virtual {p1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V

    return-void
.end method

.method public onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V
    .registers 4

    const-string p2, "DROP TABLE IF EXISTS events"

    invoke-virtual {p1, p2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V

    invoke-virtual {p0, p1}, Lcom/ironsource/eventsmodule/DataBaseEventsStorage;->onCreate(Landroid/database/sqlite/SQLiteDatabase;)V

    return-void
.end method