.class public Lcom/yalantis/ucrop/view/OverlayView; .super Landroid/view/View; .source "OverlayView.java" # static fields .field public static final DEFAULT_CIRCLE_DIMMED_LAYER:Z = false .field public static final DEFAULT_CROP_GRID_COLUMN_COUNT:I = 0x2 .field public static final DEFAULT_CROP_GRID_ROW_COUNT:I = 0x2 .field public static final DEFAULT_DRAG_FRAME:Z = true .field public static final DEFAULT_FREESTYLE_CROP_ENABLED:Z = false .field public static final DEFAULT_SHOW_CROP_FRAME:Z = true .field public static final DEFAULT_SHOW_CROP_GRID:Z = true # instance fields .field private mCallback:Lcom/yalantis/ucrop/callback/OverlayViewChangeListener; .field private mCircleDimmedLayer:Z .field private mCircularPath:Landroid/graphics/Path; .field private mCropFrameCornersPaint:Landroid/graphics/Paint; .field private mCropFramePaint:Landroid/graphics/Paint; .field protected mCropGridCenter:[F .field private mCropGridColumnCount:I .field protected mCropGridCorners:[F .field private mCropGridPaint:Landroid/graphics/Paint; .field private mCropGridRowCount:I .field private mCropRectCornerTouchAreaLineLength:I .field private mCropRectMinSize:I .field private final mCropViewRect:Landroid/graphics/RectF; .field private mCurrentTouchCornerIndex:I .field private mDimmedColor:I .field private mDimmedStrokePaint:Landroid/graphics/Paint; .field private mGridPoints:[F .field private mIsDragFrame:Z .field private mIsFreestyleCropEnabled:Z .field private mPreviousTouchX:F .field private mPreviousTouchY:F .field private mShouldSetupCropBounds:Z .field private mShowCropFrame:Z .field private mShowCropGrid:Z .field private mTargetAspectRatio:F .field private final mTempRect:Landroid/graphics/RectF; .field protected mThisHeight:I .field protected mThisWidth:I .field private mTouchPointThreshold:I # direct methods .method public constructor (Landroid/content/Context;)V .registers 3 const/4 v0, 0x0 .line 75 invoke-direct {p0, p1, v0}, Lcom/yalantis/ucrop/view/OverlayView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 4 const/4 v0, 0x0 .line 79 invoke-direct {p0, p1, p2, v0}, Lcom/yalantis/ucrop/view/OverlayView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V .registers 4 .line 83 invoke-direct {p0, p1, p2, p3}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V const/4 p1, 0x1 .line 37 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z .line 38 new-instance p2, Landroid/graphics/RectF; invoke-direct {p2}, Landroid/graphics/RectF;->()V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; .line 39 new-instance p2, Landroid/graphics/RectF; invoke-direct {p2}, Landroid/graphics/RectF;->()V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; const/4 p2, 0x0 .line 43 iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F .line 47 new-instance p2, Landroid/graphics/Path; invoke-direct {p2}, Landroid/graphics/Path;->()V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircularPath:Landroid/graphics/Path; .line 48 new-instance p2, Landroid/graphics/Paint; invoke-direct {p2, p1}, Landroid/graphics/Paint;->(I)V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedStrokePaint:Landroid/graphics/Paint; .line 49 new-instance p2, Landroid/graphics/Paint; invoke-direct {p2, p1}, Landroid/graphics/Paint;->(I)V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridPaint:Landroid/graphics/Paint; .line 50 new-instance p2, Landroid/graphics/Paint; invoke-direct {p2, p1}, Landroid/graphics/Paint;->(I)V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; .line 51 new-instance p2, Landroid/graphics/Paint; invoke-direct {p2, p1}, Landroid/graphics/Paint;->(I)V iput-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFrameCornersPaint:Landroid/graphics/Paint; const/4 p1, 0x0 .line 55 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsFreestyleCropEnabled:Z const/high16 p1, -0x40800000 # -1.0f .line 58 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchX:F iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchY:F const/4 p1, -0x1 .line 59 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCurrentTouchCornerIndex:I .line 69 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object p1 sget p2, Lcom/yalantis/ucrop/R$dimen;->ucrop_default_crop_rect_corner_touch_threshold:I invoke-virtual {p1, p2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTouchPointThreshold:I .line 70 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object p1 sget p2, Lcom/yalantis/ucrop/R$dimen;->ucrop_default_crop_rect_min_size:I invoke-virtual {p1, p2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropRectMinSize:I .line 71 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object p1 sget p2, Lcom/yalantis/ucrop/R$dimen;->ucrop_default_crop_rect_corner_touch_area_line_length:I invoke-virtual {p1, p2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropRectCornerTouchAreaLineLength:I .line 84 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->init()V return-void .end method .method private getCurrentTouchIndex(FF)I .registers 13 .line 401 iget v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTouchPointThreshold:I int-to-double v0, v0 const/4 v2, -0x1 const/4 v3, 0x0 :goto_5 const/16 v4, 0x8 if-ge v3, v4, :cond_33 .line 403 iget-object v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridCorners:[F aget v4, v4, v3 sub-float v4, p1, v4 float-to-double v4, v4 const-wide/high16 v6, 0x4000000000000000L # 2.0 invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->pow(DD)D move-result-wide v4 iget-object v8, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridCorners:[F add-int/lit8 v9, v3, 0x1 aget v8, v8, v9 sub-float v8, p2, v8 float-to-double v8, v8 .line 404 invoke-static {v8, v9, v6, v7}, Ljava/lang/Math;->pow(DD)D move-result-wide v6 add-double/2addr v4, v6 .line 403 invoke-static {v4, v5}, Ljava/lang/Math;->sqrt(D)D move-result-wide v4 cmpg-double v6, v4, v0 if-gez v6, :cond_30 .line 407 div-int/lit8 v0, v3, 0x2 move v2, v0 move-wide v0, v4 :cond_30 add-int/lit8 v3, v3, 0x2 goto :goto_5 :cond_33 if-gez v2, :cond_3f .line 410 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0, p1, p2}, Landroid/graphics/RectF;->contains(FF)Z move-result p1 if-eqz p1, :cond_3f const/4 p1, 0x4 return p1 :cond_3f return v2 .end method .method private initCropFrameStyle(Landroid/content/res/TypedArray;)V .registers 6 .line 532 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_frame_stroke_size:I .line 533 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Lcom/yalantis/ucrop/R$dimen;->ucrop_default_crop_frame_stoke_width:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v1 .line 532 invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result v0 .line 534 sget v1, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_frame_color:I .line 535 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object v2 sget v3, Lcom/yalantis/ucrop/R$color;->ucrop_color_default_crop_frame:I invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getColor(I)I move-result v2 .line 534 invoke-virtual {p1, v1, v2}, Landroid/content/res/TypedArray;->getColor(II)I move-result p1 .line 536 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; int-to-float v2, v0 invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setStrokeWidth(F)V .line 537 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; invoke-virtual {v1, p1}, Landroid/graphics/Paint;->setColor(I)V .line 538 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; sget-object v2, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 540 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFrameCornersPaint:Landroid/graphics/Paint; mul-int/lit8 v0, v0, 0x3 int-to-float v0, v0 invoke-virtual {v1, v0}, Landroid/graphics/Paint;->setStrokeWidth(F)V .line 541 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFrameCornersPaint:Landroid/graphics/Paint; invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V .line 542 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFrameCornersPaint:Landroid/graphics/Paint; sget-object v0, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V return-void .end method .method private initCropGridStyle(Landroid/content/res/TypedArray;)V .registers 6 .line 550 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_grid_stroke_size:I .line 551 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Lcom/yalantis/ucrop/R$dimen;->ucrop_default_crop_grid_stoke_width:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v1 .line 550 invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I move-result v0 .line 552 sget v1, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_grid_color:I .line 553 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object v2 sget v3, Lcom/yalantis/ucrop/R$color;->ucrop_color_default_crop_grid:I invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getColor(I)I move-result v2 .line 552 invoke-virtual {p1, v1, v2}, Landroid/content/res/TypedArray;->getColor(II)I move-result v1 .line 554 iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridPaint:Landroid/graphics/Paint; int-to-float v0, v0 invoke-virtual {v2, v0}, Landroid/graphics/Paint;->setStrokeWidth(F)V .line 555 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridPaint:Landroid/graphics/Paint; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V .line 557 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_grid_row_count:I const/4 v1, 0x2 invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getInt(II)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridRowCount:I .line 558 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_grid_column_count:I invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getInt(II)I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridColumnCount:I return-void .end method .method private updateCropViewRect(FF)V .registers 8 .line 335 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0, v1}, Landroid/graphics/RectF;->set(Landroid/graphics/RectF;)V .line 337 iget v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCurrentTouchCornerIndex:I const/4 v1, 0x1 if-eqz v0, :cond_9c if-eq v0, v1, :cond_8a const/4 v2, 0x2 if-eq v0, v2, :cond_78 const/4 v2, 0x3 if-eq v0, v2, :cond_66 const/4 v2, 0x4 if-eq v0, v2, :cond_19 goto/16 :goto_ad .line 365 :cond_19 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchX:F sub-float/2addr p1, v1 iget v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchY:F sub-float/2addr p2, v1 invoke-virtual {v0, p1, p2}, Landroid/graphics/RectF;->offset(FF)V .line 366 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget p1, p1, Landroid/graphics/RectF;->left:F invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getLeft()I move-result p2 int-to-float p2, p2 cmpl-float p1, p1, p2 if-lez p1, :cond_65 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget p1, p1, Landroid/graphics/RectF;->top:F invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getTop()I move-result p2 int-to-float p2, p2 cmpl-float p1, p1, p2 if-lez p1, :cond_65 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget p1, p1, Landroid/graphics/RectF;->right:F .line 367 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getRight()I move-result p2 int-to-float p2, p2 cmpg-float p1, p1, p2 if-gez p1, :cond_65 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget p1, p1, Landroid/graphics/RectF;->bottom:F invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getBottom()I move-result p2 int-to-float p2, p2 cmpg-float p1, p1, p2 if-gez p1, :cond_65 .line 368 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; invoke-virtual {p1, p2}, Landroid/graphics/RectF;->set(Landroid/graphics/RectF;)V .line 369 invoke-direct {p0}, Lcom/yalantis/ucrop/view/OverlayView;->updateGridPoints()V .line 370 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->postInvalidate()V :cond_65 return-void .line 359 :cond_66 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z if-eqz v0, :cond_ad .line 360 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v2, v2, Landroid/graphics/RectF;->top:F iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v3, v3, Landroid/graphics/RectF;->right:F invoke-virtual {v0, p1, v2, v3, p2}, Landroid/graphics/RectF;->set(FFFF)V goto :goto_ad .line 353 :cond_78 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z if-eqz v0, :cond_ad .line 354 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v2, v2, Landroid/graphics/RectF;->left:F iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v3, v3, Landroid/graphics/RectF;->top:F invoke-virtual {v0, v2, v3, p1, p2}, Landroid/graphics/RectF;->set(FFFF)V goto :goto_ad .line 347 :cond_8a iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z if-eqz v0, :cond_ad .line 348 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v2, v2, Landroid/graphics/RectF;->left:F iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v3, v3, Landroid/graphics/RectF;->bottom:F invoke-virtual {v0, v2, p2, p1, v3}, Landroid/graphics/RectF;->set(FFFF)V goto :goto_ad .line 341 :cond_9c iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z if-eqz v0, :cond_ad .line 342 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v2, v2, Landroid/graphics/RectF;->right:F iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v3, v3, Landroid/graphics/RectF;->bottom:F invoke-virtual {v0, p1, p2, v2, v3}, Landroid/graphics/RectF;->set(FFFF)V .line 375 :cond_ad :goto_ad iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; invoke-virtual {p1}, Landroid/graphics/RectF;->height()F move-result p1 iget p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropRectMinSize:I int-to-float p2, p2 cmpl-float p1, p1, p2 const/4 p2, 0x0 if-ltz p1, :cond_bd move p1, v1 goto :goto_be :cond_bd move p1, p2 .line 376 :goto_be iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->width()F move-result v0 iget v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropRectMinSize:I int-to-float v2, v2 cmpl-float v0, v0, v2 if-ltz v0, :cond_cc goto :goto_cd :cond_cc move v1, p2 .line 377 :goto_cd iget-object p2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; if-eqz v1, :cond_d6 .line 378 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->left:F goto :goto_d8 :cond_d6 iget v0, p2, Landroid/graphics/RectF;->left:F :goto_d8 if-eqz p1, :cond_dd .line 379 iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; goto :goto_df :cond_dd iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; :goto_df iget v2, v2, Landroid/graphics/RectF;->top:F if-eqz v1, :cond_e6 .line 380 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; goto :goto_e8 :cond_e6 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; :goto_e8 iget v3, v3, Landroid/graphics/RectF;->right:F if-eqz p1, :cond_ef .line 381 iget-object v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; goto :goto_f1 :cond_ef iget-object v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; :goto_f1 iget v4, v4, Landroid/graphics/RectF;->bottom:F .line 377 invoke-virtual {p2, v0, v2, v3, v4}, Landroid/graphics/RectF;->set(FFFF)V if-nez p1, :cond_fa if-eqz v1, :cond_100 .line 384 :cond_fa invoke-direct {p0}, Lcom/yalantis/ucrop/view/OverlayView;->updateGridPoints()V .line 385 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->postInvalidate()V :cond_100 return-void .end method .method private updateGridPoints()V .registers 6 .line 238 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-static {v0}, Lcom/yalantis/ucrop/util/RectUtils;->getCornersFromRect(Landroid/graphics/RectF;)[F move-result-object v0 iput-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridCorners:[F .line 239 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-static {v0}, Lcom/yalantis/ucrop/util/RectUtils;->getCenterFromRect(Landroid/graphics/RectF;)[F move-result-object v0 iput-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridCenter:[F const/4 v0, 0x0 .line 241 iput-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F .line 242 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircularPath:Landroid/graphics/Path; invoke-virtual {v0}, Landroid/graphics/Path;->reset()V .line 243 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircularPath:Landroid/graphics/Path; iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v1}, Landroid/graphics/RectF;->centerX()F move-result v1 iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v2}, Landroid/graphics/RectF;->centerY()F move-result v2 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; .line 244 invoke-virtual {v3}, Landroid/graphics/RectF;->width()F move-result v3 iget-object v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v4}, Landroid/graphics/RectF;->height()F move-result v4 invoke-static {v3, v4}, Ljava/lang/Math;->min(FF)F move-result v3 const/high16 v4, 0x40000000 # 2.0f div-float/2addr v3, v4 sget-object v4, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction; .line 243 invoke-virtual {v0, v1, v2, v3, v4}, Landroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V return-void .end method # virtual methods .method protected drawCropGrid(Landroid/graphics/Canvas;)V .registers 11 .line 460 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShowCropGrid:Z if-eqz v0, :cond_c7 .line 461 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F if-nez v0, :cond_be iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->isEmpty()Z move-result v0 if-nez v0, :cond_be .line 463 iget v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridRowCount:I mul-int/lit8 v0, v0, 0x4 iget v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridColumnCount:I mul-int/lit8 v1, v1, 0x4 add-int/2addr v0, v1 new-array v0, v0, [F iput-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F const/4 v0, 0x0 move v1, v0 move v2, v1 .line 466 :goto_20 iget v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridRowCount:I const/high16 v4, 0x3f800000 # 1.0f if-ge v1, v3, :cond_70 .line 467 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v5, v2, 0x1 iget-object v6, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v6, v6, Landroid/graphics/RectF;->left:F aput v6, v3, v2 .line 468 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v6, v2, 0x2 iget-object v7, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v7}, Landroid/graphics/RectF;->height()F move-result v7 int-to-float v8, v1 add-float/2addr v8, v4 iget v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridRowCount:I add-int/lit8 v4, v4, 0x1 int-to-float v4, v4 div-float v4, v8, v4 mul-float/2addr v7, v4 iget-object v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v4, v4, Landroid/graphics/RectF;->top:F add-float/2addr v7, v4 aput v7, v3, v5 .line 469 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v4, v2, 0x3 iget-object v5, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v5, v5, Landroid/graphics/RectF;->right:F aput v5, v3, v6 .line 470 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v2, v2, 0x4 iget-object v5, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v5}, Landroid/graphics/RectF;->height()F move-result v5 iget v6, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridRowCount:I add-int/lit8 v6, v6, 0x1 int-to-float v6, v6 div-float/2addr v8, v6 mul-float/2addr v5, v8 iget-object v6, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v6, v6, Landroid/graphics/RectF;->top:F add-float/2addr v5, v6 aput v5, v3, v4 add-int/lit8 v1, v1, 0x1 goto :goto_20 .line 473 :cond_70 :goto_70 iget v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridColumnCount:I if-ge v0, v1, :cond_be .line 474 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v3, v2, 0x1 iget-object v5, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v5}, Landroid/graphics/RectF;->width()F move-result v5 int-to-float v6, v0 add-float/2addr v6, v4 iget v7, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridColumnCount:I add-int/lit8 v7, v7, 0x1 int-to-float v7, v7 div-float v7, v6, v7 mul-float/2addr v5, v7 iget-object v7, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v7, v7, Landroid/graphics/RectF;->left:F add-float/2addr v5, v7 aput v5, v1, v2 .line 475 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v5, v2, 0x2 iget-object v7, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v7, v7, Landroid/graphics/RectF;->top:F aput v7, v1, v3 .line 476 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v3, v2, 0x3 iget-object v7, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v7}, Landroid/graphics/RectF;->width()F move-result v7 iget v8, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridColumnCount:I add-int/lit8 v8, v8, 0x1 int-to-float v8, v8 div-float/2addr v6, v8 mul-float/2addr v7, v6 iget-object v6, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v6, v6, Landroid/graphics/RectF;->left:F add-float/2addr v7, v6 aput v7, v1, v5 .line 477 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F add-int/lit8 v2, v2, 0x4 iget-object v5, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget v5, v5, Landroid/graphics/RectF;->bottom:F aput v5, v1, v3 add-int/lit8 v0, v0, 0x1 goto :goto_70 .line 481 :cond_be iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F if-eqz v0, :cond_c7 .line 482 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridPaint:Landroid/graphics/Paint; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawLines([FLandroid/graphics/Paint;)V .line 486 :cond_c7 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShowCropFrame:Z if-eqz v0, :cond_d2 .line 487 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V .line 490 :cond_d2 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsFreestyleCropEnabled:Z if-eqz v0, :cond_113 .line 491 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 493 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0, v1}, Landroid/graphics/RectF;->set(Landroid/graphics/RectF;)V .line 494 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropRectCornerTouchAreaLineLength:I int-to-float v2, v1 neg-int v1, v1 int-to-float v1, v1 invoke-virtual {v0, v2, v1}, Landroid/graphics/RectF;->inset(FF)V .line 495 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; sget-object v1, Landroid/graphics/Region$Op;->DIFFERENCE:Landroid/graphics/Region$Op; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/RectF;Landroid/graphics/Region$Op;)Z .line 497 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0, v1}, Landroid/graphics/RectF;->set(Landroid/graphics/RectF;)V .line 498 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; iget v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropRectCornerTouchAreaLineLength:I neg-int v2, v1 int-to-float v2, v2 int-to-float v1, v1 invoke-virtual {v0, v2, v1}, Landroid/graphics/RectF;->inset(FF)V .line 499 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTempRect:Landroid/graphics/RectF; sget-object v1, Landroid/graphics/Region$Op;->DIFFERENCE:Landroid/graphics/Region$Op; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/RectF;Landroid/graphics/Region$Op;)Z .line 501 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFrameCornersPaint:Landroid/graphics/Paint; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V .line 503 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V :cond_113 return-void .end method .method protected drawDimmedLayer(Landroid/graphics/Canvas;)V .registers 6 .line 438 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 439 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircleDimmedLayer:Z if-eqz v0, :cond_f .line 440 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircularPath:Landroid/graphics/Path; sget-object v1, Landroid/graphics/Region$Op;->DIFFERENCE:Landroid/graphics/Region$Op; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z goto :goto_16 .line 442 :cond_f iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; sget-object v1, Landroid/graphics/Region$Op;->DIFFERENCE:Landroid/graphics/Region$Op; invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->clipRect(Landroid/graphics/RectF;Landroid/graphics/Region$Op;)Z .line 444 :goto_16 iget v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedColor:I invoke-virtual {p1, v0}, Landroid/graphics/Canvas;->drawColor(I)V .line 445 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V .line 447 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircleDimmedLayer:Z if-eqz v0, :cond_46 .line 448 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->centerX()F move-result v0 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v1}, Landroid/graphics/RectF;->centerY()F move-result v1 iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; .line 449 invoke-virtual {v2}, Landroid/graphics/RectF;->width()F move-result v2 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v3}, Landroid/graphics/RectF;->height()F move-result v3 invoke-static {v2, v3}, Ljava/lang/Math;->min(FF)F move-result v2 const/high16 v3, 0x40000000 # 2.0f div-float/2addr v2, v3 iget-object v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedStrokePaint:Landroid/graphics/Paint; .line 448 invoke-virtual {p1, v0, v1, v2, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V :cond_46 return-void .end method .method public getCropViewRect()Landroid/graphics/RectF; .registers 2 .line 97 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; return-object v0 .end method .method public getOverlayViewChangeListener()Lcom/yalantis/ucrop/callback/OverlayViewChangeListener; .registers 2 .line 88 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCallback:Lcom/yalantis/ucrop/callback/OverlayViewChangeListener; return-object v0 .end method .method protected init()V .registers 1 return-void .end method .method public isFreestyleCropEnabled()Z .registers 2 .line 101 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsFreestyleCropEnabled:Z return v0 .end method .method public ismIsDragFrame()Z .registers 2 .line 109 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z return v0 .end method .method protected onDraw(Landroid/graphics/Canvas;)V .registers 2 .line 277 invoke-super {p0, p1}, Landroid/view/View;->onDraw(Landroid/graphics/Canvas;)V .line 278 invoke-virtual {p0, p1}, Lcom/yalantis/ucrop/view/OverlayView;->drawDimmedLayer(Landroid/graphics/Canvas;)V .line 279 invoke-virtual {p0, p1}, Lcom/yalantis/ucrop/view/OverlayView;->drawCropGrid(Landroid/graphics/Canvas;)V return-void .end method .method protected onLayout(ZIIII)V .registers 6 .line 256 invoke-super/range {p0 .. p5}, Landroid/view/View;->onLayout(ZIIII)V if-eqz p1, :cond_31 .line 258 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingLeft()I move-result p1 .line 259 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingTop()I move-result p2 .line 260 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getWidth()I move-result p3 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingRight()I move-result p4 sub-int/2addr p3, p4 .line 261 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getHeight()I move-result p4 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingBottom()I move-result p5 sub-int/2addr p4, p5 sub-int/2addr p3, p1 .line 262 iput p3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisWidth:I sub-int/2addr p4, p2 .line 263 iput p4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisHeight:I .line 265 iget-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShouldSetupCropBounds:Z if-eqz p1, :cond_31 const/4 p1, 0x0 .line 266 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShouldSetupCropBounds:Z .line 267 iget p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTargetAspectRatio:F invoke-virtual {p0, p1}, Lcom/yalantis/ucrop/view/OverlayView;->setTargetAspectRatio(F)V :cond_31 return-void .end method .method public onTouchEvent(Landroid/view/MotionEvent;)Z .registers 9 .line 284 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {v0}, Landroid/graphics/RectF;->isEmpty()Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_98 iget-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsFreestyleCropEnabled:Z if-nez v0, :cond_f goto/16 :goto_98 .line 286 :cond_f invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v0 .line 287 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result v2 .line 289 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v3 and-int/lit16 v3, v3, 0xff const/4 v4, -0x1 const/4 v5, 0x1 if-nez v3, :cond_36 .line 290 iget p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchX:F const/4 v3, 0x0 cmpg-float p1, p1, v3 if-gez p1, :cond_2c .line 291 iput v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchX:F .line 292 iput v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchY:F .line 294 :cond_2c invoke-direct {p0, v0, v2}, Lcom/yalantis/ucrop/view/OverlayView;->getCurrentTouchIndex(FF)I move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCurrentTouchCornerIndex:I if-eq p1, v4, :cond_35 move v1, v5 :cond_35 return v1 .line 298 :cond_36 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v3 and-int/lit16 v3, v3, 0xff const/4 v6, 0x2 if-ne v3, v6, :cond_7f .line 299 invoke-virtual {p1}, Landroid/view/MotionEvent;->getPointerCount()I move-result v3 if-ne v3, v5, :cond_7f iget v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCurrentTouchCornerIndex:I if-eq v3, v4, :cond_7f .line 301 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingLeft()I move-result p1 int-to-float p1, p1 invoke-static {v0, p1}, Ljava/lang/Math;->max(FF)F move-result p1 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getWidth()I move-result v0 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingRight()I move-result v1 sub-int/2addr v0, v1 int-to-float v0, v0 invoke-static {p1, v0}, Ljava/lang/Math;->min(FF)F move-result p1 .line 302 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingTop()I move-result v0 int-to-float v0, v0 invoke-static {v2, v0}, Ljava/lang/Math;->max(FF)F move-result v0 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getHeight()I move-result v1 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingBottom()I move-result v2 sub-int/2addr v1, v2 int-to-float v1, v1 invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F move-result v0 .line 304 invoke-direct {p0, p1, v0}, Lcom/yalantis/ucrop/view/OverlayView;->updateCropViewRect(FF)V .line 306 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchX:F .line 307 iput v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchY:F return v5 .line 313 :cond_7f invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result p1 and-int/lit16 p1, p1, 0xff if-ne p1, v5, :cond_98 const/high16 p1, -0x40800000 # -1.0f .line 314 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchX:F .line 315 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mPreviousTouchY:F .line 316 iput v4, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCurrentTouchCornerIndex:I .line 318 iget-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCallback:Lcom/yalantis/ucrop/callback/OverlayViewChangeListener; if-eqz p1, :cond_98 .line 319 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-interface {p1, v0}, Lcom/yalantis/ucrop/callback/OverlayViewChangeListener;->onCropRectUpdated(Landroid/graphics/RectF;)V :cond_98 :goto_98 return v1 .end method .method protected processStyledAttributes(Landroid/content/res/TypedArray;)V .registers 5 .line 513 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_circle_dimmed_layer:I const/4 v1, 0x0 invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result v0 iput-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircleDimmedLayer:Z .line 514 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_dimmed_color:I .line 515 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Lcom/yalantis/ucrop/R$color;->ucrop_color_default_dimmed:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getColor(I)I move-result v1 .line 514 invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getColor(II)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedColor:I .line 516 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedStrokePaint:Landroid/graphics/Paint; invoke-virtual {v1, v0}, Landroid/graphics/Paint;->setColor(I)V .line 517 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedStrokePaint:Landroid/graphics/Paint; sget-object v1, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 518 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedStrokePaint:Landroid/graphics/Paint; const/high16 v1, 0x3f800000 # 1.0f invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V .line 520 invoke-direct {p0, p1}, Lcom/yalantis/ucrop/view/OverlayView;->initCropFrameStyle(Landroid/content/res/TypedArray;)V .line 521 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_show_frame:I const/4 v1, 0x1 invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result v0 iput-boolean v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShowCropFrame:Z .line 523 invoke-direct {p0, p1}, Lcom/yalantis/ucrop/view/OverlayView;->initCropGridStyle(Landroid/content/res/TypedArray;)V .line 524 sget v0, Lcom/yalantis/ucrop/R$styleable;->ucrop_UCropView_ucrop_show_grid:I invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z move-result p1 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShowCropGrid:Z return-void .end method .method public setCircleDimmedLayer(Z)V .registers 2 .line 122 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCircleDimmedLayer:Z return-void .end method .method public setCropFrameColor(I)V .registers 3 .line 188 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V return-void .end method .method public setCropFrameStrokeWidth(I)V .registers 3 .line 174 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropFramePaint:Landroid/graphics/Paint; int-to-float p1, p1 invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setStrokeWidth(F)V return-void .end method .method public setCropGridColor(I)V .registers 3 .line 195 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridPaint:Landroid/graphics/Paint; invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V return-void .end method .method public setCropGridColumnCount(I)V .registers 2 .line 139 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridColumnCount:I const/4 p1, 0x0 .line 140 iput-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F return-void .end method .method public setCropGridRowCount(I)V .registers 2 .line 130 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridRowCount:I const/4 p1, 0x0 .line 131 iput-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mGridPoints:[F return-void .end method .method public setCropGridStrokeWidth(I)V .registers 3 .line 181 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropGridPaint:Landroid/graphics/Paint; int-to-float p1, p1 invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setStrokeWidth(F)V return-void .end method .method public setDimmedColor(I)V .registers 2 .line 167 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mDimmedColor:I return-void .end method .method public setDragFrame(Z)V .registers 2 .line 113 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsDragFrame:Z return-void .end method .method public setFreestyleCropEnabled(Z)V .registers 2 .line 105 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mIsFreestyleCropEnabled:Z return-void .end method .method public setOverlayViewChangeListener(Lcom/yalantis/ucrop/callback/OverlayViewChangeListener;)V .registers 2 .line 92 iput-object p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCallback:Lcom/yalantis/ucrop/callback/OverlayViewChangeListener; return-void .end method .method public setShowCropFrame(Z)V .registers 2 .line 149 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShowCropFrame:Z return-void .end method .method public setShowCropGrid(Z)V .registers 2 .line 158 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShowCropGrid:Z return-void .end method .method public setTargetAspectRatio(F)V .registers 2 .line 204 iput p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTargetAspectRatio:F .line 205 iget p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisWidth:I if-lez p1, :cond_d .line 206 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->setupCropBounds()V .line 207 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->postInvalidate()V goto :goto_10 :cond_d const/4 p1, 0x1 .line 209 iput-boolean p1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mShouldSetupCropBounds:Z :goto_10 return-void .end method .method public setupCropBounds()V .registers 8 .line 218 iget v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisWidth:I int-to-float v1, v0 iget v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mTargetAspectRatio:F div-float/2addr v1, v2 float-to-int v1, v1 .line 219 iget v3, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisHeight:I if-le v1, v3, :cond_31 int-to-float v1, v3 mul-float/2addr v1, v2 float-to-int v1, v1 sub-int/2addr v0, v1 .line 221 div-int/lit8 v0, v0, 0x2 .line 222 iget-object v2, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingLeft()I move-result v3 add-int/2addr v3, v0 int-to-float v3, v3 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingTop()I move-result v4 int-to-float v4, v4 .line 223 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingLeft()I move-result v5 add-int/2addr v5, v1 add-int/2addr v5, v0 int-to-float v0, v5 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingTop()I move-result v1 iget v5, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisHeight:I add-int/2addr v1, v5 int-to-float v1, v1 .line 222 invoke-virtual {v2, v3, v4, v0, v1}, Landroid/graphics/RectF;->set(FFFF)V goto :goto_53 :cond_31 sub-int/2addr v3, v1 .line 225 div-int/lit8 v3, v3, 0x2 .line 226 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingLeft()I move-result v2 int-to-float v2, v2 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingTop()I move-result v4 add-int/2addr v4, v3 int-to-float v4, v4 .line 227 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingLeft()I move-result v5 iget v6, p0, Lcom/yalantis/ucrop/view/OverlayView;->mThisWidth:I add-int/2addr v5, v6 int-to-float v5, v5 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/OverlayView;->getPaddingTop()I move-result v6 add-int/2addr v6, v1 add-int/2addr v6, v3 int-to-float v1, v6 .line 226 invoke-virtual {v0, v2, v4, v5, v1}, Landroid/graphics/RectF;->set(FFFF)V .line 230 :goto_53 iget-object v0, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCallback:Lcom/yalantis/ucrop/callback/OverlayViewChangeListener; if-eqz v0, :cond_5c .line 231 iget-object v1, p0, Lcom/yalantis/ucrop/view/OverlayView;->mCropViewRect:Landroid/graphics/RectF; invoke-interface {v0, v1}, Lcom/yalantis/ucrop/callback/OverlayViewChangeListener;->onCropRectUpdated(Landroid/graphics/RectF;)V .line 234 :cond_5c invoke-direct {p0}, Lcom/yalantis/ucrop/view/OverlayView;->updateGridPoints()V return-void .end method