.class public Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView; .super Landroid/view/View; .source "HorizontalProgressWheelView.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener; } .end annotation # instance fields .field private final mCanvasClipBounds:Landroid/graphics/Rect; .field private mLastTouchedPosition:F .field private mMiddleLineColor:I .field private mProgressLineHeight:I .field private mProgressLineMargin:I .field private mProgressLinePaint:Landroid/graphics/Paint; .field private mProgressLineWidth:I .field private mScrollStarted:Z .field private mScrollingListener:Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener; .field private mTotalScrollDistance:F # direct methods .method public constructor (Landroid/content/Context;)V .registers 3 const/4 v0, 0x0 .line 38 invoke-direct {p0, p1, v0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->(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 42 invoke-direct {p0, p1, p2, v0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->(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 46 invoke-direct {p0, p1, p2, p3}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V .line 23 new-instance p1, Landroid/graphics/Rect; invoke-direct {p1}, Landroid/graphics/Rect;->()V iput-object p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; .line 47 invoke-direct {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->init()V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;II)V .registers 5 .line 52 invoke-direct {p0, p1, p2, p3, p4}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V .line 23 new-instance p1, Landroid/graphics/Rect; invoke-direct {p1}, Landroid/graphics/Rect;->()V iput-object p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; return-void .end method .method private init()V .registers 3 .line 131 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->getContext()Landroid/content/Context; move-result-object v0 sget v1, Lcom/yalantis/ucrop/R$color;->ucrop_color_progress_wheel_line:I invoke-static {v0, v1}, Landroidx/core/content/ContextCompat;->getColor(Landroid/content/Context;I)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mMiddleLineColor:I .line 133 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->getContext()Landroid/content/Context; move-result-object v0 invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/yalantis/ucrop/R$dimen;->ucrop_width_horizontal_wheel_progress_line:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineWidth:I .line 134 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->getContext()Landroid/content/Context; move-result-object v0 invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/yalantis/ucrop/R$dimen;->ucrop_height_horizontal_wheel_progress_line:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineHeight:I .line 135 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->getContext()Landroid/content/Context; move-result-object v0 invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/yalantis/ucrop/R$dimen;->ucrop_margin_horizontal_wheel_progress_line:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v0 iput v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineMargin:I .line 137 new-instance v0, Landroid/graphics/Paint; const/4 v1, 0x1 invoke-direct {v0, v1}, Landroid/graphics/Paint;->(I)V iput-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; .line 138 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 139 iget-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; iget v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineWidth:I int-to-float v1, v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V return-void .end method .method private onScrollEvent(Landroid/view/MotionEvent;F)V .registers 4 .line 122 iget v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mTotalScrollDistance:F sub-float/2addr v0, p2 iput v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mTotalScrollDistance:F .line 123 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->postInvalidate()V .line 124 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mLastTouchedPosition:F .line 125 iget-object p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollingListener:Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener; if-eqz p1, :cond_18 neg-float p2, p2 .line 126 iget v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mTotalScrollDistance:F invoke-interface {p1, p2, v0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener;->onScroll(FF)V :cond_18 return-void .end method # virtual methods .method protected onDraw(Landroid/graphics/Canvas;)V .registers 14 .line 94 invoke-super {p0, p1}, Landroid/view/View;->onDraw(Landroid/graphics/Canvas;)V .line 95 iget-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; invoke-virtual {p1, v0}, Landroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z .line 97 iget-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; invoke-virtual {v0}, Landroid/graphics/Rect;->width()I move-result v0 iget v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineWidth:I iget v2, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineMargin:I add-int v3, v1, v2 div-int/2addr v0, v3 .line 98 iget v3, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mTotalScrollDistance:F add-int/2addr v2, v1 int-to-float v1, v2 rem-float/2addr v3, v1 .line 100 iget-object v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->getResources()Landroid/content/res/Resources; move-result-object v2 sget v4, Lcom/yalantis/ucrop/R$color;->ucrop_color_progress_wheel_line:I invoke-virtual {v2, v4}, Landroid/content/res/Resources;->getColor(I)I move-result v2 invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setColor(I)V const/4 v1, 0x0 :goto_2a if-ge v1, v0, :cond_9b .line 102 div-int/lit8 v2, v0, 0x4 const/high16 v4, 0x437f0000 # 255.0f if-ge v1, v2, :cond_3d .line 103 iget-object v5, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; int-to-float v6, v1 int-to-float v2, v2 div-float/2addr v6, v2 mul-float/2addr v6, v4 float-to-int v2, v6 invoke-virtual {v5, v2}, Landroid/graphics/Paint;->setAlpha(I)V goto :goto_57 :cond_3d mul-int/lit8 v5, v0, 0x3 .line 104 div-int/lit8 v5, v5, 0x4 if-le v1, v5, :cond_50 .line 105 iget-object v5, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; sub-int v6, v0, v1 int-to-float v6, v6 int-to-float v2, v2 div-float/2addr v6, v2 mul-float/2addr v6, v4 float-to-int v2, v6 invoke-virtual {v5, v2}, Landroid/graphics/Paint;->setAlpha(I)V goto :goto_57 .line 107 :cond_50 iget-object v2, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; const/16 v4, 0xff invoke-virtual {v2, v4}, Landroid/graphics/Paint;->setAlpha(I)V :goto_57 neg-float v2, v3 .line 109 iget-object v4, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; iget v4, v4, Landroid/graphics/Rect;->left:I int-to-float v4, v4 add-float/2addr v4, v2 iget v5, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineWidth:I iget v6, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineMargin:I add-int/2addr v5, v6 mul-int/2addr v5, v1 int-to-float v5, v5 add-float v7, v4, v5 iget-object v4, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; .line 111 invoke-virtual {v4}, Landroid/graphics/Rect;->centerY()I move-result v4 int-to-float v4, v4 iget v5, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineHeight:I int-to-float v5, v5 const/high16 v6, 0x40800000 # 4.0f div-float/2addr v5, v6 sub-float v8, v4, v5 iget-object v4, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; iget v4, v4, Landroid/graphics/Rect;->left:I int-to-float v4, v4 add-float/2addr v2, v4 iget v4, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineWidth:I iget v5, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineMargin:I add-int/2addr v4, v5 mul-int/2addr v4, v1 int-to-float v4, v4 add-float v9, v2, v4 iget-object v2, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; .line 113 invoke-virtual {v2}, Landroid/graphics/Rect;->centerY()I move-result v2 int-to-float v2, v2 iget v4, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineHeight:I int-to-float v4, v4 div-float/2addr v4, v6 add-float v10, v2, v4 iget-object v11, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; move-object v6, p1 .line 109 invoke-virtual/range {v6 .. v11}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V add-int/lit8 v1, v1, 0x1 goto :goto_2a .line 116 :cond_9b iget-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; iget v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mMiddleLineColor:I invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V .line 117 iget-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; invoke-virtual {v0}, Landroid/graphics/Rect;->centerX()I move-result v0 int-to-float v2, v0 iget-object v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; invoke-virtual {v0}, Landroid/graphics/Rect;->centerY()I move-result v0 int-to-float v0, v0 iget v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineHeight:I int-to-float v1, v1 const/high16 v3, 0x40000000 # 2.0f div-float/2addr v1, v3 sub-float/2addr v0, v1 iget-object v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; invoke-virtual {v1}, Landroid/graphics/Rect;->centerX()I move-result v1 int-to-float v4, v1 iget-object v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mCanvasClipBounds:Landroid/graphics/Rect; invoke-virtual {v1}, Landroid/graphics/Rect;->centerY()I move-result v1 int-to-float v1, v1 iget v5, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLineHeight:I int-to-float v5, v5 div-float/2addr v5, v3 add-float/2addr v5, v1 iget-object v6, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mProgressLinePaint:Landroid/graphics/Paint; move-object v1, p1 move v3, v0 invoke-virtual/range {v1 .. v6}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V return-void .end method .method public onTouchEvent(Landroid/view/MotionEvent;)Z .registers 5 .line 66 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_35 if-eq v0, v1, :cond_2a const/4 v2, 0x2 if-eq v0, v2, :cond_d goto :goto_3b .line 77 :cond_d invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v0 iget v2, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mLastTouchedPosition:F sub-float/2addr v0, v2 const/4 v2, 0x0 cmpl-float v2, v0, v2 if-eqz v2, :cond_3b .line 79 iget-boolean v2, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollStarted:Z if-nez v2, :cond_26 .line 80 iput-boolean v1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollStarted:Z .line 81 iget-object v2, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollingListener:Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener; if-eqz v2, :cond_26 .line 82 invoke-interface {v2}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener;->onScrollStart()V .line 85 :cond_26 invoke-direct {p0, p1, v0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->onScrollEvent(Landroid/view/MotionEvent;F)V goto :goto_3b .line 71 :cond_2a iget-object p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollingListener:Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener; if-eqz p1, :cond_3b const/4 v0, 0x0 .line 72 iput-boolean v0, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollStarted:Z .line 73 invoke-interface {p1}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener;->onScrollEnd()V goto :goto_3b .line 68 :cond_35 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result p1 iput p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mLastTouchedPosition:F :cond_3b :goto_3b return v1 .end method .method public setMiddleLineColor(I)V .registers 2 .line 60 iput p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mMiddleLineColor:I .line 61 invoke-virtual {p0}, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->invalidate()V return-void .end method .method public setScrollingListener(Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener;)V .registers 2 .line 56 iput-object p1, p0, Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView;->mScrollingListener:Lcom/yalantis/ucrop/view/widget/HorizontalProgressWheelView$ScrollingListener; return-void .end method