.class public Lcom/example/linechartlibrary/AxesRenderer; .super Ljava/lang/Object; .source "AxesRenderer.java" # static fields .field private static final BOTTOM:I = 0x3 .field private static final DEFAULT_AXIS_MARGIN_DP:I = 0x0 .field private static final LEFT:I = 0x1 .field private static final RIGHT:I = 0x2 .field private static final TAG:Ljava/lang/String; = "AxesRenderer" .field private static final TOP:I .field private static final labelWidthChars:[C # instance fields .field private autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; .field private autoValuesToDrawTab:[[F .field private axisMargin:I .field private chart:Lcom/example/linechartlibrary/Chart; .field private computator:Lcom/example/linechartlibrary/ChartComputator; .field private density:F .field private fontMetricsTab:[Landroid/graphics/Paint$FontMetricsInt; .field private labelBaselineTab:[F .field private labelBuffer:[C .field private labelDimensionForMarginsTab:[I .field private labelDimensionForStepsTab:[I .field private labelPaintTab:[Landroid/graphics/Paint; .field private labelTextAscentTab:[I .field private labelTextDescentTab:[I .field private labelWidthTab:[I .field private linePaintTab:[Landroid/graphics/Paint; .field private linesDrawBufferTab:[[F .field private nameBaselineTab:[F .field private namePaintTab:[Landroid/graphics/Paint; .field private rawValuesTab:[[F .field private scaledDensity:F .field private separationLineTab:[F .field private tiltedLabelXTranslation:[I .field private tiltedLabelYTranslation:[I .field private valuesToDrawNumTab:[I .field private valuesToDrawTab:[[Lcom/example/linechartlibrary/AxisValue; # direct methods .method static constructor ()V .registers 1 const/16 v0, 0x40 .line 37 new-array v0, v0, [C fill-array-data v0, :array_a sput-object v0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthChars:[C return-void :array_a .array-data 2 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s .end array-data .end method .method public constructor (Landroid/content/Context;Lcom/example/linechartlibrary/Chart;)V .registers 10 .line 100 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x4 .line 48 new-array v1, v0, [Landroid/graphics/Paint; new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V const/4 v3, 0x0 aput-object v2, v1, v3 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V const/4 v4, 0x1 aput-object v2, v1, v4 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V const/4 v5, 0x2 aput-object v2, v1, v5 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V const/4 v6, 0x3 aput-object v2, v1, v6 iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; .line 49 new-array v1, v0, [Landroid/graphics/Paint; new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v3 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v4 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v5 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v6 iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; .line 50 new-array v1, v0, [Landroid/graphics/Paint; new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v3 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v4 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v5 new-instance v2, Landroid/graphics/Paint; invoke-direct {v2}, Landroid/graphics/Paint;->()V aput-object v2, v1, v6 iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->linePaintTab:[Landroid/graphics/Paint; .line 51 new-array v1, v0, [F iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F .line 52 new-array v1, v0, [F iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F .line 53 new-array v1, v0, [F iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F .line 54 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I .line 55 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I .line 56 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I .line 57 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I .line 58 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForStepsTab:[I .line 59 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->tiltedLabelXTranslation:[I .line 60 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->tiltedLabelYTranslation:[I .line 61 new-array v1, v0, [Landroid/graphics/Paint$FontMetricsInt; new-instance v2, Landroid/graphics/Paint$FontMetricsInt; invoke-direct {v2}, Landroid/graphics/Paint$FontMetricsInt;->()V aput-object v2, v1, v3 new-instance v2, Landroid/graphics/Paint$FontMetricsInt; invoke-direct {v2}, Landroid/graphics/Paint$FontMetricsInt;->()V aput-object v2, v1, v4 new-instance v2, Landroid/graphics/Paint$FontMetricsInt; invoke-direct {v2}, Landroid/graphics/Paint$FontMetricsInt;->()V aput-object v2, v1, v5 new-instance v2, Landroid/graphics/Paint$FontMetricsInt; invoke-direct {v2}, Landroid/graphics/Paint$FontMetricsInt;->()V aput-object v2, v1, v6 iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->fontMetricsTab:[Landroid/graphics/Paint$FontMetricsInt; const/16 v1, 0x40 .line 66 new-array v1, v1, [C iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBuffer:[C .line 71 new-array v1, v0, [I iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawNumTab:[I .line 76 new-array v1, v5, [I aput v3, v1, v4 aput v0, v1, v3 sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; invoke-static {v2, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object v1 check-cast v1, [[F iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F .line 82 new-array v1, v5, [I aput v3, v1, v4 aput v0, v1, v3 sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; invoke-static {v2, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object v1 check-cast v1, [[F iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesToDrawTab:[[F .line 87 new-array v1, v5, [I aput v3, v1, v4 aput v0, v1, v3 const-class v2, Lcom/example/linechartlibrary/AxisValue; invoke-static {v2, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object v1 check-cast v1, [[Lcom/example/linechartlibrary/AxisValue; iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawTab:[[Lcom/example/linechartlibrary/AxisValue; .line 92 new-array v1, v5, [I aput v3, v1, v4 aput v0, v1, v3 sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; invoke-static {v2, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; move-result-object v1 check-cast v1, [[F iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F .line 97 new-array v1, v0, [Lcom/example/linechartlibrary/AxisAutoValues; new-instance v2, Lcom/example/linechartlibrary/AxisAutoValues; invoke-direct {v2}, Lcom/example/linechartlibrary/AxisAutoValues;->()V aput-object v2, v1, v3 new-instance v2, Lcom/example/linechartlibrary/AxisAutoValues; invoke-direct {v2}, Lcom/example/linechartlibrary/AxisAutoValues;->()V aput-object v2, v1, v4 new-instance v2, Lcom/example/linechartlibrary/AxisAutoValues; invoke-direct {v2}, Lcom/example/linechartlibrary/AxisAutoValues;->()V aput-object v2, v1, v5 new-instance v2, Lcom/example/linechartlibrary/AxisAutoValues; invoke-direct {v2}, Lcom/example/linechartlibrary/AxisAutoValues;->()V aput-object v2, v1, v6 iput-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; .line 101 iput-object p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; .line 102 invoke-interface {p2}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object p2 iput-object p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; .line 103 invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p2 invoke-virtual {p2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object p2 iget p2, p2, Landroid/util/DisplayMetrics;->density:F iput p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->density:F .line 104 invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p1 invoke-virtual {p1}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object p1 iget p1, p1, Landroid/util/DisplayMetrics;->scaledDensity:F iput p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->scaledDensity:F .line 105 iget p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->density:F invoke-static {p1, v3}, Lcom/example/linechartlibrary/ChartUtils;->dp2px(FI)I move-result p1 iput p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I :goto_142 if-ge v3, v0, :cond_177 .line 107 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, v3 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 108 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, v3 invoke-virtual {p1, v4}, Landroid/graphics/Paint;->setAntiAlias(Z)V .line 109 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object p1, p1, v3 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 110 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object p1, p1, v3 invoke-virtual {p1, v4}, Landroid/graphics/Paint;->setAntiAlias(Z)V .line 111 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->linePaintTab:[Landroid/graphics/Paint; aget-object p1, p1, v3 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 112 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->linePaintTab:[Landroid/graphics/Paint; aget-object p1, p1, v3 invoke-virtual {p1, v4}, Landroid/graphics/Paint;->setAntiAlias(Z)V add-int/lit8 v3, v3, 0x1 goto :goto_142 :cond_177 return-void .end method .method private checkRawValue(Landroid/graphics/Rect;FZIZ)Z .registers 8 const/4 v0, 0x1 if-eqz p3, :cond_3e const/4 p3, 0x0 if-eqz p5, :cond_25 .line 512 iget-object p4, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I const/4 p5, 0x3 aget p5, p4, p5 iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr p5, v1 int-to-float p5, p5 .line 513 aget p4, p4, p3 add-int/2addr p4, v1 int-to-float p4, p4 .line 514 iget v1, p1, Landroid/graphics/Rect;->bottom:I int-to-float v1, v1 sub-float/2addr v1, p5 cmpg-float p5, p2, v1 if-gtz p5, :cond_24 iget p1, p1, Landroid/graphics/Rect;->top:I int-to-float p1, p1 add-float/2addr p1, p4 cmpl-float p1, p2, p1 if-ltz p1, :cond_24 return v0 :cond_24 return p3 .line 520 :cond_25 iget-object p5, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I aget p4, p5, p4 div-int/lit8 p4, p4, 0x2 int-to-float p4, p4 .line 521 iget p5, p1, Landroid/graphics/Rect;->left:I int-to-float p5, p5 add-float/2addr p5, p4 cmpl-float p5, p2, p5 if-ltz p5, :cond_3d iget p1, p1, Landroid/graphics/Rect;->right:I int-to-float p1, p1 sub-float/2addr p1, p4 cmpg-float p1, p2, p1 if-gtz p1, :cond_3d return v0 :cond_3d return p3 :cond_3e return v0 .end method .method private drawAxisLabelsAndName(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V .registers 19 move-object v0, p0 move-object/from16 v8, p1 move/from16 v9, p3 .line 582 invoke-direct {p0, v9}, Lcom/example/linechartlibrary/AxesRenderer;->isAxisVertical(I)Z move-result v10 const/4 v1, 0x1 const/4 v2, 0x0 if-eq v1, v9, :cond_1e const/4 v1, 0x2 if-ne v1, v9, :cond_11 goto :goto_1e :cond_11 if-eqz v9, :cond_19 const/4 v1, 0x3 if-ne v1, v9, :cond_17 goto :goto_19 :cond_17 move v1, v2 goto :goto_25 .line 586 :cond_19 :goto_19 iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F aget v1, v1, v9 goto :goto_25 .line 584 :cond_1e :goto_1e iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F aget v1, v1, v9 move v14, v2 move v2, v1 move v1, v14 :goto_25 const/4 v3, 0x0 move v11, v3 .line 589 :goto_27 iget-object v3, v0, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawNumTab:[I aget v3, v3, v9 if-ge v11, v3, :cond_ac .line 591 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->isAutoGenerated()Z move-result v3 if-eqz v3, :cond_4a .line 592 iget-object v3, v0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesToDrawTab:[[F aget-object v3, v3, v9 aget v3, v3, v11 .line 593 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getFormatter()Lcom/example/linechartlibrary/AxisValueFormatter; move-result-object v4 iget-object v5, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelBuffer:[C iget-object v6, v0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v6, v6, v9 iget v6, v6, Lcom/example/linechartlibrary/AxisAutoValues;->decimals:I invoke-interface {v4, v5, v3, v6}, Lcom/example/linechartlibrary/AxisValueFormatter;->formatValueForAutoGeneratedAxis([CFI)I move-result v3 goto :goto_5a .line 596 :cond_4a iget-object v3, v0, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawTab:[[Lcom/example/linechartlibrary/AxisValue; aget-object v3, v3, v9 aget-object v3, v3, v11 .line 597 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getFormatter()Lcom/example/linechartlibrary/AxisValueFormatter; move-result-object v4 iget-object v5, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelBuffer:[C invoke-interface {v4, v5, v3}, Lcom/example/linechartlibrary/AxisValueFormatter;->formatValueForManualAxis([CLcom/example/linechartlibrary/AxisValue;)I move-result v3 :goto_5a move v4, v3 if-eqz v10, :cond_64 .line 601 iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v1, v1, v9 aget v1, v1, v11 goto :goto_6a .line 603 :cond_64 iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v2, v2, v9 aget v2, v2, v11 :goto_6a move v12, v1 move v13, v2 .line 606 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->hasTiltedLabels()Z move-result v1 if-eqz v1, :cond_96 .line 607 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I .line 608 iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->tiltedLabelXTranslation:[I aget v1, v1, v9 int-to-float v1, v1 iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->tiltedLabelYTranslation:[I aget v2, v2, v9 int-to-float v2, v2 invoke-virtual {v8, v1, v2}, Landroid/graphics/Canvas;->translate(FF)V .line 610 iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelBuffer:[C array-length v1, v2 sub-int v3, v1, v4 iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v7, v1, v9 move-object/from16 v1, p1 move v5, v13 move v6, v12 invoke-virtual/range {v1 .. v7}, Landroid/graphics/Canvas;->drawText([CIIFFLandroid/graphics/Paint;)V .line 612 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V goto :goto_a6 .line 614 :cond_96 iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelBuffer:[C array-length v1, v2 sub-int v3, v1, v4 iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v7, v1, v9 move-object/from16 v1, p1 move v5, v13 move v6, v12 invoke-virtual/range {v1 .. v7}, Landroid/graphics/Canvas;->drawText([CIIFFLandroid/graphics/Paint;)V :goto_a6 add-int/lit8 v11, v11, 0x1 move v1, v12 move v2, v13 goto/16 :goto_27 .line 620 :cond_ac iget-object v1, v0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v1}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v1 .line 621 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getName()Ljava/lang/String; move-result-object v2 invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v2 if-nez v2, :cond_fc if-eqz v10, :cond_e8 .line 623 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I .line 624 invoke-virtual {v1}, Landroid/graphics/Rect;->centerY()I move-result v2 int-to-float v2, v2 invoke-virtual {v1}, Landroid/graphics/Rect;->centerY()I move-result v3 int-to-float v3, v3 const/high16 v4, -0x3d4c0000 # -90.0f invoke-virtual {v8, v4, v2, v3}, Landroid/graphics/Canvas;->rotate(FFF)V .line 625 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {v1}, Landroid/graphics/Rect;->centerY()I move-result v1 int-to-float v1, v1 iget-object v3, v0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F aget v3, v3, v9 iget-object v4, v0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object v4, v4, v9 invoke-virtual {v8, v2, v1, v3, v4}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V .line 627 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V goto :goto_fc .line 629 :cond_e8 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {v1}, Landroid/graphics/Rect;->centerX()I move-result v1 int-to-float v1, v1 iget-object v3, v0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F aget v3, v3, v9 iget-object v4, v0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object v4, v4, v9 invoke-virtual {v8, v2, v1, v3, v4}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V :cond_fc :goto_fc return-void .end method .method private drawAxisLines(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V .registers 20 move-object/from16 v0, p0 move/from16 v1, p3 .line 532 iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v2}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v2 .line 537 invoke-direct {v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->isAxisVertical(I)Z move-result v3 const/4 v4, 0x1 const/4 v5, 0x3 const/4 v6, 0x0 if-eq v4, v1, :cond_3b const/4 v4, 0x2 if-ne v4, v1, :cond_17 goto :goto_3b :cond_17 if-eqz v1, :cond_24 if-ne v5, v1, :cond_1c goto :goto_24 :cond_1c move v2, v6 move v4, v2 move v9, v4 move v11, v9 move v12, v11 move v13, v12 move v14, v13 goto :goto_52 .line 545 :cond_24 :goto_24 iget v4, v2, Landroid/graphics/Rect;->left:I int-to-float v4, v4 .line 546 iget v7, v2, Landroid/graphics/Rect;->right:I int-to-float v7, v7 .line 547 iget-object v8, v0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F aget v8, v8, v1 .line 548 iget v9, v2, Landroid/graphics/Rect;->top:I int-to-float v9, v9 .line 549 iget v2, v2, Landroid/graphics/Rect;->bottom:I int-to-float v2, v2 move v11, v4 move v13, v7 move v12, v8 move v14, v12 move v4, v2 move v2, v6 goto :goto_52 .line 539 :cond_3b :goto_3b iget-object v4, v0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F aget v4, v4, v1 .line 540 iget v7, v2, Landroid/graphics/Rect;->bottom:I int-to-float v7, v7 .line 541 iget v8, v2, Landroid/graphics/Rect;->top:I int-to-float v8, v8 .line 542 iget v9, v2, Landroid/graphics/Rect;->left:I int-to-float v9, v9 .line 543 iget v2, v2, Landroid/graphics/Rect;->right:I int-to-float v2, v2 move v11, v4 move v13, v11 move v4, v6 move v12, v7 move v14, v8 move v6, v9 move v9, v4 .line 552 :goto_52 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->hasSeparationLine()Z move-result v7 if-eqz v7, :cond_6c .line 553 iget-object v7, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v7, v7, v1 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getHasSeparationLineColor()I move-result v8 invoke-virtual {v7, v8}, Landroid/graphics/Paint;->setColor(I)V .line 554 iget-object v7, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v15, v7, v1 move-object/from16 v10, p1 invoke-virtual/range {v10 .. v15}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V .line 556 :cond_6c iget-object v7, v0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v7, v7, v1 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->getTextColor()I move-result v8 invoke-virtual {v7, v8}, Landroid/graphics/Paint;->setColor(I)V .line 557 invoke-virtual/range {p2 .. p2}, Lcom/example/linechartlibrary/Axis;->hasLines()Z move-result v7 if-eqz v7, :cond_bb const/4 v7, 0x0 move v8, v7 .line 559 :goto_7f iget-object v10, v0, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawNumTab:[I aget v10, v10, v1 if-ge v8, v10, :cond_ac if-eqz v3, :cond_8f .line 561 iget-object v4, v0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v4, v4, v1 aget v4, v4, v8 move v9, v4 goto :goto_96 .line 563 :cond_8f iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v2, v2, v1 aget v2, v2, v8 move v6, v2 .line 565 :goto_96 iget-object v10, v0, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F aget-object v10, v10, v1 mul-int/lit8 v11, v8, 0x4 aput v6, v10, v11 add-int/lit8 v12, v11, 0x1 .line 566 aput v9, v10, v12 add-int/lit8 v12, v11, 0x2 .line 567 aput v2, v10, v12 add-int/2addr v11, v5 .line 568 aput v4, v10, v11 add-int/lit8 v8, v8, 0x1 goto :goto_7f .line 575 :cond_ac iget-object v2, v0, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F aget-object v2, v2, v1 mul-int/lit8 v8, v8, 0x4 iget-object v3, v0, Lcom/example/linechartlibrary/AxesRenderer;->linePaintTab:[Landroid/graphics/Paint; aget-object v1, v3, v1 move-object/from16 v3, p1 invoke-virtual {v3, v2, v7, v8, v1}, Landroid/graphics/Canvas;->drawLines([FIILandroid/graphics/Paint;)V :cond_bb return-void .end method .method private getAxisNameMargin(Lcom/example/linechartlibrary/Axis;I)I .registers 4 .line 256 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getName()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result p1 if-nez p1, :cond_17 .line 257 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget p1, p1, p2 .line 258 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget p2, v0, p2 add-int/2addr p1, p2 .line 259 iget p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr p1, p2 goto :goto_18 :cond_17 const/4 p1, 0x0 :goto_18 return p1 .end method .method private initAxis(Lcom/example/linechartlibrary/Axis;I)V .registers 3 if-nez p1, :cond_3 return-void .line 143 :cond_3 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisAttributes(Lcom/example/linechartlibrary/Axis;I)V .line 144 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisMargin(Lcom/example/linechartlibrary/Axis;I)V .line 145 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisMeasurements(Lcom/example/linechartlibrary/Axis;I)V return-void .end method .method private initAxisAttributes(Lcom/example/linechartlibrary/Axis;I)V .registers 4 .line 149 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisPaints(Lcom/example/linechartlibrary/Axis;I)V .line 150 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisTextAlignment(Lcom/example/linechartlibrary/Axis;I)V .line 151 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->hasTiltedLabels()Z move-result v0 if-eqz v0, :cond_13 .line 152 invoke-direct {p0, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisDimensionForTiltedLabels(I)V .line 153 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->intiTiltedLabelsTranslation(Lcom/example/linechartlibrary/Axis;I)V goto :goto_16 .line 155 :cond_13 invoke-direct {p0, p2}, Lcom/example/linechartlibrary/AxesRenderer;->initAxisDimension(I)V :goto_16 return-void .end method .method private initAxisDimension(I)V .registers 5 const/4 v0, 0x1 if-eq v0, p1, :cond_22 const/4 v0, 0x2 if-ne v0, p1, :cond_7 goto :goto_22 :cond_7 if-eqz p1, :cond_c const/4 v0, 0x3 if-ne v0, p1, :cond_32 .line 209 :cond_c iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p1 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget v2, v2, p1 add-int/2addr v1, v2 aput v1, v0, p1 .line 211 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForStepsTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I aget v1, v1, p1 aput v1, v0, p1 goto :goto_32 .line 206 :cond_22 :goto_22 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I aget v1, v1, p1 aput v1, v0, p1 .line 207 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForStepsTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p1 aput v1, v0, p1 :cond_32 :goto_32 return-void .end method .method private initAxisDimensionForTiltedLabels(I)V .registers 8 .line 198 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I aget v0, v0, p1 int-to-double v0, v0 const-wide/high16 v2, 0x4000000000000000L # 2.0 invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->pow(DD)D move-result-wide v0 div-double/2addr v0, v2 invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D move-result-wide v0 double-to-int v0, v0 .line 199 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p1 int-to-double v4, v1 invoke-static {v4, v5, v2, v3}, Ljava/lang/Math;->pow(DD)D move-result-wide v4 div-double/2addr v4, v2 invoke-static {v4, v5}, Ljava/lang/Math;->sqrt(D)D move-result-wide v1 double-to-int v1, v1 .line 200 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I add-int/2addr v1, v0 aput v1, v2, p1 .line 201 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForStepsTab:[I int-to-float v1, v1 const/high16 v2, 0x3f400000 # 0.75f mul-float/2addr v1, v2 invoke-static {v1}, Ljava/lang/Math;->round(F)I move-result v1 aput v1, v0, p1 return-void .end method .method private initAxisMargin(Lcom/example/linechartlibrary/Axis;I)V .registers 5 .line 247 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result v0 if-nez v0, :cond_1e invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isAutoGenerated()Z move-result v0 if-nez v0, :cond_16 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v0 invoke-interface {v0}, Ljava/util/List;->isEmpty()Z move-result v0 if-nez v0, :cond_1e .line 248 :cond_16 iget v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I aget v1, v1, p2 add-int/2addr v0, v1 goto :goto_1f :cond_1e const/4 v0, 0x0 .line 250 :goto_1f invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->getAxisNameMargin(Lcom/example/linechartlibrary/Axis;I)I move-result p1 add-int/2addr v0, p1 .line 251 invoke-direct {p0, v0, p2}, Lcom/example/linechartlibrary/AxesRenderer;->insetContentRectWithAxesMargins(II)V return-void .end method .method private initAxisMeasurements(Lcom/example/linechartlibrary/Axis;I)V .registers 6 const/4 v0, 0x1 if-ne v0, p2, :cond_64 .line 278 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 if-eqz p1, :cond_2f .line 279 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->left:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 .line 280 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->left:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I sub-int/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget v1, v1, p2 sub-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 goto :goto_55 .line 283 :cond_2f iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->left:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I sub-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 .line 284 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F aget v0, v0, p2 int-to-float v1, v1 sub-float/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget v1, v1, p2 int-to-float v1, v1 sub-float/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I aget v1, v1, p2 int-to-float v1, v1 sub-float/2addr v0, v1 aput v0, p1, p2 .line 287 :goto_55 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->left:I int-to-float v0, v0 aput v0, p1, p2 goto/16 :goto_194 :cond_64 const/4 v0, 0x2 if-ne v0, p2, :cond_c8 .line 289 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 if-eqz p1, :cond_93 .line 290 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->right:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I sub-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 .line 291 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->right:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p2 add-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 goto :goto_b9 .line 294 :cond_93 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->right:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 .line 295 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F aget v0, v0, p2 int-to-float v1, v1 add-float/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p2 int-to-float v1, v1 add-float/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I aget v1, v1, p2 int-to-float v1, v1 add-float/2addr v0, v1 aput v0, p1, p2 .line 298 :goto_b9 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->right:I int-to-float v0, v0 aput v0, p1, p2 goto/16 :goto_194 :cond_c8 const/4 v0, 0x3 if-ne v0, p2, :cond_12f .line 300 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 if-eqz p1, :cond_fc .line 301 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->bottom:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I sub-int/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget v1, v1, p2 sub-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 .line 303 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->bottom:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p2 add-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 goto :goto_121 .line 306 :cond_fc iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->bottom:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr v0, v1 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v2, v2, p2 add-int/2addr v0, v2 int-to-float v0, v0 aput v0, p1, p2 .line 308 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F aget v0, v0, p2 int-to-float v1, v1 add-float/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I aget v1, v1, p2 int-to-float v1, v1 add-float/2addr v0, v1 aput v0, p1, p2 .line 311 :goto_121 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->bottom:I int-to-float v0, v0 aput v0, p1, p2 goto :goto_194 :cond_12f if-nez p2, :cond_195 .line 313 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 if-eqz p1, :cond_162 .line 314 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->top:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I add-int/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p2 add-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 .line 316 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->top:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I sub-int/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget v1, v1, p2 sub-int/2addr v0, v1 int-to-float v0, v0 aput v0, p1, p2 goto :goto_187 .line 319 :cond_162 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAxesMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->top:I iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->axisMargin:I sub-int/2addr v0, v1 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I aget v2, v2, p2 sub-int/2addr v0, v2 int-to-float v0, v0 aput v0, p1, p2 .line 321 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->nameBaselineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelBaselineTab:[F aget v0, v0, p2 int-to-float v1, v1 sub-float/2addr v0, v1 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForMarginsTab:[I aget v1, v1, p2 int-to-float v1, v1 sub-float/2addr v0, v1 aput v0, p1, p2 .line 324 :goto_187 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->separationLineTab:[F iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v0 iget v0, v0, Landroid/graphics/Rect;->top:I int-to-float v0, v0 aput v0, p1, p2 :goto_194 return-void .line 326 :cond_195 new-instance p1, Ljava/lang/IllegalArgumentException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "Invalid axis position: " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method private initAxisPaints(Lcom/example/linechartlibrary/Axis;I)V .registers 7 .line 160 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getTypeface()Landroid/graphics/Typeface; move-result-object v0 if-eqz v0, :cond_14 .line 162 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v1, v1, p2 invoke-virtual {v1, v0}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; .line 163 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object v1, v1, p2 invoke-virtual {v1, v0}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; .line 165 :cond_14 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getTextColor()I move-result v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V .line 166 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->scaledDensity:F invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getTextSize()I move-result v2 invoke-static {v1, v2}, Lcom/example/linechartlibrary/ChartUtils;->sp2px(FI)I move-result v1 int-to-float v1, v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextSize(F)V .line 167 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->fontMetricsTab:[Landroid/graphics/Paint$FontMetricsInt; aget-object v1, v1, p2 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I .line 168 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getTextColor()I move-result v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V .line 169 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 iget v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->scaledDensity:F invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getTextSize()I move-result v2 invoke-static {v1, v2}, Lcom/example/linechartlibrary/ChartUtils;->sp2px(FI)I move-result v1 int-to-float v1, v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextSize(F)V .line 170 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->linePaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getLineColor()I move-result v1 invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V .line 172 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->fontMetricsTab:[Landroid/graphics/Paint$FontMetricsInt; aget-object v1, v1, p2 iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I invoke-static {v1}, Ljava/lang/Math;->abs(I)I move-result v1 aput v1, v0, p2 .line 173 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextDescentTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->fontMetricsTab:[Landroid/graphics/Paint$FontMetricsInt; aget-object v1, v1, p2 iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I invoke-static {v1}, Ljava/lang/Math;->abs(I)I move-result v1 aput v1, v0, p2 .line 174 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object v1, v1, p2 sget-object v2, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthChars:[C const/4 v3, 0x0 .line 175 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->getMaxLabelChars()I move-result p1 .line 174 invoke-virtual {v1, v2, v3, p1}, Landroid/graphics/Paint;->measureText([CII)F move-result p1 float-to-int p1, p1 aput p1, v0, p2 return-void .end method .method private initAxisTextAlignment(Lcom/example/linechartlibrary/Axis;I)V .registers 5 .line 179 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->namePaintTab:[Landroid/graphics/Paint; aget-object v0, v0, p2 sget-object v1, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align; invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V if-eqz p2, :cond_49 const/4 v0, 0x3 if-ne v0, p2, :cond_f goto :goto_49 :cond_f const/4 v0, 0x1 if-ne v0, p2, :cond_2c .line 183 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 if-eqz p1, :cond_22 .line 184 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, p2 sget-object p2, Landroid/graphics/Paint$Align;->LEFT:Landroid/graphics/Paint$Align; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V goto :goto_52 .line 186 :cond_22 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, p2 sget-object p2, Landroid/graphics/Paint$Align;->RIGHT:Landroid/graphics/Paint$Align; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V goto :goto_52 :cond_2c const/4 v0, 0x2 if-ne v0, p2, :cond_52 .line 189 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 if-eqz p1, :cond_3f .line 190 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, p2 sget-object p2, Landroid/graphics/Paint$Align;->RIGHT:Landroid/graphics/Paint$Align; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V goto :goto_52 .line 192 :cond_3f iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, p2 sget-object p2, Landroid/graphics/Paint$Align;->LEFT:Landroid/graphics/Paint$Align; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V goto :goto_52 .line 181 :cond_49 :goto_49 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelPaintTab:[Landroid/graphics/Paint; aget-object p1, p1, p2 sget-object p2, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V :cond_52 :goto_52 return-void .end method .method private insetContentRectWithAxesMargins(II)V .registers 5 const/4 v0, 0x1 const/4 v1, 0x0 if-ne v0, p2, :cond_e .line 266 iget-object p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p2}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object p2 invoke-virtual {p2, p1, v1, v1, v1}, Lcom/example/linechartlibrary/ChartComputator;->insetContentRect(IIII)V goto :goto_33 :cond_e const/4 v0, 0x2 if-ne v0, p2, :cond_1b .line 268 iget-object p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p2}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object p2 invoke-virtual {p2, v1, v1, p1, v1}, Lcom/example/linechartlibrary/ChartComputator;->insetContentRect(IIII)V goto :goto_33 :cond_1b if-nez p2, :cond_27 .line 270 iget-object p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p2}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object p2 invoke-virtual {p2, v1, p1, v1, v1}, Lcom/example/linechartlibrary/ChartComputator;->insetContentRect(IIII)V goto :goto_33 :cond_27 const/4 v0, 0x3 if-ne v0, p2, :cond_33 .line 272 iget-object p2, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p2}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object p2 invoke-virtual {p2, v1, v1, v1, p1}, Lcom/example/linechartlibrary/ChartComputator;->insetContentRect(IIII)V :cond_33 :goto_33 return-void .end method .method private intiTiltedLabelsTranslation(Lcom/example/linechartlibrary/Axis;I)V .registers 10 .line 216 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelWidthTab:[I aget v0, v0, p2 int-to-double v0, v0 const-wide/high16 v2, 0x4000000000000000L # 2.0 invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->pow(DD)D move-result-wide v0 div-double/2addr v0, v2 invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D move-result-wide v0 double-to-int v0, v0 .line 217 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget v1, v1, p2 int-to-double v4, v1 invoke-static {v4, v5, v2, v3}, Ljava/lang/Math;->pow(DD)D move-result-wide v4 div-double/2addr v4, v2 invoke-static {v4, v5}, Ljava/lang/Math;->sqrt(D)D move-result-wide v1 double-to-int v1, v1 .line 220 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result p1 const/4 v2, 0x3 const/4 v3, 0x1 const/4 v4, 0x2 const/4 v5, 0x0 if-eqz p1, :cond_44 if-ne v3, p2, :cond_2d goto :goto_5d :cond_2d if-ne v4, p2, :cond_32 neg-int p1, v0 .line 224 div-int/2addr p1, v4 goto :goto_48 :cond_32 if-nez p2, :cond_3f .line 226 div-int/2addr v0, v4 add-int/2addr v1, v0 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget p1, p1, p2 :goto_3a sub-int/2addr v1, p1 move v6, v5 move v5, v1 move v1, v6 goto :goto_5d :cond_3f if-ne v2, p2, :cond_5c neg-int p1, v0 .line 228 div-int/2addr p1, v4 goto :goto_48 :cond_44 if-ne v3, p2, :cond_4b neg-int p1, v0 .line 232 div-int/2addr p1, v4 :goto_48 move v1, v5 move v5, p1 goto :goto_5d :cond_4b if-ne v4, p2, :cond_4e goto :goto_5d :cond_4e if-nez p2, :cond_53 neg-int p1, v0 .line 236 div-int/2addr p1, v4 goto :goto_48 :cond_53 if-ne v2, p2, :cond_5c .line 238 div-int/2addr v0, v4 add-int/2addr v1, v0 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelTextAscentTab:[I aget p1, p1, p2 goto :goto_3a :cond_5c move v1, v5 .line 241 :goto_5d iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->tiltedLabelXTranslation:[I aput v1, p1, p2 .line 242 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->tiltedLabelYTranslation:[I aput v5, p1, p2 return-void .end method .method private isAxisVertical(I)Z .registers 5 const/4 v0, 0x1 if-eq v0, p1, :cond_24 const/4 v1, 0x2 if-ne v1, p1, :cond_7 goto :goto_24 :cond_7 if-eqz p1, :cond_22 const/4 v0, 0x3 if-ne v0, p1, :cond_d goto :goto_22 .line 641 :cond_d new-instance v0, Ljava/lang/IllegalArgumentException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Invalid axis position " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw v0 :cond_22 :goto_22 const/4 p1, 0x0 return p1 :cond_24 :goto_24 return v0 .end method .method private onChartDataOrSizeChanged()V .registers 3 .line 125 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisXTop()Lcom/example/linechartlibrary/Axis; move-result-object v0 const/4 v1, 0x0 invoke-direct {p0, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->initAxis(Lcom/example/linechartlibrary/Axis;I)V .line 126 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisXBottom()Lcom/example/linechartlibrary/Axis; move-result-object v0 const/4 v1, 0x3 invoke-direct {p0, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->initAxis(Lcom/example/linechartlibrary/Axis;I)V .line 127 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisYLeft()Lcom/example/linechartlibrary/Axis; move-result-object v0 const/4 v1, 0x1 invoke-direct {p0, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->initAxis(Lcom/example/linechartlibrary/Axis;I)V .line 128 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisYRight()Lcom/example/linechartlibrary/Axis; move-result-object v0 const/4 v1, 0x2 invoke-direct {p0, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->initAxis(Lcom/example/linechartlibrary/Axis;I)V return-void .end method .method private prepareAutoGeneratedAxis(Lcom/example/linechartlibrary/Axis;I)V .registers 14 .line 463 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getVisibleViewport()Lcom/example/linechartlibrary/Viewport; move-result-object v0 .line 464 iget-object v1, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v1}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v1 .line 465 invoke-direct {p0, p2}, Lcom/example/linechartlibrary/AxesRenderer;->isAxisVertical(I)Z move-result v8 if-eqz v8, :cond_1b .line 469 iget v2, v0, Lcom/example/linechartlibrary/Viewport;->bottom:F .line 470 iget v0, v0, Lcom/example/linechartlibrary/Viewport;->top:F .line 471 invoke-virtual {v1}, Landroid/graphics/Rect;->height()I move-result v3 goto :goto_23 .line 473 :cond_1b iget v2, v0, Lcom/example/linechartlibrary/Viewport;->left:F .line 474 iget v0, v0, Lcom/example/linechartlibrary/Viewport;->right:F .line 475 invoke-virtual {v1}, Landroid/graphics/Rect;->width()I move-result v3 .line 477 :goto_23 invoke-static {v3}, Ljava/lang/Math;->abs(I)I move-result v3 iget-object v4, p0, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForStepsTab:[I aget v4, v4, p2 div-int/2addr v3, v4 div-int/lit8 v3, v3, 0x2 iget-object v4, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v4, v4, p2 invoke-static {v2, v0, v3, v4}, Lcom/example/linechartlibrary/FloatUtils;->computeAutoGeneratedAxisValues(FFILcom/example/linechartlibrary/AxisAutoValues;)V .line 480 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->hasLines()Z move-result v0 if-eqz v0, :cond_58 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F aget-object v0, v0, p2 array-length v0, v0 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I mul-int/lit8 v2, v2, 0x4 if-ge v0, v2, :cond_58 .line 482 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I mul-int/lit8 v2, v2, 0x4 new-array v2, v2, [F aput-object v2, v0, p2 .line 485 :cond_58 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v0, v0, p2 array-length v0, v0 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I if-ge v0, v2, :cond_71 .line 486 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I new-array v2, v2, [F aput-object v2, v0, p2 .line 488 :cond_71 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesToDrawTab:[[F aget-object v0, v0, p2 array-length v0, v0 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I if-ge v0, v2, :cond_8a .line 489 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesToDrawTab:[[F iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I new-array v2, v2, [F aput-object v2, v0, p2 :cond_8a const/4 v0, 0x0 move v9, v0 .line 494 :goto_8c iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v2, v2, p2 iget v2, v2, Lcom/example/linechartlibrary/AxisAutoValues;->valuesNumber:I if-ge v0, v2, :cond_dc if-eqz v8, :cond_a5 .line 496 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; iget-object v3, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v3, v3, p2 iget-object v3, v3, Lcom/example/linechartlibrary/AxisAutoValues;->values:[F aget v3, v3, v0 invoke-virtual {v2, v3}, Lcom/example/linechartlibrary/ChartComputator;->computeRawY(F)F move-result v2 goto :goto_b3 .line 498 :cond_a5 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; iget-object v3, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v3, v3, p2 iget-object v3, v3, Lcom/example/linechartlibrary/AxisAutoValues;->values:[F aget v3, v3, v0 invoke-virtual {v2, v3}, Lcom/example/linechartlibrary/ChartComputator;->computeRawX(F)F move-result v2 :goto_b3 move v10, v2 .line 500 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result v5 move-object v2, p0 move-object v3, v1 move v4, v10 move v6, p2 move v7, v8 invoke-direct/range {v2 .. v7}, Lcom/example/linechartlibrary/AxesRenderer;->checkRawValue(Landroid/graphics/Rect;FZIZ)Z move-result v2 if-eqz v2, :cond_d9 .line 501 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v2, v2, p2 aput v10, v2, v9 .line 502 iget-object v2, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesToDrawTab:[[F aget-object v2, v2, p2 iget-object v3, p0, Lcom/example/linechartlibrary/AxesRenderer;->autoValuesBufferTab:[Lcom/example/linechartlibrary/AxisAutoValues; aget-object v3, v3, p2 iget-object v3, v3, Lcom/example/linechartlibrary/AxisAutoValues;->values:[F aget v3, v3, v0 aput v3, v2, v9 add-int/lit8 v9, v9, 0x1 :cond_d9 add-int/lit8 v0, v0, 0x1 goto :goto_8c .line 506 :cond_dc iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawNumTab:[I aput v9, p1, p2 return-void .end method .method private prepareAxisToDraw(Lcom/example/linechartlibrary/Axis;I)V .registers 4 .line 362 invoke-virtual {p1}, Lcom/example/linechartlibrary/Axis;->isAutoGenerated()Z move-result v0 if-eqz v0, :cond_a .line 363 invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->prepareAutoGeneratedAxis(Lcom/example/linechartlibrary/Axis;I)V goto :goto_d .line 365 :cond_a invoke-direct {p0, p1, p2}, Lcom/example/linechartlibrary/AxesRenderer;->prepareCustomAxis(Lcom/example/linechartlibrary/Axis;I)V :goto_d return-void .end method .method private prepareCustomAxis(Lcom/example/linechartlibrary/Axis;I)V .registers 21 move-object/from16 v6, p0 move/from16 v7, p2 .line 397 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getMaximumViewport()Lcom/example/linechartlibrary/Viewport; move-result-object v0 .line 398 iget-object v1, v6, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v1}, Lcom/example/linechartlibrary/ChartComputator;->getVisibleViewport()Lcom/example/linechartlibrary/Viewport; move-result-object v1 .line 399 iget-object v2, v6, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v2}, Lcom/example/linechartlibrary/ChartComputator;->getContentRectMinusAllMargins()Landroid/graphics/Rect; move-result-object v8 .line 401 invoke-direct {v6, v7}, Lcom/example/linechartlibrary/AxesRenderer;->isAxisVertical(I)Z move-result v9 const/4 v2, 0x0 const/high16 v3, 0x3f800000 # 1.0f if-eqz v9, :cond_45 .line 405 invoke-virtual {v0}, Lcom/example/linechartlibrary/Viewport;->height()F move-result v4 cmpl-float v4, v4, v2 if-lez v4, :cond_3f invoke-virtual {v1}, Lcom/example/linechartlibrary/Viewport;->height()F move-result v4 cmpl-float v4, v4, v2 if-lez v4, :cond_3f .line 406 invoke-virtual {v8}, Landroid/graphics/Rect;->height()I move-result v4 int-to-float v4, v4 invoke-virtual {v0}, Lcom/example/linechartlibrary/Viewport;->height()F move-result v0 invoke-virtual {v1}, Lcom/example/linechartlibrary/Viewport;->height()F move-result v5 div-float/2addr v0, v5 mul-float/2addr v4, v0 goto :goto_40 :cond_3f move v4, v3 .line 408 :goto_40 iget v0, v1, Lcom/example/linechartlibrary/Viewport;->bottom:F .line 409 iget v1, v1, Lcom/example/linechartlibrary/Viewport;->top:F goto :goto_6a .line 411 :cond_45 invoke-virtual {v0}, Lcom/example/linechartlibrary/Viewport;->width()F move-result v4 cmpl-float v4, v4, v2 if-lez v4, :cond_65 invoke-virtual {v1}, Lcom/example/linechartlibrary/Viewport;->width()F move-result v4 cmpl-float v4, v4, v2 if-lez v4, :cond_65 .line 412 invoke-virtual {v8}, Landroid/graphics/Rect;->width()I move-result v4 int-to-float v4, v4 invoke-virtual {v0}, Lcom/example/linechartlibrary/Viewport;->width()F move-result v0 invoke-virtual {v1}, Lcom/example/linechartlibrary/Viewport;->width()F move-result v5 div-float/2addr v0, v5 mul-float/2addr v4, v0 goto :goto_66 :cond_65 move v4, v3 .line 414 :goto_66 iget v0, v1, Lcom/example/linechartlibrary/Viewport;->left:F .line 415 iget v1, v1, Lcom/example/linechartlibrary/Viewport;->right:F :goto_6a move v10, v0 move v11, v1 cmpl-float v0, v4, v2 if-nez v0, :cond_71 goto :goto_72 :cond_71 move v3, v4 .line 421 :goto_72 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v0 invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 iget-object v1, v6, Lcom/example/linechartlibrary/AxesRenderer;->labelDimensionForStepsTab:[I aget v1, v1, v7 mul-int/2addr v0, v1 int-to-double v0, v0 const-wide/high16 v4, 0x3ff8000000000000L # 1.5 mul-double/2addr v0, v4 float-to-double v2, v3 div-double/2addr v0, v2 invoke-static {v0, v1}, Ljava/lang/Math;->ceil(D)D move-result-wide v0 const-wide/high16 v2, 0x3ff0000000000000L # 1.0 .line 420 invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->max(DD)D move-result-wide v0 double-to-int v12, v0 .line 423 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->hasLines()Z move-result v0 if-eqz v0, :cond_b7 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F aget-object v0, v0, v7 array-length v0, v0 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 mul-int/lit8 v1, v1, 0x4 if-ge v0, v1, :cond_b7 .line 424 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->linesDrawBufferTab:[[F invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 mul-int/lit8 v1, v1, 0x4 new-array v1, v1, [F aput-object v1, v0, v7 .line 427 :cond_b7 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v0, v0, v7 array-length v0, v0 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 if-ge v0, v1, :cond_d4 .line 428 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 new-array v1, v1, [F aput-object v1, v0, v7 .line 431 :cond_d4 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawTab:[[Lcom/example/linechartlibrary/AxisValue; aget-object v0, v0, v7 array-length v0, v0 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 if-ge v0, v1, :cond_f1 .line 432 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawTab:[[Lcom/example/linechartlibrary/AxisValue; invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 new-array v1, v1, [Lcom/example/linechartlibrary/AxisValue; aput-object v1, v0, v7 .line 438 :cond_f1 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->getValues()Ljava/util/List; move-result-object v0 invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v13 const/4 v0, 0x0 move v14, v0 move v15, v14 :cond_fc :goto_fc invoke-interface {v13}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_14e invoke-interface {v13}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 move-object/from16 v16, v0 check-cast v16, Lcom/example/linechartlibrary/AxisValue; .line 440 invoke-virtual/range {v16 .. v16}, Lcom/example/linechartlibrary/AxisValue;->getValue()F move-result v0 cmpl-float v1, v0, v10 if-ltz v1, :cond_fc cmpg-float v1, v0, v11 if-gtz v1, :cond_fc .line 443 rem-int v1, v15, v12 if-nez v1, :cond_14b if-eqz v9, :cond_123 .line 445 iget-object v1, v6, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v1, v0}, Lcom/example/linechartlibrary/ChartComputator;->computeRawY(F)F move-result v0 goto :goto_129 .line 447 :cond_123 iget-object v1, v6, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v1, v0}, Lcom/example/linechartlibrary/ChartComputator;->computeRawX(F)F move-result v0 :goto_129 move/from16 v17, v0 .line 449 invoke-virtual/range {p1 .. p1}, Lcom/example/linechartlibrary/Axis;->isInside()Z move-result v3 move-object/from16 v0, p0 move-object v1, v8 move/from16 v2, v17 move/from16 v4, p2 move v5, v9 invoke-direct/range {v0 .. v5}, Lcom/example/linechartlibrary/AxesRenderer;->checkRawValue(Landroid/graphics/Rect;FZIZ)Z move-result v0 if-eqz v0, :cond_14b .line 450 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->rawValuesTab:[[F aget-object v0, v0, v7 aput v17, v0, v14 .line 451 iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawTab:[[Lcom/example/linechartlibrary/AxisValue; aget-object v0, v0, v7 aput-object v16, v0, v14 add-int/lit8 v14, v14, 0x1 :cond_14b add-int/lit8 v15, v15, 0x1 goto :goto_fc .line 459 :cond_14e iget-object v0, v6, Lcom/example/linechartlibrary/AxesRenderer;->valuesToDrawNumTab:[I aput v14, v0, v7 return-void .end method # virtual methods .method public drawInBackground(Landroid/graphics/Canvas;)V .registers 4 .line 336 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisYLeft()Lcom/example/linechartlibrary/Axis; move-result-object v0 if-eqz v0, :cond_13 const/4 v1, 0x1 .line 338 invoke-direct {p0, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->prepareAxisToDraw(Lcom/example/linechartlibrary/Axis;I)V .line 339 invoke-direct {p0, p1, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->drawAxisLines(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V .line 342 :cond_13 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p1}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object p1 invoke-interface {p1}, Lcom/example/linechartlibrary/ChartData;->getAxisYRight()Lcom/example/linechartlibrary/Axis; move-result-object p1 if-eqz p1, :cond_23 const/4 v0, 0x2 .line 344 invoke-direct {p0, p1, v0}, Lcom/example/linechartlibrary/AxesRenderer;->prepareAxisToDraw(Lcom/example/linechartlibrary/Axis;I)V .line 348 :cond_23 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p1}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object p1 invoke-interface {p1}, Lcom/example/linechartlibrary/ChartData;->getAxisXBottom()Lcom/example/linechartlibrary/Axis; move-result-object p1 if-eqz p1, :cond_33 const/4 v0, 0x3 .line 350 invoke-direct {p0, p1, v0}, Lcom/example/linechartlibrary/AxesRenderer;->prepareAxisToDraw(Lcom/example/linechartlibrary/Axis;I)V .line 354 :cond_33 iget-object p1, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {p1}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object p1 invoke-interface {p1}, Lcom/example/linechartlibrary/ChartData;->getAxisXTop()Lcom/example/linechartlibrary/Axis; move-result-object p1 if-eqz p1, :cond_43 const/4 v0, 0x0 .line 356 invoke-direct {p0, p1, v0}, Lcom/example/linechartlibrary/AxesRenderer;->prepareAxisToDraw(Lcom/example/linechartlibrary/Axis;I)V :cond_43 return-void .end method .method public drawInForeground(Landroid/graphics/Canvas;)V .registers 4 .line 375 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisYLeft()Lcom/example/linechartlibrary/Axis; move-result-object v0 if-eqz v0, :cond_10 const/4 v1, 0x1 .line 377 invoke-direct {p0, p1, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->drawAxisLabelsAndName(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V .line 380 :cond_10 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisYRight()Lcom/example/linechartlibrary/Axis; move-result-object v0 if-eqz v0, :cond_20 const/4 v1, 0x2 .line 382 invoke-direct {p0, p1, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->drawAxisLabelsAndName(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V .line 385 :cond_20 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisXBottom()Lcom/example/linechartlibrary/Axis; move-result-object v0 if-eqz v0, :cond_30 const/4 v1, 0x3 .line 387 invoke-direct {p0, p1, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->drawAxisLabelsAndName(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V .line 390 :cond_30 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getAxisXTop()Lcom/example/linechartlibrary/Axis; move-result-object v0 if-eqz v0, :cond_40 const/4 v1, 0x0 .line 392 invoke-direct {p0, p1, v0, v1}, Lcom/example/linechartlibrary/AxesRenderer;->drawAxisLabelsAndName(Landroid/graphics/Canvas;Lcom/example/linechartlibrary/Axis;I)V :cond_40 return-void .end method .method public onChartDataChanged()V .registers 1 .line 121 invoke-direct {p0}, Lcom/example/linechartlibrary/AxesRenderer;->onChartDataOrSizeChanged()V return-void .end method .method public onChartSizeChanged()V .registers 1 .line 117 invoke-direct {p0}, Lcom/example/linechartlibrary/AxesRenderer;->onChartDataOrSizeChanged()V return-void .end method .method public resetRenderer()V .registers 2 .line 132 iget-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object v0 iput-object v0, p0, Lcom/example/linechartlibrary/AxesRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; return-void .end method