MentionSpanWatcher.smali
.class public Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;
.super Lim/tpelyyftgw/ui/hui/friendscircle_v1/view/edittext/watcher/SpanWatcherAdapter;
.source "MentionSpanWatcher.java"
# instance fields
.field private selectEnd:I
.field private selectStart:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 2
.line 11
invoke-direct {p0}, Lim/tpelyyftgw/ui/hui/friendscircle_v1/view/edittext/watcher/SpanWatcherAdapter;-><init>()V
.line 13
const/4 v0, 0x0
iput v0, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectStart:I
.line 14
iput v0, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectEnd:I
return-void
.end method
# virtual methods
.method public onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
.registers 14
.param p1, "text" # Landroid/text/Spannable;
.param p2, "what" # Ljava/lang/Object;
.param p3, "ostart" # I
.param p4, "oend" # I
.param p5, "nstart" # I
.param p6, "nend" # I
.line 19
sget-object v0, Landroid/text/Selection;->SELECTION_END:Ljava/lang/Object;
const/4 v1, 0x0
if-ne p2, v0, :cond_3e
iget v0, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectEnd:I
if-eq v0, p5, :cond_3e
.line 20
iput p5, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectEnd:I
.line 21
const-class v0, Landroid/text/style/ForegroundColorSpan;
invoke-interface {p1, p5, p6, v0}, Landroid/text/Spannable;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Landroid/text/style/ForegroundColorSpan;
.line 22
.local v0, "spans":[Landroid/text/style/ForegroundColorSpan;
if-eqz v0, :cond_3e
array-length v2, v0
if-lez v2, :cond_3e
.line 23
aget-object v2, v0, v1
.line 24
.local v2, "span":Landroid/text/style/ForegroundColorSpan;
if-eqz v2, :cond_3e
.line 25
invoke-interface {p1, v2}, Landroid/text/Spannable;->getSpanStart(Ljava/lang/Object;)I
move-result v3
.line 26
.local v3, "spanStart":I
invoke-interface {p1, v2}, Landroid/text/Spannable;->getSpanEnd(Ljava/lang/Object;)I
move-result v4
.line 27
.local v4, "spanEnd":I
iget v5, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectEnd:I
sub-int/2addr v5, v4
invoke-static {v5}, Ljava/lang/Math;->abs(I)I
move-result v5
iget v6, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectEnd:I
sub-int/2addr v6, v3
invoke-static {v6}, Ljava/lang/Math;->abs(I)I
move-result v6
if-le v5, v6, :cond_36
move v5, v3
goto :goto_37
:cond_36
move v5, v4
.line 28
.local v5, "index":I
:goto_37
invoke-static {p1}, Landroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
move-result v6
invoke-static {p1, v6, v5}, Landroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V
.line 33
.end local v0 # "spans":[Landroid/text/style/ForegroundColorSpan;
.end local v2 # "span":Landroid/text/style/ForegroundColorSpan;
.end local v3 # "spanStart":I
.end local v4 # "spanEnd":I
.end local v5 # "index":I
:cond_3e
sget-object v0, Landroid/text/Selection;->SELECTION_START:Ljava/lang/Object;
if-ne p2, v0, :cond_7b
iget v0, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectStart:I
if-eq v0, p5, :cond_7b
.line 34
iput p5, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectStart:I
.line 35
const-class v0, Landroid/text/style/ForegroundColorSpan;
invoke-interface {p1, p5, p6, v0}, Landroid/text/Spannable;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Landroid/text/style/ForegroundColorSpan;
.line 36
.restart local v0 # "spans":[Landroid/text/style/ForegroundColorSpan;
if-eqz v0, :cond_7b
array-length v2, v0
if-lez v2, :cond_7b
.line 37
aget-object v1, v0, v1
.line 38
.local v1, "span":Landroid/text/style/ForegroundColorSpan;
if-eqz v1, :cond_7b
.line 39
invoke-interface {p1, v1}, Landroid/text/Spannable;->getSpanStart(Ljava/lang/Object;)I
move-result v2
.line 40
.local v2, "spanStart":I
invoke-interface {p1, v1}, Landroid/text/Spannable;->getSpanEnd(Ljava/lang/Object;)I
move-result v3
.line 41
.local v3, "spanEnd":I
iget v4, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectStart:I
sub-int/2addr v4, v3
invoke-static {v4}, Ljava/lang/Math;->abs(I)I
move-result v4
iget v5, p0, Lim/tpelyyftgw/ui/components/mentionspan/MentionSpanWatcher;->selectStart:I
sub-int/2addr v5, v2
invoke-static {v5}, Ljava/lang/Math;->abs(I)I
move-result v5
if-le v4, v5, :cond_73
move v4, v2
goto :goto_74
:cond_73
move v4, v3
.line 42
.local v4, "index":I
:goto_74
invoke-static {p1}, Landroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
move-result v5
invoke-static {p1, v4, v5}, Landroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V
.line 46
.end local v0 # "spans":[Landroid/text/style/ForegroundColorSpan;
.end local v1 # "span":Landroid/text/style/ForegroundColorSpan;
.end local v2 # "spanStart":I
.end local v3 # "spanEnd":I
.end local v4 # "index":I
:cond_7b
return-void
.end method