.class public Lcom/github/leondevlifelog/gesturelockview/GestureLockView; .super Landroid/view/View; .source "GestureLockView.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; } .end annotation # static fields .field private static final DEFAULT_COL:I = 0x3 .field private static final DEFAULT_ROW:I = 0x3 .field private static final LANDSCAPE:I = 0x0 .field private static final PORTRAIT:I = 0x1 .field private static final TAG:Ljava/lang/String; = "GestureLockView" # instance fields .field private ERROR:I .field private NORMAL:I .field private STATUS:I .field private action:Ljava/lang/Runnable; .field private col:I .field private contentHeight:I .field private contentWidth:I .field private currentPoint:Landroid/graphics/Point; .field private dotColor:I .field private dotPaint:Landroid/graphics/Paint; .field private dotPressedColor:I .field private dotPressedRadius:I .field private dotRadius:I .field private dotsPos:[[Landroid/graphics/Point; .field private dotsRegion:[[Landroid/graphics/Region; .field private dotsStatus:[[I .field private globalRegion:Landroid/graphics/Region; .field private isTouching:Z .field private lastPoint:Landroid/graphics/Point; .field private lineColor:I .field private linePaint:Landroid/graphics/Paint; .field private linePath:Landroid/graphics/Path; .field private lineWidth:I .field private mContext:Landroid/content/Context; .field private minLength:I .field private onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; .field private paddingLeft:I .field private password:Ljava/lang/StringBuilder; .field private realDotPressedColor:I .field private realLineColor:I .field private row:I .field private securityMode:Z .field private tmpPath:Landroid/graphics/Path; .field private vibrator:Landroid/os/Vibrator; .field private widthHeightOffset:I # direct methods .method public constructor (Landroid/content/Context;)V .registers 4 .line 78 invoke-direct {p0, p1}, Landroid/view/View;->(Landroid/content/Context;)V const/4 v0, 0x0 .line 67 iput-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->isTouching:Z const/4 v1, 0x1 .line 70 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I const/4 v1, 0x2 .line 71 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->NORMAL:I .line 75 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->STATUS:I .line 79 iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->mContext:Landroid/content/Context; const/4 p1, 0x0 .line 80 invoke-direct {p0, p1, v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->init(Landroid/util/AttributeSet;I)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 5 .line 84 invoke-direct {p0, p1, p2}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;)V const/4 v0, 0x0 .line 67 iput-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->isTouching:Z const/4 v1, 0x1 .line 70 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I const/4 v1, 0x2 .line 71 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->NORMAL:I .line 75 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->STATUS:I .line 85 iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->mContext:Landroid/content/Context; .line 86 invoke-direct {p0, p2, v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->init(Landroid/util/AttributeSet;I)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V .registers 5 .line 90 invoke-direct {p0, p1, p2, p3}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V const/4 v0, 0x0 .line 67 iput-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->isTouching:Z const/4 v0, 0x1 .line 70 iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I const/4 v0, 0x2 .line 71 iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->NORMAL:I .line 75 iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->STATUS:I .line 91 iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->mContext:Landroid/content/Context; .line 92 invoke-direct {p0, p2, p3}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->init(Landroid/util/AttributeSet;I)V return-void .end method .method static synthetic access$000(Lcom/github/leondevlifelog/gesturelockview/GestureLockView;)V .registers 1 .line 30 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->reset()V return-void .end method .method private dealDown(Landroid/view/MotionEvent;)V .registers 8 .line 304 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->action:Ljava/lang/Runnable; if-eqz v0, :cond_7 .line 305 invoke-virtual {p0, v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->removeCallbacks(Ljava/lang/Runnable;)Z .line 307 :cond_7 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->reset()V .line 308 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->NORMAL:I invoke-direct {p0, v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->setStatus(I)V const/4 v0, 0x0 move v1, v0 .line 309 :goto_11 iget v2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I if-ge v1, v2, :cond_a3 move v2, v0 .line 310 :goto_16 iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I if-ge v2, v3, :cond_9f .line 311 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsRegion:[[Landroid/graphics/Region; aget-object v3, v3, v1 aget-object v3, v3, v2 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v4 float-to-int v4, v4 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v5 float-to-int v5, v5 invoke-virtual {v3, v4, v5}, Landroid/graphics/Region;->contains(II)Z move-result v3 if-eqz v3, :cond_9b .line 312 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I aget-object v3, v3, v1 aget v3, v3, v2 if-nez v3, :cond_94 .line 313 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePath:Landroid/graphics/Path; iget-object v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v4, v4, v1 aget-object v4, v4, v2 iget v4, v4, Landroid/graphics/Point;->x:I int-to-float v4, v4 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v5, v5, v1 aget-object v5, v5, v2 iget v5, v5, Landroid/graphics/Point;->y:I int-to-float v5, v5 invoke-virtual {v3, v4, v5}, Landroid/graphics/Path;->moveTo(FF)V .line 314 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget-object v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v4, v4, v1 aget-object v4, v4, v2 iget v4, v4, Landroid/graphics/Point;->x:I iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v5, v5, v1 aget-object v5, v5, v2 iget v5, v5, Landroid/graphics/Point;->y:I invoke-virtual {v3, v4, v5}, Landroid/graphics/Point;->set(II)V .line 315 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->vibrator()V .line 316 iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I mul-int/2addr v3, v2 add-int/2addr v3, v1 add-int/lit8 v3, v3, 0x61 int-to-char v3, v3 invoke-static {v3}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; move-result-object v3 .line 317 new-instance v4, Ljava/lang/StringBuilder; const-string v5, "dealDown: posString" invoke-direct {v4, v5}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 const-string v5, "GestureLockView" invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 318 iget-object v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->indexOf(Ljava/lang/String;)I move-result v4 const/4 v5, -0x1 if-ne v4, v5, :cond_94 .line 319 iget-object v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 322 :cond_94 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I aget-object v3, v3, v1 const/4 v4, 0x1 aput v4, v3, v2 :cond_9b add-int/lit8 v2, v2, 0x1 goto/16 :goto_16 :cond_9f add-int/lit8 v1, v1, 0x1 goto/16 :goto_11 :cond_a3 return-void .end method .method private dealMove(Landroid/view/MotionEvent;)V .registers 9 .line 334 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v1 float-to-int v1, v1 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v2 float-to-int v2, v2 invoke-virtual {v0, v1, v2}, Landroid/graphics/Point;->set(II)V const/4 v0, 0x0 move v1, v0 .line 335 :goto_11 iget v2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I if-ge v1, v2, :cond_a8 move v2, v0 .line 336 :goto_16 iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I if-ge v2, v3, :cond_a4 .line 337 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsRegion:[[Landroid/graphics/Region; aget-object v3, v3, v1 aget-object v3, v3, v2 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v4 float-to-int v4, v4 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v5 float-to-int v5, v5 invoke-virtual {v3, v4, v5}, Landroid/graphics/Region;->contains(II)Z move-result v3 if-eqz v3, :cond_9e .line 338 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I aget-object v3, v3, v1 aget v3, v3, v2 const/4 v4, 0x1 if-nez v3, :cond_97 .line 340 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePath:Landroid/graphics/Path; iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v5, v5, v1 aget-object v5, v5, v2 iget v5, v5, Landroid/graphics/Point;->x:I int-to-float v5, v5 iget-object v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v6, v6, v1 aget-object v6, v6, v2 iget v6, v6, Landroid/graphics/Point;->y:I int-to-float v6, v6 invoke-virtual {v3, v5, v6}, Landroid/graphics/Path;->lineTo(FF)V .line 341 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v5, v5, v1 aget-object v5, v5, v2 iget v5, v5, Landroid/graphics/Point;->x:I iget-object v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v6, v6, v1 aget-object v6, v6, v2 iget v6, v6, Landroid/graphics/Point;->y:I invoke-virtual {v3, v5, v6}, Landroid/graphics/Point;->set(II)V .line 342 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->vibrator()V .line 343 iput-boolean v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->isTouching:Z .line 344 iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I mul-int/2addr v3, v2 add-int/2addr v3, v1 add-int/lit8 v3, v3, 0x61 int-to-char v3, v3 invoke-static {v3}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; move-result-object v3 .line 345 new-instance v5, Ljava/lang/StringBuilder; const-string v6, "dealDown: posString" invoke-direct {v5, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v5 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v5 const-string v6, "GestureLockView" invoke-static {v6, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 346 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->indexOf(Ljava/lang/String;)I move-result v5 const/4 v6, -0x1 if-ne v5, v6, :cond_97 .line 347 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 350 :cond_97 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I aget-object v3, v3, v1 aput v4, v3, v2 goto :goto_a0 .line 352 :cond_9e iput-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->isTouching:Z :goto_a0 add-int/lit8 v2, v2, 0x1 goto/16 :goto_16 :cond_a4 add-int/lit8 v1, v1, 0x1 goto/16 :goto_11 .line 356 :cond_a8 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method private getMiniViewSize()I .registers 3 .line 265 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentHeight:I iget v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentWidth:I invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 return v0 .end method .method private getTouchAreaMimiRadius()I .registers 3 .line 255 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I iget v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I move-result v0 .line 256 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getMiniViewSize()I move-result v1 div-int/2addr v1, v0 div-int/lit8 v1, v1, 0x2 return v1 .end method .method private getViewOrientation()I .registers 3 .line 274 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentWidth:I iget v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentHeight:I if-le v0, v1, :cond_8 const/4 v0, 0x0 return v0 :cond_8 const/4 v0, 0x1 return v0 .end method .method private init(Landroid/util/AttributeSet;I)V .registers 8 .line 100 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getContext()Landroid/content/Context; move-result-object v0 sget-object v1, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView:[I const/4 v2, 0x0 invoke-virtual {v0, p1, v1, p2, v2}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; move-result-object p1 .line 102 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_row:I const/4 v0, 0x3 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getInt(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I .line 103 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_col:I invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getInt(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I .line 104 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_dot_color:I iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->mContext:Landroid/content/Context; sget v1, Lcom/github/leondevlifelog/gesturelockview/R$color;->default_dot_color:I .line 105 invoke-static {v0, v1}, Landroidx/core/content/ContextCompat;->getColor(Landroid/content/Context;I)I move-result v0 .line 104 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotColor:I .line 106 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_dot_radius:I .line 107 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/github/leondevlifelog/gesturelockview/R$dimen;->default_dot_radius:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 .line 106 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotRadius:I .line 108 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_dot_color_pressed:I iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->mContext:Landroid/content/Context; sget v1, Lcom/github/leondevlifelog/gesturelockview/R$color;->default_dot_pressed_color:I .line 109 invoke-static {v0, v1}, Landroidx/core/content/ContextCompat;->getColor(Landroid/content/Context;I)I move-result v0 .line 108 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedColor:I .line 110 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_line_color:I iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->mContext:Landroid/content/Context; sget v1, Lcom/github/leondevlifelog/gesturelockview/R$color;->default_line_color:I .line 111 invoke-static {v0, v1}, Landroidx/core/content/ContextCompat;->getColor(Landroid/content/Context;I)I move-result v0 .line 110 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getColor(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineColor:I .line 112 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_line_width:I .line 113 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/github/leondevlifelog/gesturelockview/R$dimen;->default_line_width:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 .line 112 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineWidth:I .line 114 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_security_mode:I invoke-virtual {p1, p2, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 iput-boolean p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->securityMode:Z .line 115 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_dot_pressed_radius:I .line 116 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/github/leondevlifelog/gesturelockview/R$dimen;->default_dot_pressed_radius:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 .line 115 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result p2 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedRadius:I .line 117 sget p2, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_vibrate:I const/4 v0, 0x1 invoke-virtual {p1, p2, v0}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p2 .line 118 sget v1, Lcom/github/leondevlifelog/gesturelockview/R$styleable;->GestureLockView_min_length:I const/4 v3, 0x4 invoke-virtual {p1, v1, v3}, Landroid/content/res/TypedArray;->getInt(II)I move-result v1 iput v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->minLength:I .line 119 invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V if-eqz p2, :cond_ad .line 121 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getContext()Landroid/content/Context; move-result-object p1 const-string p2, "vibrator" invoke-virtual {p1, p2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroid/os/Vibrator; iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->vibrator:Landroid/os/Vibrator; .line 123 :cond_ad new-instance p1, Landroid/graphics/Paint; invoke-direct {p1}, Landroid/graphics/Paint;->()V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPaint:Landroid/graphics/Paint; .line 124 invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setFlags(I)V .line 125 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPaint:Landroid/graphics/Paint; invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V .line 126 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPaint:Landroid/graphics/Paint; sget-object p2, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 127 new-instance p1, Landroid/graphics/Paint; invoke-direct {p1}, Landroid/graphics/Paint;->()V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; .line 128 iget p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineColor:I invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setColor(I)V .line 129 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; sget-object p2, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 130 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; iget p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineWidth:I int-to-float p2, p2 invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStrokeWidth(F)V .line 131 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V .line 132 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; sget-object p2, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V .line 133 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; sget-object p2, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V .line 134 iget p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I iget p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I const/4 v1, 0x2 new-array v3, v1, [I aput p2, v3, v0 aput p1, v3, v2 const-class p1, Landroid/graphics/Region; invoke-static {p1, v3}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object p1 check-cast p1, [[Landroid/graphics/Region; iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsRegion:[[Landroid/graphics/Region; .line 135 iget p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I iget p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I new-array v3, v1, [I aput p2, v3, v0 aput p1, v3, v2 const-class p1, Landroid/graphics/Point; invoke-static {p1, v3}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object p1 check-cast p1, [[Landroid/graphics/Point; iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; move p1, v2 .line 136 :goto_11b iget p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I if-ge p1, p2, :cond_140 move p2, v2 .line 137 :goto_120 iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I if-ge p2, v3, :cond_13d .line 138 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsRegion:[[Landroid/graphics/Region; aget-object v3, v3, p1 new-instance v4, Landroid/graphics/Region; invoke-direct {v4}, Landroid/graphics/Region;->()V aput-object v4, v3, p2 .line 139 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v3, v3, p1 new-instance v4, Landroid/graphics/Point; invoke-direct {v4, v2, v2}, Landroid/graphics/Point;->(II)V aput-object v4, v3, p2 add-int/lit8 p2, p2, 0x1 goto :goto_120 :cond_13d add-int/lit8 p1, p1, 0x1 goto :goto_11b .line 142 :cond_140 iget p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I new-array v1, v1, [I aput p1, v1, v0 aput p2, v1, v2 sget-object p1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; invoke-static {p1, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object p1 check-cast p1, [[I iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I .line 143 new-instance p1, Landroid/graphics/Path; invoke-direct {p1}, Landroid/graphics/Path;->()V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->tmpPath:Landroid/graphics/Path; .line 145 new-instance p1, Landroid/graphics/Point; invoke-direct {p1}, Landroid/graphics/Point;->()V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; .line 146 new-instance p1, Landroid/graphics/Path; invoke-direct {p1}, Landroid/graphics/Path;->()V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePath:Landroid/graphics/Path; .line 147 new-instance p1, Landroid/graphics/Point; invoke-direct {p1, v2, v2}, Landroid/graphics/Point;->(II)V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; .line 148 new-instance p1, Ljava/lang/StringBuilder; invoke-direct {p1}, Ljava/lang/StringBuilder;->()V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; return-void .end method .method private reset()V .registers 5 const/4 v0, 0x0 move v1, v0 .line 401 :goto_2 iget v2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I if-ge v1, v2, :cond_17 move v2, v0 .line 402 :goto_7 iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I if-ge v2, v3, :cond_14 .line 403 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I aget-object v3, v3, v1 aput v0, v3, v2 add-int/lit8 v2, v2, 0x1 goto :goto_7 :cond_14 add-int/lit8 v1, v1, 0x1 goto :goto_2 .line 406 :cond_17 iget-object v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePath:Landroid/graphics/Path; invoke-virtual {v1}, Landroid/graphics/Path;->rewind()V .line 407 iget-object v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePath:Landroid/graphics/Path; iget-object v2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; iget v2, v2, Landroid/graphics/Point;->x:I int-to-float v2, v2 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; iget v3, v3, Landroid/graphics/Point;->y:I int-to-float v3, v3 invoke-virtual {v1, v2, v3}, Landroid/graphics/Path;->moveTo(FF)V .line 408 iget-object v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I move-result v2 invoke-virtual {v1, v0, v2}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; return-void .end method .method private resetStatus()V .registers 4 .line 363 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; iget-object v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget v1, v1, Landroid/graphics/Point;->x:I iget-object v2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget v2, v2, Landroid/graphics/Point;->y:I invoke-virtual {v0, v1, v2}, Landroid/graphics/Point;->set(II)V .line 364 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v0 iget v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->minLength:I if-ge v0, v1, :cond_28 .line 366 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I invoke-direct {p0, v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->setStatus(I)V .line 367 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; if-eqz v0, :cond_4c .line 368 invoke-interface {v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener;->onError()V goto :goto_4c .line 372 :cond_28 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; if-eqz v0, :cond_40 iget-object v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-interface {v0, v1}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener;->onCheckPassword(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_40 .line 373 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; if-eqz v0, :cond_4c .line 374 invoke-interface {v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener;->onSuccess()V goto :goto_4c .line 377 :cond_40 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I invoke-direct {p0, v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->setStatus(I)V .line 378 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; if-eqz v0, :cond_4c .line 379 invoke-interface {v0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener;->onError()V .line 383 :cond_4c :goto_4c iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; const/4 v1, 0x0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v2 invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; .line 384 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V .line 386 new-instance v0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView$1; invoke-direct {v0, p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView$1;->(Lcom/github/leondevlifelog/gesturelockview/GestureLockView;)V iput-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->action:Ljava/lang/Runnable; const-wide/16 v1, 0x3e8 .line 394 invoke-virtual {p0, v0, v1, v2}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->postDelayed(Ljava/lang/Runnable;J)Z return-void .end method .method private setStatus(I)V .registers 3 .line 420 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I if-ne v0, p1, :cond_15 .line 421 const-string v0, "#66FF0000" invoke-static {v0}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I move-result v0 iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->realLineColor:I .line 422 const-string v0, "#FF0000" invoke-static {v0}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I move-result v0 iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->realDotPressedColor:I goto :goto_21 .line 423 :cond_15 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->NORMAL:I if-ne v0, p1, :cond_21 .line 424 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineColor:I iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->realLineColor:I .line 425 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedColor:I iput v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->realDotPressedColor:I .line 427 :cond_21 :goto_21 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->STATUS:I .line 428 iget-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->realLineColor:I invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setColor(I)V return-void .end method .method private vibrator()V .registers 5 .line 435 iget-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->isTouching:Z if-nez v0, :cond_21 .line 436 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->vibrator:Landroid/os/Vibrator; if-eqz v0, :cond_21 .line 437 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1a const-wide/16 v2, 0x1e if-lt v0, v1, :cond_1c .line 438 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->vibrator:Landroid/os/Vibrator; const/16 v1, 0xa invoke-static {v2, v3, v1}, Landroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect; move-result-object v1 invoke-virtual {v0, v1}, Landroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;)V goto :goto_21 .line 440 :cond_1c iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->vibrator:Landroid/os/Vibrator; invoke-virtual {v0, v2, v3}, Landroid/os/Vibrator;->vibrate(J)V :cond_21 :goto_21 return-void .end method # virtual methods .method public getCol()I .registers 2 .line 456 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I return v0 .end method .method public getDotColor()I .registers 2 .line 465 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotColor:I return v0 .end method .method public getDotPressedColor()I .registers 2 .line 483 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedColor:I return v0 .end method .method public getDotPressedRadius()I .registers 2 .line 519 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedRadius:I return v0 .end method .method public getDotRadius()I .registers 2 .line 474 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotRadius:I return v0 .end method .method public getLineColor()I .registers 2 .line 492 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineColor:I return v0 .end method .method public getLineWidth()I .registers 2 .line 501 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineWidth:I return v0 .end method .method public getMinLength()I .registers 2 .line 528 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->minLength:I return v0 .end method .method public getOnCheckPasswordListener()Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; .registers 2 .line 537 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; return-object v0 .end method .method public getRow()I .registers 2 .line 447 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I return v0 .end method .method public isSecurityMode()Z .registers 2 .line 510 iget-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->securityMode:Z return v0 .end method .method protected onDraw(Landroid/graphics/Canvas;)V .registers 12 .line 199 invoke-super {p0, p1}, Landroid/view/View;->onDraw(Landroid/graphics/Canvas;)V .line 201 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget v0, v0, Landroid/graphics/Point;->x:I if-nez v0, :cond_f iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget v0, v0, Landroid/graphics/Point;->y:I if-eqz v0, :cond_35 :cond_f iget-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->securityMode:Z if-nez v0, :cond_35 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->password:Ljava/lang/StringBuilder; .line 203 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v0 if-lez v0, :cond_35 .line 204 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget v0, v0, Landroid/graphics/Point;->x:I int-to-float v2, v0 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lastPoint:Landroid/graphics/Point; iget v0, v0, Landroid/graphics/Point;->y:I int-to-float v3, v0 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; iget v0, v0, Landroid/graphics/Point;->x:I int-to-float v4, v0 iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->currentPoint:Landroid/graphics/Point; iget v0, v0, Landroid/graphics/Point;->y:I int-to-float v5, v0 iget-object v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; move-object v1, p1 invoke-virtual/range {v1 .. v6}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V .line 208 :cond_35 iget-boolean v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->securityMode:Z if-eqz v0, :cond_3f iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->STATUS:I iget v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I if-ne v0, v1, :cond_46 .line 209 :cond_3f iget-object v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePath:Landroid/graphics/Path; iget-object v1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->linePaint:Landroid/graphics/Paint; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V :cond_46 const/4 v0, 0x1 move v1, v0 .line 212 :goto_48 iget v2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I if-gt v1, v2, :cond_101 move v2, v0 .line 213 :goto_4d iget v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I if-gt v2, v3, :cond_fd .line 215 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getMiniViewSize()I move-result v3 iget v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I div-int/2addr v3, v4 mul-int/2addr v3, v1 int-to-float v3, v3 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getMiniViewSize()I move-result v4 iget v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I div-int/2addr v4, v5 int-to-float v4, v4 const/high16 v5, 0x40000000 # 2.0f div-float/2addr v4, v5 sub-float/2addr v3, v4 iget v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->paddingLeft:I int-to-float v4, v4 add-float/2addr v3, v4 .line 216 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getMiniViewSize()I move-result v4 iget v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I div-int/2addr v4, v6 mul-int/2addr v4, v2 int-to-float v4, v4 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getMiniViewSize()I move-result v6 iget v7, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I div-int/2addr v6, v7 int-to-float v6, v6 div-float/2addr v6, v5 sub-float/2addr v4, v6 iget v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->paddingLeft:I int-to-float v6, v6 add-float/2addr v4, v6 .line 218 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getViewOrientation()I move-result v6 if-ne v6, v0, :cond_8d .line 219 iget v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->widthHeightOffset:I int-to-float v6, v6 div-float/2addr v6, v5 add-float/2addr v4, v6 goto :goto_92 .line 221 :cond_8d iget v6, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->widthHeightOffset:I int-to-float v6, v6 div-float/2addr v6, v5 add-float/2addr v3, v6 .line 225 :goto_92 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsStatus:[[I add-int/lit8 v6, v1, -0x1 aget-object v5, v5, v6 add-int/lit8 v7, v2, -0x1 aget v5, v5, v7 if-ne v5, v0, :cond_c1 .line 226 iget-boolean v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->securityMode:Z if-eqz v5, :cond_a8 iget v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->STATUS:I iget v8, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->ERROR:I if-ne v5, v8, :cond_af .line 227 :cond_a8 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPaint:Landroid/graphics/Paint; iget v8, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->realDotPressedColor:I invoke-virtual {v5, v8}, Landroid/graphics/Paint;->setColor(I)V .line 229 :cond_af iget v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedRadius:I invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getTouchAreaMimiRadius()I move-result v8 if-le v5, v8, :cond_be invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getTouchAreaMimiRadius()I move-result v5 add-int/lit8 v5, v5, -0x10 goto :goto_ca :cond_be iget v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedRadius:I goto :goto_ca .line 231 :cond_c1 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPaint:Landroid/graphics/Paint; iget v8, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotColor:I invoke-virtual {v5, v8}, Landroid/graphics/Paint;->setColor(I)V .line 232 iget v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotRadius:I :goto_ca int-to-float v5, v5 .line 234 iget-object v8, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPaint:Landroid/graphics/Paint; invoke-virtual {p1, v3, v4, v5, v8}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V .line 237 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsPos:[[Landroid/graphics/Point; aget-object v5, v5, v6 aget-object v5, v5, v7 float-to-int v8, v3 float-to-int v9, v4 invoke-virtual {v5, v8, v9}, Landroid/graphics/Point;->set(II)V .line 240 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->tmpPath:Landroid/graphics/Path; invoke-virtual {v5}, Landroid/graphics/Path;->reset()V .line 241 iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->tmpPath:Landroid/graphics/Path; invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getTouchAreaMimiRadius()I move-result v8 int-to-float v8, v8 sget-object v9, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction; invoke-virtual {v5, v3, v4, v8, v9}, Landroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V .line 242 iget-object v3, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotsRegion:[[Landroid/graphics/Region; aget-object v3, v3, v6 aget-object v3, v3, v7 iget-object v4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->tmpPath:Landroid/graphics/Path; iget-object v5, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->globalRegion:Landroid/graphics/Region; invoke-virtual {v3, v4, v5}, Landroid/graphics/Region;->setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z add-int/lit8 v2, v2, 0x1 goto/16 :goto_4d :cond_fd add-int/lit8 v1, v1, 0x1 goto/16 :goto_48 :cond_101 return-void .end method .method protected onMeasure(II)V .registers 8 .line 171 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I move-result v0 .line 172 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 .line 173 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I move-result v1 .line 174 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p2 const/high16 v2, -0x80000000 const/16 v3, 0x190 const/high16 v4, 0x40000000 # 2.0f if-ne v0, v4, :cond_19 goto :goto_21 :cond_19 if-ne v0, v2, :cond_20 .line 182 invoke-static {v3, p1}, Ljava/lang/Math;->min(II)I move-result p1 goto :goto_21 :cond_20 move p1, v3 :goto_21 if-ne v1, v4, :cond_24 goto :goto_2c :cond_24 if-ne v1, v2, :cond_2b .line 190 invoke-static {v3, p2}, Ljava/lang/Math;->min(II)I move-result p2 goto :goto_2c :cond_2b move p2, v3 .line 194 :goto_2c invoke-virtual {p0, p1, p2}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->setMeasuredDimension(II)V return-void .end method .method protected onSizeChanged(IIII)V .registers 6 .line 153 invoke-super {p0, p1, p2, p3, p4}, Landroid/view/View;->onSizeChanged(IIII)V .line 154 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getPaddingLeft()I move-result p1 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->paddingLeft:I .line 155 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getPaddingTop()I move-result p1 .line 156 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getPaddingRight()I move-result p2 .line 157 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getPaddingBottom()I move-result p3 .line 159 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getWidth()I move-result p4 iget v0, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->paddingLeft:I sub-int/2addr p4, v0 sub-int/2addr p4, p2 iput p4, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentWidth:I .line 160 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getHeight()I move-result p2 sub-int/2addr p2, p1 sub-int/2addr p2, p3 iput p2, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentHeight:I .line 161 iget p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->contentWidth:I sub-int/2addr p2, p1 invoke-static {p2}, Ljava/lang/Math;->abs(I)I move-result p1 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->widthHeightOffset:I .line 163 new-instance p1, Landroid/graphics/Region; invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getWidth()I move-result p2 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->getBottom()I move-result p3 const/4 p4, 0x0 invoke-direct {p1, p4, p4, p2, p3}, Landroid/graphics/Region;->(IIII)V iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->globalRegion:Landroid/graphics/Region; return-void .end method .method public onTouchEvent(Landroid/view/MotionEvent;)Z .registers 5 .line 283 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_15 if-eq v0, v1, :cond_11 const/4 v2, 0x2 if-eq v0, v2, :cond_d return v1 .line 288 :cond_d invoke-direct {p0, p1}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dealMove(Landroid/view/MotionEvent;)V return v1 .line 291 :cond_11 invoke-direct {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->resetStatus()V return v1 .line 285 :cond_15 invoke-direct {p0, p1}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dealDown(Landroid/view/MotionEvent;)V return v1 .end method .method public setCol(I)V .registers 2 .line 460 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->col:I .line 461 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setDotColor(I)V .registers 2 .line 469 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotColor:I .line 470 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setDotPressedColor(I)V .registers 2 .line 487 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedColor:I .line 488 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setDotPressedRadius(I)V .registers 2 .line 523 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotPressedRadius:I .line 524 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setDotRadius(I)V .registers 2 .line 478 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->dotRadius:I .line 479 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setLineColor(I)V .registers 2 .line 496 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineColor:I .line 497 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setLineWidth(I)V .registers 2 .line 505 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->lineWidth:I .line 506 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setMinLength(I)V .registers 2 .line 532 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->minLength:I .line 533 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setOnCheckPasswordListener(Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener;)V .registers 2 .line 541 iput-object p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->onCheckPasswordListener:Lcom/github/leondevlifelog/gesturelockview/GestureLockView$OnCheckPasswordListener; return-void .end method .method public setRow(I)V .registers 2 .line 451 iput p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->row:I .line 452 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method .method public setSecurityMode(Z)V .registers 2 .line 514 iput-boolean p1, p0, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->securityMode:Z .line 515 invoke-virtual {p0}, Lcom/github/leondevlifelog/gesturelockview/GestureLockView;->invalidate()V return-void .end method