.class public abstract Lcom/example/linechartlibrary/AbstractChartRenderer; .super Ljava/lang/Object; .source "AbstractChartRenderer.java" # interfaces .implements Lcom/example/linechartlibrary/ChartRenderer; # instance fields .field public DEFAULT_LABEL_MARGIN_DP:I .field protected chart:Lcom/example/linechartlibrary/Chart; .field protected computator:Lcom/example/linechartlibrary/ChartComputator; .field protected density:F .field protected fontMetrics:Landroid/graphics/Paint$FontMetricsInt; .field protected isValueLabelBackgroundAuto:Z .field protected isValueLabelBackgroundEnabled:Z .field protected isViewportCalculationEnabled:Z .field protected labelBackgroundPaint:Landroid/graphics/Paint; .field protected labelBackgroundRect:Landroid/graphics/RectF; .field protected labelBuffer:[C .field protected labelMargin:I .field protected labelOffset:I .field protected labelPaint:Landroid/graphics/Paint; .field protected scaledDensity:F .field protected selectedValue:Lcom/example/linechartlibrary/SelectedValue; # direct methods .method public constructor (Landroid/content/Context;Lcom/example/linechartlibrary/Chart;)V .registers 5 .line 51 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x4 .line 20 iput v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->DEFAULT_LABEL_MARGIN_DP:I .line 26 new-instance v0, Landroid/graphics/Paint; invoke-direct {v0}, Landroid/graphics/Paint;->()V iput-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; .line 30 new-instance v0, Landroid/graphics/Paint; invoke-direct {v0}, Landroid/graphics/Paint;->()V iput-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundPaint:Landroid/graphics/Paint; .line 34 new-instance v0, Landroid/graphics/RectF; invoke-direct {v0}, Landroid/graphics/RectF;->()V iput-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundRect:Landroid/graphics/RectF; .line 38 new-instance v0, Landroid/graphics/Paint$FontMetricsInt; invoke-direct {v0}, Landroid/graphics/Paint$FontMetricsInt;->()V iput-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->fontMetrics:Landroid/graphics/Paint$FontMetricsInt; const/4 v0, 0x1 .line 42 iput-boolean v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isViewportCalculationEnabled:Z .line 45 new-instance v1, Lcom/example/linechartlibrary/SelectedValue; invoke-direct {v1}, Lcom/example/linechartlibrary/SelectedValue;->()V iput-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->selectedValue:Lcom/example/linechartlibrary/SelectedValue; const/16 v1, 0x40 .line 46 new-array v1, v1, [C iput-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBuffer:[C .line 52 invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v1 invoke-virtual {v1}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object v1 iget v1, v1, Landroid/util/DisplayMetrics;->density:F iput v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->density:F .line 53 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/AbstractChartRenderer;->scaledDensity:F .line 54 iput-object p2, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->chart:Lcom/example/linechartlibrary/Chart; .line 55 invoke-interface {p2}, Lcom/example/linechartlibrary/Chart;->getChartComputator()Lcom/example/linechartlibrary/ChartComputator; move-result-object p1 iput-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; .line 57 iget p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->density:F iget p2, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->DEFAULT_LABEL_MARGIN_DP:I invoke-static {p1, p2}, Lcom/example/linechartlibrary/ChartUtils;->dp2px(FI)I move-result p1 iput p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelMargin:I .line 58 iput p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelOffset:I .line 60 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V .line 61 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; sget-object p2, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 62 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; 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 .line 63 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; invoke-static {v0}, Landroid/graphics/Typeface;->defaultFromStyle(I)Landroid/graphics/Typeface; move-result-object p2 invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; .line 64 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; const/4 p2, -0x1 invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setColor(I)V .line 65 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundPaint:Landroid/graphics/Paint; invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V .line 66 iget-object p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundPaint:Landroid/graphics/Paint; sget-object p2, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style; invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V return-void .end method # virtual methods .method public clearTouch()V .registers 2 .line 129 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->selectedValue:Lcom/example/linechartlibrary/SelectedValue; invoke-virtual {v0}, Lcom/example/linechartlibrary/SelectedValue;->clear()V return-void .end method .method protected drawLabelTextAndBackground(Landroid/graphics/Canvas;[CIII)V .registers 14 .line 104 iget-boolean v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isValueLabelBackgroundEnabled:Z if-eqz v0, :cond_25 .line 106 iget-boolean v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isValueLabelBackgroundAuto:Z if-eqz v0, :cond_d .line 107 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundPaint:Landroid/graphics/Paint; invoke-virtual {v0, p5}, Landroid/graphics/Paint;->setColor(I)V .line 110 :cond_d iget-object p5, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundRect:Landroid/graphics/RectF; iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundPaint:Landroid/graphics/Paint; invoke-virtual {p1, p5, v0}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V .line 112 iget-object p5, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundRect:Landroid/graphics/RectF; iget p5, p5, Landroid/graphics/RectF;->left:F iget v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelMargin:I int-to-float v0, v0 add-float/2addr p5, v0 .line 113 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->bottom:F iget v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelMargin:I int-to-float v1, v1 sub-float/2addr v0, v1 goto :goto_2d .line 115 :cond_25 iget-object p5, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundRect:Landroid/graphics/RectF; iget p5, p5, Landroid/graphics/RectF;->left:F .line 116 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundRect:Landroid/graphics/RectF; iget v0, v0, Landroid/graphics/RectF;->bottom:F :goto_2d move v5, p5 move v6, v0 .line 119 iget-object v7, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; move-object v1, p1 move-object v2, p2 move v3, p3 move v4, p4 invoke-virtual/range {v1 .. v7}, Landroid/graphics/Canvas;->drawText([CIIFFLandroid/graphics/Paint;)V return-void .end method .method public getCurrentViewport()Lcom/example/linechartlibrary/Viewport; .registers 2 .line 146 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getCurrentViewport()Lcom/example/linechartlibrary/Viewport; move-result-object v0 return-object v0 .end method .method public getMaximumViewport()Lcom/example/linechartlibrary/Viewport; .registers 2 .line 134 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0}, Lcom/example/linechartlibrary/ChartComputator;->getMaximumViewport()Lcom/example/linechartlibrary/Viewport; move-result-object v0 return-object v0 .end method .method public getSelectedValue()Lcom/example/linechartlibrary/SelectedValue; .registers 2 .line 173 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->selectedValue:Lcom/example/linechartlibrary/SelectedValue; return-object v0 .end method .method public isTouched()Z .registers 2 .line 124 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->selectedValue:Lcom/example/linechartlibrary/SelectedValue; invoke-virtual {v0}, Lcom/example/linechartlibrary/SelectedValue;->isSet()Z move-result v0 return v0 .end method .method public isViewportCalculationEnabled()Z .registers 2 .line 158 iget-boolean v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isViewportCalculationEnabled:Z return v0 .end method .method public onChartDataChanged()V .registers 5 .line 76 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v0}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v0 .line 78 iget-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->chart:Lcom/example/linechartlibrary/Chart; invoke-interface {v1}, Lcom/example/linechartlibrary/Chart;->getChartData()Lcom/example/linechartlibrary/ChartData; move-result-object v1 invoke-interface {v1}, Lcom/example/linechartlibrary/ChartData;->getValueLabelTypeface()Landroid/graphics/Typeface; move-result-object v1 if-eqz v1, :cond_17 .line 80 iget-object v2, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; invoke-virtual {v2, v1}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; .line 83 :cond_17 iget-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getValueLabelTextColor()I move-result v2 invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setColor(I)V .line 84 iget-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; iget v2, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->scaledDensity:F invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getValueLabelTextSize()I move-result v3 invoke-static {v2, v3}, Lcom/example/linechartlibrary/ChartUtils;->sp2px(FI)I move-result v2 int-to-float v2, v2 invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setTextSize(F)V .line 85 iget-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelPaint:Landroid/graphics/Paint; iget-object v2, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->fontMetrics:Landroid/graphics/Paint$FontMetricsInt; invoke-virtual {v1, v2}, Landroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I .line 87 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->isValueLabelBackgroundEnabled()Z move-result v1 iput-boolean v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isValueLabelBackgroundEnabled:Z .line 88 invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->isValueLabelBackgroundAuto()Z move-result v1 iput-boolean v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isValueLabelBackgroundAuto:Z .line 89 iget-object v1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->labelBackgroundPaint:Landroid/graphics/Paint; invoke-interface {v0}, Lcom/example/linechartlibrary/ChartData;->getValueLabelBackgroundColor()I move-result v0 invoke-virtual {v1, v0}, Landroid/graphics/Paint;->setColor(I)V .line 92 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->selectedValue:Lcom/example/linechartlibrary/SelectedValue; invoke-virtual {v0}, Lcom/example/linechartlibrary/SelectedValue;->clear()V return-void .end method .method public resetRenderer()V .registers 2 .line 71 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->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/AbstractChartRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; return-void .end method .method public selectValue(Lcom/example/linechartlibrary/SelectedValue;)V .registers 3 .line 168 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->selectedValue:Lcom/example/linechartlibrary/SelectedValue; invoke-virtual {v0, p1}, Lcom/example/linechartlibrary/SelectedValue;->set(Lcom/example/linechartlibrary/SelectedValue;)V return-void .end method .method public setCurrentViewport(Lcom/example/linechartlibrary/Viewport;)V .registers 3 if-eqz p1, :cond_7 .line 152 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0, p1}, Lcom/example/linechartlibrary/ChartComputator;->setCurrentViewport(Lcom/example/linechartlibrary/Viewport;)V :cond_7 return-void .end method .method public setMaximumViewport(Lcom/example/linechartlibrary/Viewport;)V .registers 3 if-eqz p1, :cond_7 .line 140 iget-object v0, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->computator:Lcom/example/linechartlibrary/ChartComputator; invoke-virtual {v0, p1}, Lcom/example/linechartlibrary/ChartComputator;->setMaxViewport(Lcom/example/linechartlibrary/Viewport;)V :cond_7 return-void .end method .method public setViewportCalculationEnabled(Z)V .registers 2 .line 163 iput-boolean p1, p0, Lcom/example/linechartlibrary/AbstractChartRenderer;->isViewportCalculationEnabled:Z return-void .end method