d.smali

.class public abstract Lcom/garena/android/appkit/database/d;
.super Ljava/lang/Object;
.source "SourceFile"


# instance fields
.field private databaseDao:Landroid/database/sqlite/SQLiteDatabase;

.field private newVersion:I

.field private oldVersion:I

.field private scripts:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList<",
            "Lcom/garena/android/appkit/database/e;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method public constructor <init>(Landroid/database/sqlite/SQLiteDatabase;II)V
    .registers 4

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 2
    iput p2, p0, Lcom/garena/android/appkit/database/d;->oldVersion:I

    .line 3
    iput p3, p0, Lcom/garena/android/appkit/database/d;->newVersion:I

    .line 4
    iput-object p1, p0, Lcom/garena/android/appkit/database/d;->databaseDao:Landroid/database/sqlite/SQLiteDatabase;

    .line 5
    new-instance p1, Ljava/util/ArrayList;

    invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V

    iput-object p1, p0, Lcom/garena/android/appkit/database/d;->scripts:Ljava/util/ArrayList;

    return-void
.end method


# virtual methods
.method public abstract getAllUpgradeScripts()Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lcom/garena/android/appkit/database/e;",
            ">;"
        }
    .end annotation
.end method

.method public loadScripts()V
    .registers 3

    iget-object v0, p0, Lcom/garena/android/appkit/database/d;->scripts:Ljava/util/ArrayList;

    invoke-virtual {p0}, Lcom/garena/android/appkit/database/d;->getAllUpgradeScripts()Ljava/util/List;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z

    return-void
.end method

.method public runAllUpgrades()V
    .registers 7

    .line 1
    invoke-virtual {p0}, Lcom/garena/android/appkit/database/d;->loadScripts()V

    .line 2
    :try_start_3
    iget-object v0, p0, Lcom/garena/android/appkit/database/d;->scripts:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :cond_9
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_47

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

    move-result-object v1

    check-cast v1, Lcom/garena/android/appkit/database/e;

    .line 3
    iget v2, p0, Lcom/garena/android/appkit/database/d;->oldVersion:I

    iget v3, p0, Lcom/garena/android/appkit/database/d;->newVersion:I

    .line 4
    iget v4, v1, Lcom/garena/android/appkit/database/e;->a:I

    const/4 v5, 0x0

    if-lt v2, v4, :cond_26

    iget v4, v1, Lcom/garena/android/appkit/database/e;->b:I

    if-ge v2, v4, :cond_26

    if-lt v3, v4, :cond_26

    const/4 v2, 0x1

    goto :goto_27

    :cond_26
    const/4 v2, 0x0

    :goto_27
    if-eqz v2, :cond_9

    .line 5
    invoke-virtual {v1}, Lcom/garena/android/appkit/database/e;->a()Ljava/lang/String;

    move-result-object v1

    const-string v2, ";"

    invoke-virtual {v1, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v1

    .line 6
    array-length v2, v1

    :goto_34
    if-ge v5, v2, :cond_9

    aget-object v3, v1, v5

    .line 7
    invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v4

    if-eqz v4, :cond_3f

    goto :goto_44

    .line 8
    :cond_3f
    iget-object v4, p0, Lcom/garena/android/appkit/database/d;->databaseDao:Landroid/database/sqlite/SQLiteDatabase;

    invoke-virtual {v4, v3}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
    :try_end_44
    .catch Landroid/database/SQLException; {:try_start_3 .. :try_end_44} :catch_48

    :goto_44
    add-int/lit8 v5, v5, 0x1

    goto :goto_34

    :cond_47
    return-void

    :catch_48
    move-exception v0

    .line 9
    throw v0
.end method