c.smali

.class public Lcom/appff/haptic/base/c;
.super Ljava/lang/Thread;
.source "SourceFile"


# instance fields
.field final a:Ljava/lang/Object;

.field final b:Ljava/lang/Object;

.field final c:Landroid/content/Context;

.field volatile d:Z

.field e:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/appff/haptic/base/b;",
            ">;"
        }
    .end annotation
.end field

.field private final f:Ljava/lang/String;


# direct methods
.method public constructor <init>(Landroid/content/Context;)V
    .registers 3

    invoke-direct {p0}, Ljava/lang/Thread;-><init>()V

    const-string v0, "NonFFThread"

    iput-object v0, p0, Lcom/appff/haptic/base/c;->f:Ljava/lang/String;

    new-instance v0, Ljava/lang/Object;

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    iput-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    new-instance v0, Ljava/lang/Object;

    invoke-direct {v0}, Ljava/lang/Object;-><init>()V

    iput-object v0, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/appff/haptic/base/c;->d:Z

    new-instance v0, Ljava/util/ArrayList;

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

    iput-object v0, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    iput-object p1, p0, Lcom/appff/haptic/base/c;->c:Landroid/content/Context;

    return-void
.end method


# virtual methods
.method a()J
    .registers 3

    invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J

    move-result-wide v0

    return-wide v0
.end method

.method public a(I)V
    .registers 11

    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_3
    iget-object v1, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v1
    :try_end_6
    .catchall {:try_start_3 .. :try_end_6} :catchall_5b

    :try_start_6
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    const-wide/16 v3, 0x5

    const/4 v5, 0x1

    const/4 v6, 0x0

    if-le v2, v5, :cond_35

    const-string v2, "NonFFThread"

    const-string v7, "vibrating ,so interrupt it,size > 1,remove one"

    invoke-static {v2, v7}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    iput-boolean v6, v2, Lcom/appff/haptic/base/b;->g:Z

    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    invoke-virtual {p0}, Lcom/appff/haptic/base/c;->a()J

    move-result-wide v5

    :goto_2f
    int-to-long v7, p1

    add-long/2addr v5, v7

    add-long/2addr v5, v3

    iput-wide v5, v2, Lcom/appff/haptic/base/b;->f:J

    goto :goto_4b

    :cond_35
    if-lez v2, :cond_4b

    const-string v2, "NonFFThread"

    const-string v5, "vibrating ,so interrupt it,size == 1,just set next time play"

    invoke-static {v2, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    invoke-virtual {p0}, Lcom/appff/haptic/base/c;->a()J

    move-result-wide v5

    goto :goto_2f

    :cond_4b
    :goto_4b
    monitor-exit v1
    :try_end_4c
    .catchall {:try_start_6 .. :try_end_4c} :catchall_58

    :try_start_4c
    iget-object p1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {p1}, Ljava/lang/Object;->notify()V
    :try_end_51
    .catch Ljava/lang/Exception; {:try_start_4c .. :try_end_51} :catch_52
    .catchall {:try_start_4c .. :try_end_51} :catchall_5b

    goto :goto_56

    :catch_52
    move-exception p1

    :try_start_53
    invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_56
    monitor-exit v0
    :try_end_57
    .catchall {:try_start_53 .. :try_end_57} :catchall_5b

    return-void

    :catchall_58
    move-exception p1

    :try_start_59
    monitor-exit v1
    :try_end_5a
    .catchall {:try_start_59 .. :try_end_5a} :catchall_58

    :try_start_5a
    throw p1

    :catchall_5b
    move-exception p1

    monitor-exit v0
    :try_end_5d
    .catchall {:try_start_5a .. :try_end_5d} :catchall_5b

    goto :goto_5f

    :goto_5e
    throw p1

    :goto_5f
    goto :goto_5e
.end method

.method public a(Lcom/appff/haptic/base/b;)V
    .registers 7

    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_3
    iget-object v1, p0, Lcom/appff/haptic/base/c;->c:Landroid/content/Context;

    invoke-static {v1}, Lcom/appff/haptic/base/d;->a(Landroid/content/Context;)Lcom/appff/haptic/base/d;

    move-result-object v1

    invoke-virtual {p1}, Lcom/appff/haptic/base/b;->b()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Lcom/appff/haptic/base/d;->a(Ljava/lang/String;)I

    move-result v1

    invoke-virtual {p1}, Lcom/appff/haptic/base/b;->d()I

    move-result v2

    add-int/2addr v2, v1

    invoke-virtual {p1, v2}, Lcom/appff/haptic/base/b;->a(I)V

    const-wide/16 v1, 0x0

    iput-wide v1, p1, Lcom/appff/haptic/base/b;->f:J

    iget-object v1, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v1
    :try_end_20
    .catchall {:try_start_3 .. :try_end_20} :catchall_4f

    :try_start_20
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    const/4 v3, 0x0

    if-lez v2, :cond_3a

    const-string v2, "NonFFThread"

    const-string v4, "vibrating ,interrupt it"

    invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    iput-boolean v3, v2, Lcom/appff/haptic/base/b;->g:Z

    :cond_3a
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2, v3, p1}, Ljava/util/List;->add(ILjava/lang/Object;)V

    monitor-exit v1
    :try_end_40
    .catchall {:try_start_20 .. :try_end_40} :catchall_4c

    :try_start_40
    iget-object p1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {p1}, Ljava/lang/Object;->notify()V
    :try_end_45
    .catch Ljava/lang/Exception; {:try_start_40 .. :try_end_45} :catch_46
    .catchall {:try_start_40 .. :try_end_45} :catchall_4f

    goto :goto_4a

    :catch_46
    move-exception p1

    :try_start_47
    invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_4a
    monitor-exit v0
    :try_end_4b
    .catchall {:try_start_47 .. :try_end_4b} :catchall_4f

    return-void

    :catchall_4c
    move-exception p1

    :try_start_4d
    monitor-exit v1
    :try_end_4e
    .catchall {:try_start_4d .. :try_end_4e} :catchall_4c

    :try_start_4e
    throw p1

    :catchall_4f
    move-exception p1

    monitor-exit v0
    :try_end_51
    .catchall {:try_start_4e .. :try_end_51} :catchall_4f

    throw p1
.end method

.method public b()V
    .registers 6

    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_3
    iget-object v1, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v1
    :try_end_6
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_6} :catch_2c
    .catchall {:try_start_3 .. :try_end_6} :catchall_2a

    :try_start_6
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

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

    move-result v2

    if-eqz v2, :cond_11

    monitor-exit v1
    :try_end_f
    .catchall {:try_start_6 .. :try_end_f} :catchall_27

    :try_start_f
    monitor-exit v0
    :try_end_10
    .catchall {:try_start_f .. :try_end_10} :catchall_2a

    return-void

    :cond_11
    :try_start_11
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    const/4 v3, 0x0

    invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    iget-boolean v4, v2, Lcom/appff/haptic/base/b;->g:Z

    if-eqz v4, :cond_20

    iput-boolean v3, v2, Lcom/appff/haptic/base/b;->g:Z

    :cond_20
    monitor-exit v1
    :try_end_21
    .catchall {:try_start_11 .. :try_end_21} :catchall_27

    :try_start_21
    iget-object v1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->notify()V
    :try_end_26
    .catch Ljava/lang/Exception; {:try_start_21 .. :try_end_26} :catch_2c
    .catchall {:try_start_21 .. :try_end_26} :catchall_2a

    goto :goto_30

    :catchall_27
    move-exception v2

    :try_start_28
    monitor-exit v1
    :try_end_29
    .catchall {:try_start_28 .. :try_end_29} :catchall_27

    :try_start_29
    throw v2
    :try_end_2a
    .catch Ljava/lang/Exception; {:try_start_29 .. :try_end_2a} :catch_2c
    .catchall {:try_start_29 .. :try_end_2a} :catchall_2a

    :catchall_2a
    move-exception v1

    goto :goto_32

    :catch_2c
    move-exception v1

    :try_start_2d
    invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_30
    monitor-exit v0

    return-void

    :goto_32
    monitor-exit v0
    :try_end_33
    .catchall {:try_start_2d .. :try_end_33} :catchall_2a

    throw v1
.end method

.method public b(Lcom/appff/haptic/base/b;)V
    .registers 12

    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_3
    iget-object v1, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v1
    :try_end_6
    .catchall {:try_start_3 .. :try_end_6} :catchall_94

    :try_start_6
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

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

    move-result v2

    if-eqz v2, :cond_18

    const-string p1, "NonFFThread"

    const-string v2, "vib list is empty,do nothing!!"

    invoke-static {p1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    monitor-exit v1
    :try_end_16
    .catchall {:try_start_6 .. :try_end_16} :catchall_91

    :try_start_16
    monitor-exit v0
    :try_end_17
    .catchall {:try_start_16 .. :try_end_17} :catchall_94

    return-void

    :cond_18
    :try_start_18
    invoke-virtual {p1}, Lcom/appff/haptic/base/b;->e()I

    move-result v2

    iget-object v3, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    const/4 v4, 0x0

    invoke-interface {v3, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Lcom/appff/haptic/base/b;

    iget-boolean v4, v3, Lcom/appff/haptic/base/b;->g:Z

    if-nez v4, :cond_2c

    monitor-exit v1
    :try_end_2a
    .catchall {:try_start_18 .. :try_end_2a} :catchall_91

    :try_start_2a
    monitor-exit v0
    :try_end_2b
    .catchall {:try_start_2a .. :try_end_2b} :catchall_94

    return-void

    :cond_2c
    const/4 v4, -0x1

    if-eq v2, v4, :cond_32

    :try_start_2f
    invoke-virtual {v3, v2}, Lcom/appff/haptic/base/b;->c(I)V

    :cond_32
    invoke-virtual {p1}, Lcom/appff/haptic/base/b;->d()I

    move-result v2

    if-eq v2, v4, :cond_7b

    invoke-virtual {v3}, Lcom/appff/haptic/base/b;->d()I

    move-result v5

    sub-int v5, v2, v5

    invoke-virtual {v3}, Lcom/appff/haptic/base/b;->a()I

    move-result v6

    add-int/2addr v6, v5

    const-string v7, "NonFFThread"

    new-instance v8, Ljava/lang/StringBuilder;

    invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V

    const-string v9, "updateParam interval:"

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v8, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v9, " pre interval:"

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Lcom/appff/haptic/base/b;->d()I

    move-result v9

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v9, " delta:"

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v5, " duration:"

    invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v5

    invoke-static {v7, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    invoke-virtual {v3, v2}, Lcom/appff/haptic/base/b;->b(I)V

    invoke-virtual {v3, v6}, Lcom/appff/haptic/base/b;->a(I)V

    :cond_7b
    invoke-virtual {p1}, Lcom/appff/haptic/base/b;->f()I

    move-result p1

    if-eq p1, v4, :cond_84

    invoke-virtual {v3, p1}, Lcom/appff/haptic/base/b;->d(I)V

    :cond_84
    monitor-exit v1
    :try_end_85
    .catchall {:try_start_2f .. :try_end_85} :catchall_91

    :try_start_85
    iget-object p1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {p1}, Ljava/lang/Object;->notify()V
    :try_end_8a
    .catch Ljava/lang/Exception; {:try_start_85 .. :try_end_8a} :catch_8b
    .catchall {:try_start_85 .. :try_end_8a} :catchall_94

    goto :goto_8f

    :catch_8b
    move-exception p1

    :try_start_8c
    invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_8f
    monitor-exit v0
    :try_end_90
    .catchall {:try_start_8c .. :try_end_90} :catchall_94

    return-void

    :catchall_91
    move-exception p1

    :try_start_92
    monitor-exit v1
    :try_end_93
    .catchall {:try_start_92 .. :try_end_93} :catchall_91

    :try_start_93
    throw p1

    :catchall_94
    move-exception p1

    monitor-exit v0
    :try_end_96
    .catchall {:try_start_93 .. :try_end_96} :catchall_94

    throw p1
.end method

.method public c()V
    .registers 4

    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/appff/haptic/base/c;->d:Z

    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_6
    iget-object v1, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v1
    :try_end_9
    .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_9} :catch_1d
    .catchall {:try_start_6 .. :try_end_9} :catchall_1b

    :try_start_9
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->clear()V

    const/4 v2, 0x0

    iput-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    monitor-exit v1
    :try_end_12
    .catchall {:try_start_9 .. :try_end_12} :catchall_18

    :try_start_12
    iget-object v1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->notify()V
    :try_end_17
    .catch Ljava/lang/Exception; {:try_start_12 .. :try_end_17} :catch_1d
    .catchall {:try_start_12 .. :try_end_17} :catchall_1b

    goto :goto_21

    :catchall_18
    move-exception v2

    :try_start_19
    monitor-exit v1
    :try_end_1a
    .catchall {:try_start_19 .. :try_end_1a} :catchall_18

    :try_start_1a
    throw v2
    :try_end_1b
    .catch Ljava/lang/Exception; {:try_start_1a .. :try_end_1b} :catch_1d
    .catchall {:try_start_1a .. :try_end_1b} :catchall_1b

    :catchall_1b
    move-exception v1

    goto :goto_23

    :catch_1d
    move-exception v1

    :try_start_1e
    invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_21
    monitor-exit v0

    return-void

    :goto_23
    monitor-exit v0
    :try_end_24
    .catchall {:try_start_1e .. :try_end_24} :catchall_1b

    throw v1
.end method

.method d()Z
    .registers 4

    iget-object v0, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v0

    :try_start_3
    iget-object v1, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

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

    move-result-object v1

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

    move-result v2

    if-eqz v2, :cond_1c

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

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    iget-boolean v2, v2, Lcom/appff/haptic/base/b;->g:Z

    if-eqz v2, :cond_9

    monitor-exit v0

    const/4 v0, 0x1

    return v0

    :cond_1c
    monitor-exit v0

    const/4 v0, 0x0

    return v0

    :catchall_1f
    move-exception v1

    monitor-exit v0
    :try_end_21
    .catchall {:try_start_3 .. :try_end_21} :catchall_1f

    goto :goto_23

    :goto_22
    throw v1

    :goto_23
    goto :goto_22
.end method

.method public run()V
    .registers 11

    const-string v0, "NonFFThread"

    const-string v1, "non FF thread start!!"

    :goto_4
    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    :cond_7
    :goto_7
    iget-boolean v0, p0, Lcom/appff/haptic/base/c;->d:Z

    if-nez v0, :cond_11b

    iget-object v0, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    if-nez v0, :cond_10

    goto :goto_7

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

    move-result v0

    if-nez v0, :cond_f4

    invoke-virtual {p0}, Lcom/appff/haptic/base/c;->d()Z

    move-result v0

    if-nez v0, :cond_1e

    goto/16 :goto_f4

    :cond_1e
    invoke-virtual {p0}, Lcom/appff/haptic/base/c;->a()J

    move-result-wide v0

    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    const/4 v3, 0x0

    invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/appff/haptic/base/b;

    iget-boolean v4, v2, Lcom/appff/haptic/base/b;->g:Z

    if-nez v4, :cond_30

    goto :goto_7

    :cond_30
    iget-wide v4, v2, Lcom/appff/haptic/base/b;->f:J

    cmp-long v6, v4, v0

    if-lez v6, :cond_71

    sub-long/2addr v4, v0

    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_3a
    const-string v1, "NonFFThread"

    new-instance v6, Ljava/lang/StringBuilder;

    invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V

    const-string v7, "go to sleep :"

    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v6, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v6

    invoke-static {v1, v6}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iget-object v1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {v1, v4, v5}, Ljava/lang/Object;->wait(J)V
    :try_end_55
    .catch Ljava/lang/Exception; {:try_start_3a .. :try_end_55} :catch_58
    .catchall {:try_start_3a .. :try_end_55} :catchall_56

    goto :goto_5c

    :catchall_56
    move-exception v1

    goto :goto_6f

    :catch_58
    move-exception v1

    :try_start_59
    invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_5c
    monitor-exit v0
    :try_end_5d
    .catchall {:try_start_59 .. :try_end_5d} :catchall_56

    iget v0, v2, Lcom/appff/haptic/base/b;->i:I

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->c()I

    move-result v1

    if-le v0, v1, :cond_7

    const-string v0, "NonFFThread"

    const-string v1, " looper finished,remove it!!"

    :goto_69
    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iput-boolean v3, v2, Lcom/appff/haptic/base/b;->g:Z

    goto :goto_7

    :goto_6f
    :try_start_6f
    monitor-exit v0
    :try_end_70
    .catchall {:try_start_6f .. :try_end_70} :catchall_56

    throw v1

    :cond_71
    iget-object v0, p0, Lcom/appff/haptic/base/c;->c:Landroid/content/Context;

    invoke-static {v0}, Lcom/appff/haptic/base/d;->a(Landroid/content/Context;)Lcom/appff/haptic/base/d;

    move-result-object v4

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->b()Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->c()I

    move-result v6

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->d()I

    move-result v7

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->e()I

    move-result v8

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->f()I

    move-result v9

    invoke-virtual/range {v4 .. v9}, Lcom/appff/haptic/base/d;->b(Ljava/lang/String;IIII)V

    iget v0, v2, Lcom/appff/haptic/base/b;->i:I

    add-int/lit8 v0, v0, 0x1

    iput v0, v2, Lcom/appff/haptic/base/b;->i:I

    const-string v0, "NonFFThread"

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v4, " vib mHasVibNum:"

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v4, v2, Lcom/appff/haptic/base/b;->i:I

    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iget v0, v2, Lcom/appff/haptic/base/b;->i:I

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->c()I

    move-result v1

    if-lt v0, v1, :cond_b9

    const-string v0, "NonFFThread"

    const-string v1, " wake up vib looper is end ,remove it!!"

    goto :goto_69

    :cond_b9
    invoke-virtual {p0}, Lcom/appff/haptic/base/c;->a()J

    move-result-wide v0

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->a()I

    move-result v3

    int-to-long v3, v3

    add-long/2addr v0, v3

    iput-wide v0, v2, Lcom/appff/haptic/base/b;->f:J

    const-string v0, "NonFFThread"

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, " vib now:"

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p0}, Lcom/appff/haptic/base/c;->a()J

    move-result-wide v3

    invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    const-string v3, " mWhen:"

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-wide v3, v2, Lcom/appff/haptic/base/b;->f:J

    invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    const-string v3, " lastTime:"

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Lcom/appff/haptic/base/b;->a()I

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    goto/16 :goto_4

    :cond_f4
    :goto_f4
    iget-object v0, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    monitor-enter v0

    :try_start_f7
    iget-object v1, p0, Lcom/appff/haptic/base/c;->b:Ljava/lang/Object;

    monitor-enter v1
    :try_end_fa
    .catch Ljava/lang/Exception; {:try_start_f7 .. :try_end_fa} :catch_114
    .catchall {:try_start_f7 .. :try_end_fa} :catchall_112

    :try_start_fa
    iget-object v2, p0, Lcom/appff/haptic/base/c;->e:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->clear()V

    monitor-exit v1
    :try_end_100
    .catchall {:try_start_fa .. :try_end_100} :catchall_10f

    :try_start_100
    const-string v1, "NonFFThread"

    const-string v2, "nothing is in list,just wait!!"

    invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    iget-object v1, p0, Lcom/appff/haptic/base/c;->a:Ljava/lang/Object;

    invoke-virtual {v1}, Ljava/lang/Object;->wait()V
    :try_end_10c
    .catch Ljava/lang/Exception; {:try_start_100 .. :try_end_10c} :catch_114
    .catchall {:try_start_100 .. :try_end_10c} :catchall_112

    :goto_10c
    :try_start_10c
    monitor-exit v0
    :try_end_10d
    .catchall {:try_start_10c .. :try_end_10d} :catchall_112

    goto/16 :goto_7

    :catchall_10f
    move-exception v2

    :try_start_110
    monitor-exit v1
    :try_end_111
    .catchall {:try_start_110 .. :try_end_111} :catchall_10f

    :try_start_111
    throw v2
    :try_end_112
    .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_112} :catch_114
    .catchall {:try_start_111 .. :try_end_112} :catchall_112

    :catchall_112
    move-exception v1

    goto :goto_119

    :catch_114
    move-exception v1

    :try_start_115
    invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V

    goto :goto_10c

    :goto_119
    monitor-exit v0
    :try_end_11a
    .catchall {:try_start_115 .. :try_end_11a} :catchall_112

    throw v1

    :cond_11b
    const-string v0, "NonFFThread"

    const-string v1, "non FF thread quit!"

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    return-void
.end method