Observable.smali

.class public Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;
.super Ljava/lang/Object;
.source "Observable.java"


# static fields
.field private static final TAG:Ljava/lang/String; = "Observable"


# instance fields
.field private final observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap",
            "<",
            "Ljava/lang/Integer;",
            "Lcom/baidu/sapi2/passhost/pluginsdk/service/Observer;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method public constructor <init>()V
    .registers 3

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

    .line 16
    new-instance v0, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

    const/16 v1, 0xc

    invoke-direct {v0, v1}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;-><init>(I)V

    iput-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

    .line 19
    return-void
.end method


# virtual methods
.method public declared-synchronized addListener(ILcom/baidu/sapi2/passhost/pluginsdk/service/Observer;)V
    .registers 5

    .prologue
    .line 46
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

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

    move-result-object v1

    invoke-virtual {v0, v1, p2}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)V
    :try_end_a
    .catchall {:try_start_1 .. :try_end_a} :catchall_c

    .line 47
    monitor-exit p0

    return-void

    .line 46
    :catchall_c
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public declared-synchronized getListenerCount(I)I
    .registers 4

    .prologue
    .line 26
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

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

    move-result-object v1

    invoke-virtual {v0, v1}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;->get(Ljava/lang/Object;)Ljava/util/ArrayList;

    move-result-object v0

    .line 27
    if-eqz v0, :cond_13

    .line 28
    invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
    :try_end_10
    .catchall {:try_start_1 .. :try_end_10} :catchall_15

    move-result v0

    .line 30
    :goto_11
    monitor-exit p0

    return v0

    :cond_13
    const/4 v0, 0x0

    goto :goto_11

    .line 26
    :catchall_15
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public hasListener(I)Z
    .registers 3

    .prologue
    .line 38
    invoke-virtual {p0, p1}, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->getListenerCount(I)I

    move-result v0

    if-lez v0, :cond_8

    const/4 v0, 0x1

    :goto_7
    return v0

    :cond_8
    const/4 v0, 0x0

    goto :goto_7
.end method

.method public varargs notify(I[Ljava/lang/Object;)V
    .registers 4

    .prologue
    .line 101
    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1, p2}, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->notify(Ljava/lang/Object;I[Ljava/lang/Object;)V

    .line 102
    return-void
.end method

.method public varargs notify(Ljava/lang/Object;I[Ljava/lang/Object;)V
    .registers 13

    .prologue
    const/4 v8, 0x1

    const/4 v1, 0x0

    .line 74
    const-string v0, "Observable"

    new-array v2, v8, [Ljava/lang/Object;

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

    move-result-object v3

    aput-object v3, v2, v1

    invoke-static {v0, v2}, Lcom/baidu/sapi2/base/debug/Log;->i(Ljava/lang/String;[Ljava/lang/Object;)V

    .line 77
    monitor-enter p0

    .line 78
    :try_start_10
    iget-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

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

    move-result-object v2

    invoke-virtual {v0, v2}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;->get(Ljava/lang/Object;)Ljava/util/ArrayList;

    move-result-object v0

    .line 79
    if-nez v0, :cond_1e

    .line 80
    monitor-exit p0

    .line 97
    :cond_1d
    return-void

    .line 82
    :cond_1e
    invoke-virtual {v0}, Ljava/util/ArrayList;->size()I

    move-result v2

    .line 83
    new-array v2, v2, [Lcom/baidu/sapi2/passhost/pluginsdk/service/Observer;

    .line 84
    invoke-virtual {v0, v2}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;

    .line 85
    monitor-exit p0
    :try_end_28
    .catchall {:try_start_10 .. :try_end_28} :catchall_38

    .line 86
    if-eqz v2, :cond_1d

    .line 87
    array-length v3, v2

    move v0, v1

    :goto_2c
    if-ge v0, v3, :cond_1d

    aget-object v4, v2, v0

    .line 88
    if-eqz v4, :cond_35

    .line 90
    :try_start_32
    invoke-interface {v4, p1, p2, p3}, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observer;->onNotify(Ljava/lang/Object;I[Ljava/lang/Object;)V
    :try_end_35
    .catch Ljava/lang/Throwable; {:try_start_32 .. :try_end_35} :catch_3b

    .line 87
    :cond_35
    :goto_35
    add-int/lit8 v0, v0, 0x1

    goto :goto_2c

    .line 85
    :catchall_38
    move-exception v0

    :try_start_39
    monitor-exit p0
    :try_end_3a
    .catchall {:try_start_39 .. :try_end_3a} :catchall_38

    throw v0

    .line 91
    :catch_3b
    move-exception v4

    .line 92
    const-string v5, "Observable"

    const/4 v6, 0x2

    new-array v6, v6, [Ljava/lang/Object;

    invoke-virtual {v4}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;

    move-result-object v7

    aput-object v7, v6, v1

    aput-object v4, v6, v8

    invoke-static {v5, v6}, Lcom/baidu/sapi2/base/debug/Log;->e(Ljava/lang/String;[Ljava/lang/Object;)V

    goto :goto_35
.end method

.method public declared-synchronized remove(Lcom/baidu/sapi2/passhost/pluginsdk/service/Observer;)V
    .registers 3

    .prologue
    .line 60
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

    invoke-virtual {v0, p1}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;->removeValue(Ljava/lang/Object;)V
    :try_end_6
    .catchall {:try_start_1 .. :try_end_6} :catchall_8

    .line 61
    monitor-exit p0

    return-void

    .line 60
    :catchall_8
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public declared-synchronized setListener(ILcom/baidu/sapi2/passhost/pluginsdk/service/Observer;)V
    .registers 5

    .prologue
    .line 55
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

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

    move-result-object v1

    invoke-virtual {v0, v1}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;->remove(Ljava/lang/Object;)Ljava/util/ArrayList;

    .line 56
    iget-object v0, p0, Lcom/baidu/sapi2/passhost/pluginsdk/service/Observable;->observers:Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;

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

    move-result-object v1

    invoke-virtual {v0, v1, p2}, Lcom/baidu/sapi2/passhost/pluginsdk/service/MultiHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)V
    :try_end_13
    .catchall {:try_start_1 .. :try_end_13} :catchall_15

    .line 57
    monitor-exit p0

    return-void

    .line 55
    :catchall_15
    move-exception v0

    monitor-exit p0

    throw v0
.end method