ExtendedGridLayoutManager.smali
.class public Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;
.super Landroidx/recyclerview/widget/GridLayoutManager;
.source "ExtendedGridLayoutManager.java"
# instance fields
.field private calculatedWidth:I
.field private firstRowMax:I
.field private itemSpans:Landroid/util/SparseIntArray;
.field private itemsToRow:Landroid/util/SparseIntArray;
.field private rowsCount:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;I)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.param p2, "spanCount" # I
.line 21
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/GridLayoutManager;-><init>(Landroid/content/Context;I)V
.line 14
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
.line 15
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemsToRow:Landroid/util/SparseIntArray;
.line 22
return-void
.end method
.method private checkLayout()V
.registers 3
.line 107
iget-object v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
invoke-virtual {v0}, Landroid/util/SparseIntArray;->size()I
move-result v0
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getFlowItemCount()I
move-result v1
if-ne v0, v1, :cond_14
iget v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->calculatedWidth:I
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getWidth()I
move-result v1
if-eq v0, v1, :cond_22
.line 108
:cond_14
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getWidth()I
move-result v0
iput v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->calculatedWidth:I
.line 109
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getWidth()I
move-result v0
int-to-float v0, v0
invoke-direct {p0, v0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->prepareLayout(F)V
.line 111
:cond_22
return-void
.end method
.method private prepareLayout(F)V
.registers 21
.param p1, "viewPortAvailableSize" # F
.line 30
move-object/from16 v0, p0
const/4 v1, 0x0
cmpl-float v1, p1, v1
if-nez v1, :cond_a
.line 31
const/high16 v1, 0x42c80000 # 100.0f
.end local p1 # "viewPortAvailableSize":F
.local v1, "viewPortAvailableSize":F
goto :goto_c
.line 30
.end local v1 # "viewPortAvailableSize":F
.restart local p1 # "viewPortAvailableSize":F
:cond_a
move/from16 v1, p1
.line 33
.end local p1 # "viewPortAvailableSize":F
.restart local v1 # "viewPortAvailableSize":F
:goto_c
iget-object v2, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
invoke-virtual {v2}, Landroid/util/SparseIntArray;->clear()V
.line 34
iget-object v2, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemsToRow:Landroid/util/SparseIntArray;
invoke-virtual {v2}, Landroid/util/SparseIntArray;->clear()V
.line 35
const/4 v2, 0x0
iput v2, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
.line 36
iput v2, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->firstRowMax:I
.line 38
const/high16 v3, 0x42c80000 # 100.0f
invoke-static {v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v3
.line 39
.local v3, "preferredRowSize":I
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getFlowItemCount()I
move-result v4
.line 40
.local v4, "itemsCount":I
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getSpanCount()I
move-result v5
.line 41
.local v5, "spanCount":I
move v6, v5
.line 42
.local v6, "spanLeft":I
const/4 v7, 0x0
.line 43
.local v7, "currentItemsInRow":I
const/4 v8, 0x0
.line 44
.local v8, "currentItemsSpanAmount":I
const/4 v9, 0x0
.local v9, "a":I
:goto_2d
if-ge v9, v4, :cond_d3
.line 45
invoke-direct {v0, v9}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->sizeForItem(I)Lim/tpelyyftgw/ui/components/Size;
move-result-object v11
.line 46
.local v11, "size":Lim/tpelyyftgw/ui/components/Size;
int-to-float v12, v5
iget v13, v11, Lim/tpelyyftgw/ui/components/Size;->width:F
iget v14, v11, Lim/tpelyyftgw/ui/components/Size;->height:F
div-float/2addr v13, v14
int-to-float v14, v3
mul-float v13, v13, v14
div-float/2addr v13, v1
mul-float v12, v12, v13
float-to-double v12, v12
invoke-static {v12, v13}, Ljava/lang/Math;->floor(D)D
move-result-wide v12
double-to-int v12, v12
invoke-static {v5, v12}, Ljava/lang/Math;->min(II)I
move-result v12
.line 47
.local v12, "requiredSpan":I
if-lt v6, v12, :cond_56
const/16 v13, 0x21
if-le v12, v13, :cond_54
add-int/lit8 v13, v12, -0xf
if-ge v6, v13, :cond_54
goto :goto_56
:cond_54
const/4 v13, 0x0
goto :goto_57
:cond_56
:goto_56
const/4 v13, 0x1
.line 48
.local v13, "moveToNewRow":Z
:goto_57
if-eqz v13, :cond_a7
.line 49
if-eqz v6, :cond_9b
.line 50
div-int v14, v6, v7
.line 51
.local v14, "spanPerItem":I
sub-int v15, v9, v7
.local v15, "start":I
move/from16 v16, v15
move/from16 v2, v16
.local v2, "b":I
:goto_63
add-int v10, v15, v7
if-ge v2, v10, :cond_8f
.line 52
add-int v10, v15, v7
const/16 v16, 0x1
add-int/lit8 v10, v10, -0x1
if-ne v2, v10, :cond_7d
.line 53
iget-object v10, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
invoke-virtual {v10, v2}, Landroid/util/SparseIntArray;->get(I)I
move-result v17
move/from16 v18, v1
.end local v1 # "viewPortAvailableSize":F
.local v18, "viewPortAvailableSize":F
add-int v1, v17, v6
invoke-virtual {v10, v2, v1}, Landroid/util/SparseIntArray;->put(II)V
goto :goto_89
.line 55
.end local v18 # "viewPortAvailableSize":F
.restart local v1 # "viewPortAvailableSize":F
:cond_7d
move/from16 v18, v1
.end local v1 # "viewPortAvailableSize":F
.restart local v18 # "viewPortAvailableSize":F
iget-object v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
invoke-virtual {v1, v2}, Landroid/util/SparseIntArray;->get(I)I
move-result v10
add-int/2addr v10, v14
invoke-virtual {v1, v2, v10}, Landroid/util/SparseIntArray;->put(II)V
.line 57
:goto_89
sub-int/2addr v6, v14
.line 51
add-int/lit8 v2, v2, 0x1
move/from16 v1, v18
goto :goto_63
.end local v18 # "viewPortAvailableSize":F
.restart local v1 # "viewPortAvailableSize":F
:cond_8f
move/from16 v18, v1
.line 59
.end local v1 # "viewPortAvailableSize":F
.end local v2 # "b":I
.end local v15 # "start":I
.restart local v18 # "viewPortAvailableSize":F
iget-object v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemsToRow:Landroid/util/SparseIntArray;
add-int/lit8 v2, v9, -0x1
iget v10, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
invoke-virtual {v1, v2, v10}, Landroid/util/SparseIntArray;->put(II)V
goto :goto_9d
.line 49
.end local v14 # "spanPerItem":I
.end local v18 # "viewPortAvailableSize":F
.restart local v1 # "viewPortAvailableSize":F
:cond_9b
move/from16 v18, v1
.line 61
.end local v1 # "viewPortAvailableSize":F
.restart local v18 # "viewPortAvailableSize":F
:goto_9d
iget v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
const/4 v2, 0x1
add-int/2addr v1, v2
iput v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
.line 62
const/4 v8, 0x0
.line 63
const/4 v7, 0x0
.line 64
move v6, v5
goto :goto_ac
.line 66
.end local v18 # "viewPortAvailableSize":F
.restart local v1 # "viewPortAvailableSize":F
:cond_a7
move/from16 v18, v1
.end local v1 # "viewPortAvailableSize":F
.restart local v18 # "viewPortAvailableSize":F
if-ge v6, v12, :cond_ac
.line 67
move v12, v6
.line 70
:cond_ac
:goto_ac
iget v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
if-nez v1, :cond_b8
.line 71
iget v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->firstRowMax:I
invoke-static {v1, v9}, Ljava/lang/Math;->max(II)I
move-result v1
iput v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->firstRowMax:I
.line 73
:cond_b8
add-int/lit8 v1, v4, -0x1
if-ne v9, v1, :cond_c3
.line 74
iget-object v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemsToRow:Landroid/util/SparseIntArray;
iget v2, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
invoke-virtual {v1, v9, v2}, Landroid/util/SparseIntArray;->put(II)V
.line 76
:cond_c3
add-int/2addr v8, v12
.line 77
const/4 v1, 0x1
add-int/2addr v7, v1
.line 78
sub-int/2addr v6, v12
.line 80
iget-object v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
invoke-virtual {v1, v9, v12}, Landroid/util/SparseIntArray;->put(II)V
.line 44
.end local v11 # "size":Lim/tpelyyftgw/ui/components/Size;
.end local v12 # "requiredSpan":I
.end local v13 # "moveToNewRow":Z
add-int/lit8 v9, v9, 0x1
move/from16 v1, v18
const/4 v2, 0x0
goto/16 :goto_2d
.end local v18 # "viewPortAvailableSize":F
.restart local v1 # "viewPortAvailableSize":F
:cond_d3
move/from16 v18, v1
.line 82
.end local v1 # "viewPortAvailableSize":F
.end local v9 # "a":I
.restart local v18 # "viewPortAvailableSize":F
if-eqz v4, :cond_dd
.line 83
iget v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
const/4 v2, 0x1
add-int/2addr v1, v2
iput v1, v0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
.line 85
:cond_dd
return-void
.end method
.method private sizeForItem(I)Lim/tpelyyftgw/ui/components/Size;
.registers 6
.param p1, "i" # I
.line 88
invoke-virtual {p0, p1}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getSizeForItem(I)Lim/tpelyyftgw/ui/components/Size;
move-result-object v0
.line 89
.local v0, "size":Lim/tpelyyftgw/ui/components/Size;
iget v1, v0, Lim/tpelyyftgw/ui/components/Size;->width:F
const/high16 v2, 0x42c80000 # 100.0f
const/4 v3, 0x0
cmpl-float v1, v1, v3
if-nez v1, :cond_f
.line 90
iput v2, v0, Lim/tpelyyftgw/ui/components/Size;->width:F
.line 92
:cond_f
iget v1, v0, Lim/tpelyyftgw/ui/components/Size;->height:F
cmpl-float v1, v1, v3
if-nez v1, :cond_17
.line 93
iput v2, v0, Lim/tpelyyftgw/ui/components/Size;->height:F
.line 95
:cond_17
iget v1, v0, Lim/tpelyyftgw/ui/components/Size;->width:F
iget v2, v0, Lim/tpelyyftgw/ui/components/Size;->height:F
div-float/2addr v1, v2
.line 96
.local v1, "aspect":F
const/high16 v2, 0x40800000 # 4.0f
cmpl-float v2, v1, v2
if-gtz v2, :cond_29
const v2, 0x3e4ccccd # 0.2f
cmpg-float v2, v1, v2
if-gez v2, :cond_35
.line 97
:cond_29
iget v2, v0, Lim/tpelyyftgw/ui/components/Size;->width:F
iget v3, v0, Lim/tpelyyftgw/ui/components/Size;->height:F
invoke-static {v2, v3}, Ljava/lang/Math;->max(FF)F
move-result v2
iput v2, v0, Lim/tpelyyftgw/ui/components/Size;->width:F
iput v2, v0, Lim/tpelyyftgw/ui/components/Size;->height:F
.line 99
:cond_35
return-object v0
.end method
# virtual methods
.method protected getFlowItemCount()I
.registers 2
.line 136
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->getItemCount()I
move-result v0
return v0
.end method
.method public getRowsCount(I)I
.registers 3
.param p1, "width" # I
.line 119
iget v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
if-nez v0, :cond_8
.line 120
int-to-float v0, p1
invoke-direct {p0, v0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->prepareLayout(F)V
.line 122
:cond_8
iget v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->rowsCount:I
return v0
.end method
.method protected getSizeForItem(I)Lim/tpelyyftgw/ui/components/Size;
.registers 4
.param p1, "i" # I
.line 103
new-instance v0, Lim/tpelyyftgw/ui/components/Size;
const/high16 v1, 0x42c80000 # 100.0f
invoke-direct {v0, v1, v1}, Lim/tpelyyftgw/ui/components/Size;-><init>(FF)V
return-object v0
.end method
.method public getSpanSizeForItem(I)I
.registers 3
.param p1, "i" # I
.line 114
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->checkLayout()V
.line 115
iget-object v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemSpans:Landroid/util/SparseIntArray;
invoke-virtual {v0, p1}, Landroid/util/SparseIntArray;->get(I)I
move-result v0
return v0
.end method
.method public isFirstRow(I)Z
.registers 3
.param p1, "i" # I
.line 131
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->checkLayout()V
.line 132
iget v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->firstRowMax:I
if-gt p1, v0, :cond_9
const/4 v0, 0x1
goto :goto_a
:cond_9
const/4 v0, 0x0
:goto_a
return v0
.end method
.method public isLastInRow(I)Z
.registers 4
.param p1, "i" # I
.line 126
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->checkLayout()V
.line 127
iget-object v0, p0, Lim/tpelyyftgw/ui/components/ExtendedGridLayoutManager;->itemsToRow:Landroid/util/SparseIntArray;
const v1, 0x7fffffff
invoke-virtual {v0, p1, v1}, Landroid/util/SparseIntArray;->get(II)I
move-result v0
if-eq v0, v1, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public supportsPredictiveItemAnimations()Z
.registers 2
.line 26
const/4 v0, 0x0
return v0
.end method