LinearScrollOffsetLayoutManager.smali

.class public Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;
.super Landroidx/recyclerview/widget/LinearLayoutManager;
.source "LinearScrollOffsetLayoutManager.java"


# instance fields
.field private heightMap:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/Integer;",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;)V
    .registers 3
    .param p1, "context"    # Landroid/content/Context;

    .line 14
    invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearLayoutManager;-><init>(Landroid/content/Context;)V

    .line 11
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->heightMap:Ljava/util/Map;

    .line 15
    return-void
.end method

.method public constructor <init>(Landroid/content/Context;IZ)V
    .registers 5
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "orientation"    # I
    .param p3, "reverseLayout"    # Z

    .line 18
    invoke-direct {p0, p1, p2, p3}, Landroidx/recyclerview/widget/LinearLayoutManager;-><init>(Landroid/content/Context;IZ)V

    .line 11
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->heightMap:Ljava/util/Map;

    .line 19
    return-void
.end method

.method private computeScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I
    .registers 9
    .param p1, "state"    # Landroidx/recyclerview/widget/RecyclerView$State;

    .line 42
    invoke-virtual {p0}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->getChildCount()I

    move-result v0

    const/4 v1, 0x0

    if-nez v0, :cond_8

    .line 43
    return v1

    .line 45
    :cond_8
    invoke-virtual {p0}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->findFirstVisibleItemPosition()I

    move-result v0

    .line 46
    .local v0, "firstVisiablePosition":I
    invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->findViewByPosition(I)Landroid/view/View;

    move-result-object v2

    .line 47
    .local v2, "firstVisiableView":Landroid/view/View;
    invoke-virtual {v2}, Landroid/view/View;->getY()F

    move-result v3

    float-to-int v3, v3

    neg-int v3, v3

    .line 48
    .local v3, "offsetY":I
    const/4 v4, 0x0

    .local v4, "i":I
    :goto_17
    if-ge v4, v0, :cond_3b

    .line 49
    iget-object v5, p0, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->heightMap:Ljava/util/Map;

    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v6

    invoke-interface {v5, v6}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v5

    if-nez v5, :cond_27

    const/4 v5, 0x0

    goto :goto_37

    :cond_27
    iget-object v5, p0, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->heightMap:Ljava/util/Map;

    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v6

    invoke-interface {v5, v6}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Ljava/lang/Integer;

    invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I

    move-result v5

    :goto_37
    add-int/2addr v3, v5

    .line 48
    add-int/lit8 v4, v4, 0x1

    goto :goto_17

    .line 51
    .end local v4    # "i":I
    :cond_3b
    return v3
.end method


# virtual methods
.method public computeHorizontalScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I
    .registers 3
    .param p1, "state"    # Landroidx/recyclerview/widget/RecyclerView$State;

    .line 38
    invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->computeScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I

    move-result v0

    return v0
.end method

.method public computeVerticalScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I
    .registers 3
    .param p1, "state"    # Landroidx/recyclerview/widget/RecyclerView$State;

    .line 33
    invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->computeScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I

    move-result v0

    return v0
.end method

.method public onLayoutCompleted(Landroidx/recyclerview/widget/RecyclerView$State;)V
    .registers 8
    .param p1, "state"    # Landroidx/recyclerview/widget/RecyclerView$State;

    .line 23
    invoke-super {p0, p1}, Landroidx/recyclerview/widget/LinearLayoutManager;->onLayoutCompleted(Landroidx/recyclerview/widget/RecyclerView$State;)V

    .line 24
    invoke-virtual {p0}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->getChildCount()I

    move-result v0

    .line 25
    .local v0, "count":I
    const/4 v1, 0x0

    .local v1, "i":I
    :goto_8
    if-ge v1, v0, :cond_22

    .line 26
    invoke-virtual {p0, v1}, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    .line 27
    .local v2, "view":Landroid/view/View;
    iget-object v3, p0, Landroidx/recyclerview/widget/LinearScrollOffsetLayoutManager;->heightMap:Ljava/util/Map;

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    invoke-virtual {v2}, Landroid/view/View;->getHeight()I

    move-result v5

    invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v5

    invoke-interface {v3, v4, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 25
    .end local v2    # "view":Landroid/view/View;
    add-int/lit8 v1, v1, 0x1

    goto :goto_8

    .line 29
    .end local v1    # "i":I
    :cond_22
    return-void
.end method