.class Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Landroid/text/TextWatcher; .implements Landroid/text/SpanWatcher; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/emoji2/text/SpannableBuilder; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "WatcherWrapper" .end annotation # instance fields .field private final mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; .field final mObject:Ljava/lang/Object; # direct methods .method public constructor (Ljava/lang/Object;)V .locals 2 .line 379 invoke-direct {p0}, Ljava/lang/Object;->()V .line 377 new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger; const/4 v1, 0x0 invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->(I)V iput-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; iput-object p1, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; return-void .end method .method private isEmojiSpan(Ljava/lang/Object;)Z .locals 0 .line 457 instance-of p1, p1, Landroidx/emoji2/text/EmojiSpan; return p1 .end method # virtual methods .method public afterTextChanged(Landroid/text/Editable;)V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; .line 395 check-cast v0, Landroid/text/TextWatcher; invoke-interface {v0, p1}, Landroid/text/TextWatcher;->afterTextChanged(Landroid/text/Editable;)V return-void .end method .method public beforeTextChanged(Ljava/lang/CharSequence;III)V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; .line 385 check-cast v0, Landroid/text/TextWatcher; invoke-interface {v0, p1, p2, p3, p4}, Landroid/text/TextWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V return-void .end method .method public final blockCalls()V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; .line 449 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I return-void .end method .method public onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; .line 404 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I move-result v0 if-lez v0, :cond_0 invoke-direct {p0, p2}, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->isEmojiSpan(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 return-void :cond_0 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; .line 407 check-cast v0, Landroid/text/SpanWatcher; invoke-interface {v0, p1, p2, p3, p4}, Landroid/text/SpanWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V return-void .end method .method public onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V .locals 8 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; .line 429 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I move-result v0 if-lez v0, :cond_0 invoke-direct {p0, p2}, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->isEmojiSpan(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 return-void :cond_0 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1c if-ge v0, v1, :cond_2 const/4 v0, 0x0 if-le p3, p4, :cond_1 move p3, v0 :cond_1 if-le p5, p6, :cond_2 move v4, p3 move v6, v0 goto :goto_0 :cond_2 move v4, p3 move v6, p5 :goto_0 iget-object p3, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; .line 445 move-object v1, p3 check-cast v1, Landroid/text/SpanWatcher; move-object v2, p1 move-object v3, p2 move v5, p4 move v7, p6 invoke-interface/range {v1 .. v7}, Landroid/text/SpanWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V return-void .end method .method public onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; .line 416 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I move-result v0 if-lez v0, :cond_0 invoke-direct {p0, p2}, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->isEmojiSpan(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 return-void :cond_0 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; .line 419 check-cast v0, Landroid/text/SpanWatcher; invoke-interface {v0, p1, p2, p3, p4}, Landroid/text/SpanWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V return-void .end method .method public onTextChanged(Ljava/lang/CharSequence;III)V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mObject:Ljava/lang/Object; .line 390 check-cast v0, Landroid/text/TextWatcher; invoke-interface {v0, p1, p2, p3, p4}, Landroid/text/TextWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V return-void .end method .method public final unblockCalls()V .locals 1 iget-object v0, p0, Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->mBlockCalls:Ljava/util/concurrent/atomic/AtomicInteger; .line 453 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I return-void .end method