RecyclerView$Recycler.smali
.class public final Landroidx/recyclerview/widget/RecyclerView$Recycler;
.super Ljava/lang/Object;
.source "RecyclerView.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/RecyclerView;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x11
name = "Recycler"
.end annotation
# static fields
.field static final DEFAULT_CACHE_SIZE:I
# instance fields
.field final mAttachedScrap:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field final mCachedViews:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field mChangedScrap:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.field private mRequestedCacheMax:I
.field private final mUnmodifiableAttachedScrap:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field private mViewCacheExtension:Landroidx/recyclerview/widget/RecyclerView$ViewCacheExtension;
.field mViewCacheMax:I
.field final synthetic this$0:Landroidx/recyclerview/widget/RecyclerView;
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, 0x156d
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->DEFAULT_CACHE_SIZE:I
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView;)V
.registers 3
.param p1, "this$0" # Landroidx/recyclerview/widget/RecyclerView;
.line 5810
iput-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 5811
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
.line 5812
const/4 v0, 0x0
iput-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
.line 5814
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
.line 5816
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
.line 5817
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mUnmodifiableAttachedScrap:Ljava/util/List;
.line 5819
const/4 v0, 0x2
iput v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRequestedCacheMax:I
.line 5820
iput v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheMax:I
return-void
.end method
.method private attachAccessibilityDelegateOnBind(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.registers 6
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6212
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->isAccessibilityEnabled()Z
move-result v0
if-eqz v0, :cond_37
.line 6213
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
.line 6214
.local v0, "itemView":Landroid/view/View;
invoke-static {v0}, Landroidx/core/view/ViewCompat;->getImportantForAccessibility(Landroid/view/View;)I
move-result v1
if-nez v1, :cond_14
.line 6216
const/4 v1, 0x1
invoke-static {v0, v1}, Landroidx/core/view/ViewCompat;->setImportantForAccessibility(Landroid/view/View;I)V
.line 6219
:cond_14
nop
.line 6220
invoke-static {v0}, Landroidx/core/view/ViewCompat;->getAccessibilityDelegate(Landroid/view/View;)Landroidx/core/view/AccessibilityDelegateCompat;
move-result-object v1
.line 6221
.local v1, "delegate":Landroidx/core/view/AccessibilityDelegateCompat;
if-eqz v1, :cond_27
.line 6222
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
const-class v3, Landroidx/core/view/AccessibilityDelegateCompat;
invoke-virtual {v2, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_37
.line 6223
:cond_27
const/16 v2, 0x4000
invoke-virtual {p1, v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6224
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mAccessibilityDelegate:Landroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate;
.line 6225
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate;->getItemDelegate()Landroidx/core/view/AccessibilityDelegateCompat;
move-result-object v2
.line 6224
invoke-static {v0, v2}, Landroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V
.line 6228
.end local v0 # "itemView":Landroid/view/View;
.end local v1 # "delegate":Landroidx/core/view/AccessibilityDelegateCompat;
:cond_37
return-void
.end method
.method private invalidateDisplayListInt(Landroid/view/ViewGroup;Z)V
.registers 7
.param p1, "viewGroup" # Landroid/view/ViewGroup;
.param p2, "invalidateThis" # Z
.line 6237
invoke-virtual {p1}, Landroid/view/ViewGroup;->getChildCount()I
move-result v0
const/4 v1, 0x1
sub-int/2addr v0, v1
.local v0, "i":I
:goto_6
if-ltz v0, :cond_19
.line 6238
invoke-virtual {p1, v0}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v2
.line 6239
.local v2, "view":Landroid/view/View;
instance-of v3, v2, Landroid/view/ViewGroup;
if-eqz v3, :cond_16
.line 6240
move-object v3, v2
check-cast v3, Landroid/view/ViewGroup;
invoke-direct {p0, v3, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->invalidateDisplayListInt(Landroid/view/ViewGroup;Z)V
.line 6237
.end local v2 # "view":Landroid/view/View;
:cond_16
add-int/lit8 v0, v0, -0x1
goto :goto_6
.line 6243
.end local v0 # "i":I
:cond_19
if-nez p2, :cond_1c
.line 6244
return-void
.line 6247
:cond_1c
invoke-virtual {p1}, Landroid/view/ViewGroup;->getVisibility()I
move-result v0
const/4 v1, 0x4
if-ne v0, v1, :cond_2b
.line 6248
const/4 v0, 0x0
invoke-virtual {p1, v0}, Landroid/view/ViewGroup;->setVisibility(I)V
.line 6249
invoke-virtual {p1, v1}, Landroid/view/ViewGroup;->setVisibility(I)V
goto :goto_35
.line 6251
:cond_2b
invoke-virtual {p1}, Landroid/view/ViewGroup;->getVisibility()I
move-result v0
.line 6252
.local v0, "visibility":I
invoke-virtual {p1, v1}, Landroid/view/ViewGroup;->setVisibility(I)V
.line 6253
invoke-virtual {p1, v0}, Landroid/view/ViewGroup;->setVisibility(I)V
.line 6255
.end local v0 # "visibility":I
:goto_35
return-void
.end method
.method private invalidateDisplayListInt(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.registers 4
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6231
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
instance-of v0, v0, Landroid/view/ViewGroup;
if-eqz v0, :cond_e
.line 6232
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
check-cast v0, Landroid/view/ViewGroup;
const/4 v1, 0x0
invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->invalidateDisplayListInt(Landroid/view/ViewGroup;Z)V
.line 6234
:cond_e
return-void
.end method
.method private tryBindViewHolderByDeadline(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIJ)Z
.registers 15
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.param p2, "offsetPosition" # I
.param p3, "position" # I
.param p4, "deadlineNs" # J
.line 5917
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iput-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mOwnerRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
.line 5918
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemViewType()I
move-result v0
.line 5919
.local v0, "viewType":I
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getNanoTime()J
move-result-wide v7
.line 5920
.local v7, "startBindNs":J
const-wide v1, 0x7fffffffffffffffL
cmp-long v3, p4, v1
if-eqz v3, :cond_24
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.line 5921
move v2, v0
move-wide v3, v7
move-wide v5, p4
invoke-virtual/range {v1 .. v6}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->willBindInTime(IJJ)Z
move-result v1
if-nez v1, :cond_24
.line 5923
const/4 v1, 0x0
return v1
.line 5925
:cond_24
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->bindViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
.line 5926
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getNanoTime()J
move-result-wide v1
.line 5927
.local v1, "endBindNs":J
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemViewType()I
move-result v4
sub-long v5, v1, v7
invoke-virtual {v3, v4, v5, v6}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->factorInBindTime(IJ)V
.line 5928
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->attachAccessibilityDelegateOnBind(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 5929
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v3
if-eqz v3, :cond_4b
.line 5930
iput p3, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPreLayoutPosition:I
.line 5932
:cond_4b
const/4 v3, 0x1
return v3
.end method
# virtual methods
.method addViewHolderToRecycledViewPool(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
.registers 6
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.param p2, "dispatchRecycled" # Z
.line 6434
invoke-static {p1}, Landroidx/recyclerview/widget/RecyclerView;->clearNestedRecyclerViewIfNotNested(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6435
const/16 v0, 0x4000
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->hasAnyOfTheFlags(I)Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_15
.line 6436
const/4 v1, 0x0
invoke-virtual {p1, v1, v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setFlags(II)V
.line 6437
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-static {v0, v2}, Landroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V
.line 6439
:cond_15
if-eqz p2, :cond_1a
.line 6440
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->dispatchViewRecycled(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6442
:cond_1a
iput-object v2, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mOwnerRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
.line 6443
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getRecycledViewPool()Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
move-result-object v0
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->putRecycledView(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6444
return-void
.end method
.method public bindViewToPosition(Landroid/view/View;I)V
.registers 11
.param p1, "view" # Landroid/view/View;
.param p2, "position" # I
.line 5951
invoke-static {p1}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v6
.line 5952
.local v6, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v6, :cond_9f
.line 5957
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapterHelper:Landroidx/recyclerview/widget/AdapterHelper;
invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/AdapterHelper;->findPositionOffset(I)I
move-result v7
.line 5958
.local v7, "offsetPosition":I
if-ltz v7, :cond_67
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result v0
if-ge v7, v0, :cond_67
.line 5963
const-wide v4, 0x7fffffffffffffffL
move-object v0, p0
move-object v1, v6
move v2, v7
move v3, p2
invoke-direct/range {v0 .. v5}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->tryBindViewHolderByDeadline(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIJ)Z
.line 5965
iget-object v0, v6, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
.line 5967
.local v0, "lp":Landroid/view/ViewGroup$LayoutParams;
if-nez v0, :cond_3c
.line 5968
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 5969
.local v1, "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v2, v1}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
goto :goto_55
.line 5970
.end local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:cond_3c
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
move-result v1
if-nez v1, :cond_52
.line 5971
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 5972
.restart local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v2, v1}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
goto :goto_55
.line 5974
.end local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:cond_52
move-object v1, v0
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 5977
.restart local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:goto_55
const/4 v2, 0x1
iput-boolean v2, v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->mInsetsDirty:Z
.line 5978
iput-object v6, v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 5979
iget-object v3, v6, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v3}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object v3
if-nez v3, :cond_63
goto :goto_64
:cond_63
const/4 v2, 0x0
:goto_64
iput-boolean v2, v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->mPendingInvalidate:Z
.line 5980
return-void
.line 5959
.end local v0 # "lp":Landroid/view/ViewGroup$LayoutParams;
.end local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:cond_67
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Inconsistency detected. Invalid item position "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "(offset:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ").state:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
.line 5961
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.line 5953
.end local v7 # "offsetPosition":I
:cond_9f
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "The view does not have a ViewHolder. You cannot pass arbitrary views to this method, they should be created by the Adapter"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 5955
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public clear()V
.registers 2
.line 5833
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 5834
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleAndClearCachedViews()V
.line 5835
return-void
.end method
.method clearOldPositions()V
.registers 6
.line 6812
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6813
.local v0, "cachedCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_17
.line 6814
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6815
.local v2, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearOldPosition()V
.line 6813
.end local v2 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 6817
.end local v1 # "i":I
:cond_17
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 6818
.local v1, "scrapCount":I
const/4 v2, 0x0
.local v2, "i":I
:goto_1e
if-ge v2, v1, :cond_2e
.line 6819
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearOldPosition()V
.line 6818
add-int/lit8 v2, v2, 0x1
goto :goto_1e
.line 6821
.end local v2 # "i":I
:cond_2e
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
if-eqz v2, :cond_47
.line 6822
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
.line 6823
.local v2, "changedScrapCount":I
const/4 v3, 0x0
.local v3, "i":I
:goto_37
if-ge v3, v2, :cond_47
.line 6824
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
invoke-virtual {v4, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearOldPosition()V
.line 6823
add-int/lit8 v3, v3, 0x1
goto :goto_37
.line 6827
.end local v2 # "changedScrapCount":I
.end local v3 # "i":I
:cond_47
return-void
.end method
.method clearScrap()V
.registers 2
.line 6514
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 6515
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
if-eqz v0, :cond_c
.line 6516
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 6518
:cond_c
return-void
.end method
.method public convertPreLayoutPositionToPostLayout(I)I
.registers 5
.param p1, "position" # I
.line 6001
if-ltz p1, :cond_20
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result v0
if-ge p1, v0, :cond_20
.line 6005
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v0
if-nez v0, :cond_17
.line 6006
return p1
.line 6008
:cond_17
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapterHelper:Landroidx/recyclerview/widget/AdapterHelper;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/AdapterHelper;->findPositionOffset(I)I
move-result v0
return v0
.line 6002
:cond_20
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "invalid position "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ". State item count is "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
.line 6003
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method dispatchViewRecycled(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.registers 3
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6666
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mRecyclerListener:Landroidx/recyclerview/widget/RecyclerView$RecyclerListener;
if-eqz v0, :cond_d
.line 6667
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mRecyclerListener:Landroidx/recyclerview/widget/RecyclerView$RecyclerListener;
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$RecyclerListener;->onViewRecycled(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6669
:cond_d
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
if-eqz v0, :cond_1a
.line 6670
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->onViewRecycled(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6672
:cond_1a
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
if-eqz v0, :cond_27
.line 6673
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mViewInfoStore:Landroidx/recyclerview/widget/ViewInfoStore;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ViewInfoStore;->removeViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6676
:cond_27
return-void
.end method
.method getChangedScrapViewForPosition(I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.registers 13
.param p1, "position" # I
.line 6523
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
const/4 v1, 0x0
if-eqz v0, :cond_74
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
move v2, v0
.local v2, "changedScrapSize":I
if-nez v0, :cond_d
goto :goto_74
.line 6527
:cond_d
const/4 v0, 0x0
.local v0, "i":I
:goto_e
const/16 v3, 0x20
if-ge v0, v2, :cond_2d
.line 6528
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
invoke-virtual {v4, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6529
.local v4, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->wasReturnedFromScrap()Z
move-result v5
if-nez v5, :cond_2a
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getLayoutPosition()I
move-result v5
if-ne v5, p1, :cond_2a
.line 6530
invoke-virtual {v4, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6531
return-object v4
.line 6527
.end local v4 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_2a
add-int/lit8 v0, v0, 0x1
goto :goto_e
.line 6535
.end local v0 # "i":I
:cond_2d
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->hasStableIds()Z
move-result v0
if-eqz v0, :cond_73
.line 6536
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapterHelper:Landroidx/recyclerview/widget/AdapterHelper;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/AdapterHelper;->findPositionOffset(I)I
move-result v0
.line 6537
.local v0, "offsetPosition":I
if-lez v0, :cond_73
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result v4
if-ge v0, v4, :cond_73
.line 6538
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v4, v0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemId(I)J
move-result-wide v4
.line 6539
.local v4, "id":J
const/4 v6, 0x0
.local v6, "i":I
:goto_54
if-ge v6, v2, :cond_73
.line 6540
iget-object v7, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
invoke-virtual {v7, v6}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6541
.local v7, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v7}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->wasReturnedFromScrap()Z
move-result v8
if-nez v8, :cond_70
invoke-virtual {v7}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemId()J
move-result-wide v8
cmp-long v10, v8, v4
if-nez v10, :cond_70
.line 6542
invoke-virtual {v7, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6543
return-object v7
.line 6539
.end local v7 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_70
add-int/lit8 v6, v6, 0x1
goto :goto_54
.line 6548
.end local v0 # "offsetPosition":I
.end local v4 # "id":J
.end local v6 # "i":I
:cond_73
return-object v1
.line 6524
.end local v2 # "changedScrapSize":I
:cond_74
:goto_74
return-object v1
.end method
.method getRecycledViewPool()Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.registers 2
.line 6770
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
if-nez v0, :cond_b
.line 6771
new-instance v0, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
invoke-direct {v0}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.line 6773
:cond_b
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
return-object v0
.end method
.method getScrapCount()I
.registers 2
.line 6506
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
return v0
.end method
.method public getScrapList()Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.line 5865
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mUnmodifiableAttachedScrap:Ljava/util/List;
return-object v0
.end method
.method getScrapOrCachedViewForId(JIZ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.registers 13
.param p1, "id" # J
.param p3, "type" # I
.param p4, "dryRun" # Z
.line 6614
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6615
.local v0, "count":I
add-int/lit8 v1, v0, -0x1
.local v1, "i":I
:goto_8
if-ltz v1, :cond_59
.line 6616
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6617
.local v2, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemId()J
move-result-wide v3
cmp-long v5, v3, p1
if-nez v5, :cond_56
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->wasReturnedFromScrap()Z
move-result v3
if-nez v3, :cond_56
.line 6618
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemViewType()I
move-result v3
if-ne p3, v3, :cond_42
.line 6619
const/16 v3, 0x20
invoke-virtual {v2, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6620
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRemoved()Z
move-result v3
if-eqz v3, :cond_41
.line 6629
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v3
if-nez v3, :cond_41
.line 6630
const/4 v3, 0x2
const/16 v4, 0xe
invoke-virtual {v2, v3, v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setFlags(II)V
.line 6634
:cond_41
return-object v2
.line 6635
:cond_42
if-nez p4, :cond_56
.line 6639
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v3, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 6640
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
const/4 v5, 0x0
invoke-virtual {v3, v4, v5}, Landroidx/recyclerview/widget/RecyclerView;->removeDetachedView(Landroid/view/View;Z)V
.line 6641
iget-object v3, v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {p0, v3}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->quickRecycleScrapView(Landroid/view/View;)V
.line 6615
.end local v2 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_56
add-int/lit8 v1, v1, -0x1
goto :goto_8
.line 6647
.end local v1 # "i":I
:cond_59
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 6648
.local v1, "cacheSize":I
add-int/lit8 v2, v1, -0x1
.local v2, "i":I
:goto_61
const/4 v3, 0x0
if-ltz v2, :cond_91
.line 6649
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6650
.local v4, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemId()J
move-result-wide v5
cmp-long v7, v5, p1
if-nez v7, :cond_8e
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isAttachedToTransitionOverlay()Z
move-result v5
if-nez v5, :cond_8e
.line 6651
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemViewType()I
move-result v5
if-ne p3, v5, :cond_88
.line 6652
if-nez p4, :cond_87
.line 6653
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 6655
:cond_87
return-object v4
.line 6656
:cond_88
if-nez p4, :cond_8e
.line 6657
invoke-virtual {p0, v2}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleCachedViewAt(I)V
.line 6658
return-object v3
.line 6648
.end local v4 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_8e
add-int/lit8 v2, v2, -0x1
goto :goto_61
.line 6662
.end local v2 # "i":I
:cond_91
return-object v3
.end method
.method getScrapOrHiddenOrCachedHolderForPosition(IZ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.registers 10
.param p1, "position" # I
.param p2, "dryRun" # Z
.line 6559
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6562
.local v0, "scrapCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_3a
.line 6563
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6564
.local v2, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->wasReturnedFromScrap()Z
move-result v3
if-nez v3, :cond_37
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getLayoutPosition()I
move-result v3
if-ne v3, p1, :cond_37
.line 6565
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v3
if-nez v3, :cond_37
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
iget-boolean v3, v3, Landroidx/recyclerview/widget/RecyclerView$State;->mInPreLayout:Z
if-nez v3, :cond_31
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRemoved()Z
move-result v3
if-nez v3, :cond_37
.line 6566
:cond_31
const/16 v3, 0x20
invoke-virtual {v2, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6567
return-object v2
.line 6562
.end local v2 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_37
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 6571
.end local v1 # "i":I
:cond_3a
if-nez p2, :cond_8c
.line 6572
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper;->findHiddenNonRemovedView(I)Landroid/view/View;
move-result-object v1
.line 6573
.local v1, "view":Landroid/view/View;
if-eqz v1, :cond_8c
.line 6576
invoke-static {v1}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v2
.line 6577
.local v2, "vh":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
invoke-virtual {v3, v1}, Landroidx/recyclerview/widget/ChildHelper;->unhide(Landroid/view/View;)V
.line 6578
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
invoke-virtual {v3, v1}, Landroidx/recyclerview/widget/ChildHelper;->indexOfChild(Landroid/view/View;)I
move-result v3
.line 6579
.local v3, "layoutIndex":I
const/4 v4, -0x1
if-eq v3, v4, :cond_6c
.line 6583
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
invoke-virtual {v4, v3}, Landroidx/recyclerview/widget/ChildHelper;->detachViewFromParent(I)V
.line 6584
invoke-virtual {p0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->scrapView(Landroid/view/View;)V
.line 6585
const/16 v4, 0x2020
invoke-virtual {v2, v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6587
return-object v2
.line 6580
:cond_6c
new-instance v4, Ljava/lang/IllegalStateException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "layout index should not be -1 after unhiding a view:"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
iget-object v6, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6581
invoke-virtual {v6}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-direct {v4, v5}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v4
.line 6592
.end local v1 # "view":Landroid/view/View;
.end local v2 # "vh":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.end local v3 # "layoutIndex":I
:cond_8c
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 6593
.local v1, "cacheSize":I
const/4 v2, 0x0
.local v2, "i":I
:goto_93
if-ge v2, v1, :cond_ba
.line 6594
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6597
.local v3, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v4
if-nez v4, :cond_b7
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getLayoutPosition()I
move-result v4
if-ne v4, p1, :cond_b7
.line 6598
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isAttachedToTransitionOverlay()Z
move-result v4
if-nez v4, :cond_b7
.line 6599
if-nez p2, :cond_b6
.line 6600
iget-object v4, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 6606
:cond_b6
return-object v3
.line 6593
.end local v3 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_b7
add-int/lit8 v2, v2, 0x1
goto :goto_93
.line 6609
.end local v2 # "i":I
:cond_ba
const/4 v2, 0x0
return-object v2
.end method
.method getScrapViewAt(I)Landroid/view/View;
.registers 3
.param p1, "index" # I
.line 6510
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
return-object v0
.end method
.method public getViewForPosition(I)Landroid/view/View;
.registers 3
.param p1, "position" # I
.line 6027
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getViewForPosition(IZ)Landroid/view/View;
move-result-object v0
return-object v0
.end method
.method getViewForPosition(IZ)Landroid/view/View;
.registers 5
.param p1, "position" # I
.param p2, "dryRun" # Z
.line 6031
const-wide v0, 0x7fffffffffffffffL
invoke-virtual {p0, p1, p2, v0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->tryGetViewHolderForPositionByDeadline(IZJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v0
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
return-object v0
.end method
.method markItemDecorInsetsDirty()V
.registers 6
.line 6830
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6831
.local v0, "cachedCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_21
.line 6832
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6833
.local v2, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v3, v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v3}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 6834
.local v3, "layoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
if-eqz v3, :cond_1e
.line 6835
const/4 v4, 0x1
iput-boolean v4, v3, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->mInsetsDirty:Z
.line 6831
.end local v2 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.end local v3 # "layoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:cond_1e
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 6838
.end local v1 # "i":I
:cond_21
return-void
.end method
.method markKnownViewsInvalid()V
.registers 5
.line 6796
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6797
.local v0, "cachedCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_1e
.line 6798
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6799
.local v2, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v2, :cond_1b
.line 6800
const/4 v3, 0x6
invoke-virtual {v2, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6801
const/4 v3, 0x0
invoke-virtual {v2, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addChangePayload(Ljava/lang/Object;)V
.line 6797
.end local v2 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_1b
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 6805
.end local v1 # "i":I
:cond_1e
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
if-eqz v1, :cond_2e
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->hasStableIds()Z
move-result v1
if-nez v1, :cond_31
.line 6807
:cond_2e
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleAndClearCachedViews()V
.line 6809
:cond_31
return-void
.end method
.method offsetPositionRecordsForInsert(II)V
.registers 7
.param p1, "insertedAt" # I
.param p2, "count" # I
.line 6714
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6715
.local v0, "cachedCount":I
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_1e
.line 6716
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6717
.local v2, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v2, :cond_1b
iget v3, v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-lt v3, p1, :cond_1b
.line 6722
const/4 v3, 0x1
invoke-virtual {v2, p2, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->offsetPosition(IZ)V
.line 6715
.end local v2 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_1b
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 6725
.end local v1 # "i":I
:cond_1e
return-void
.end method
.method offsetPositionRecordsForMove(II)V
.registers 11
.param p1, "from" # I
.param p2, "to" # I
.line 6686
if-ge p1, p2, :cond_6
.line 6687
move v0, p1
.line 6688
.local v0, "start":I
move v1, p2
.line 6689
.local v1, "end":I
const/4 v2, -0x1
.local v2, "inBetweenOffset":I
goto :goto_9
.line 6691
.end local v0 # "start":I
.end local v1 # "end":I
.end local v2 # "inBetweenOffset":I
:cond_6
move v0, p2
.line 6692
.restart local v0 # "start":I
move v1, p1
.line 6693
.restart local v1 # "end":I
const/4 v2, 0x1
.line 6695
.restart local v2 # "inBetweenOffset":I
:goto_9
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
.line 6696
.local v3, "cachedCount":I
const/4 v4, 0x0
.local v4, "i":I
:goto_10
if-ge v4, v3, :cond_36
.line 6697
iget-object v5, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v5, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6698
.local v5, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v5, :cond_33
iget v6, v5, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-lt v6, v0, :cond_33
iget v6, v5, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-le v6, v1, :cond_25
.line 6699
goto :goto_33
.line 6701
:cond_25
iget v6, v5, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
const/4 v7, 0x0
if-ne v6, p1, :cond_30
.line 6702
sub-int v6, p2, p1
invoke-virtual {v5, v6, v7}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->offsetPosition(IZ)V
goto :goto_33
.line 6704
:cond_30
invoke-virtual {v5, v2, v7}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->offsetPosition(IZ)V
.line 6696
.end local v5 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_33
:goto_33
add-int/lit8 v4, v4, 0x1
goto :goto_10
.line 6711
.end local v4 # "i":I
:cond_36
return-void
.end method
.method offsetPositionRecordsForRemove(IIZ)V
.registers 9
.param p1, "removedFrom" # I
.param p2, "count" # I
.param p3, "applyToPreLayout" # Z
.line 6734
add-int v0, p1, p2
.line 6735
.local v0, "removedEnd":I
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 6736
.local v1, "cachedCount":I
add-int/lit8 v2, v1, -0x1
.local v2, "i":I
:goto_a
if-ltz v2, :cond_2e
.line 6737
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6738
.local v3, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v3, :cond_2b
.line 6739
iget v4, v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-lt v4, v0, :cond_1f
.line 6745
neg-int v4, p2
invoke-virtual {v3, v4, p3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->offsetPosition(IZ)V
goto :goto_2b
.line 6746
:cond_1f
iget v4, v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-lt v4, p1, :cond_2b
.line 6748
const/16 v4, 0x8
invoke-virtual {v3, v4}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6749
invoke-virtual {p0, v2}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleCachedViewAt(I)V
.line 6736
.end local v3 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:cond_2b
:goto_2b
add-int/lit8 v2, v2, -0x1
goto :goto_a
.line 6753
.end local v2 # "i":I
:cond_2e
return-void
.end method
.method onAdapterChanged(Landroidx/recyclerview/widget/RecyclerView$Adapter;Landroidx/recyclerview/widget/RecyclerView$Adapter;Z)V
.registers 5
.param p1, "oldAdapter" # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.param p2, "newAdapter" # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.param p3, "compatibleWithPrevious" # Z
.line 6680
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->clear()V
.line 6681
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getRecycledViewPool()Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
move-result-object v0
invoke-virtual {v0, p1, p2, p3}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->onAdapterChanged(Landroidx/recyclerview/widget/RecyclerView$Adapter;Landroidx/recyclerview/widget/RecyclerView$Adapter;Z)V
.line 6682
return-void
.end method
.method quickRecycleScrapView(Landroid/view/View;)V
.registers 4
.param p1, "view" # Landroid/view/View;
.line 6452
invoke-static {p1}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v0
.line 6453
.local v0, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x0
iput-object v1, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mScrapContainer:Landroidx/recyclerview/widget/RecyclerView$Recycler;
.line 6454
const/4 v1, 0x0
iput-boolean v1, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mInChangeScrap:Z
.line 6455
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearReturnedFromScrapFlag()V
.line 6456
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleViewHolderInternal(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6457
return-void
.end method
.method recycleAndClearCachedViews()V
.registers 3
.line 6300
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 6301
.local v0, "count":I
add-int/lit8 v1, v0, -0x1
.local v1, "i":I
:goto_8
if-ltz v1, :cond_10
.line 6302
invoke-virtual {p0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleCachedViewAt(I)V
.line 6301
add-int/lit8 v1, v1, -0x1
goto :goto_8
.line 6304
.end local v1 # "i":I
:cond_10
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->clear()V
.line 6305
sget-boolean v1, Landroidx/recyclerview/widget/RecyclerView;->ALLOW_THREAD_GAP_WORK:Z
if-eqz v1, :cond_20
.line 6306
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
invoke-virtual {v1}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->clearPrefetchPositions()V
.line 6308
:cond_20
return-void
.end method
.method recycleCachedViewAt(I)V
.registers 4
.param p1, "cachedViewIndex" # I
.line 6325
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6329
.local v0, "viewHolder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x1
invoke-virtual {p0, v0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->addViewHolderToRecycledViewPool(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
.line 6330
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1, p1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 6331
return-void
.end method
.method public recycleView(Landroid/view/View;)V
.registers 5
.param p1, "view" # Landroid/view/View;
.line 6270
invoke-static {p1}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v0
.line 6271
.local v0, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isTmpDetached()Z
move-result v1
if-eqz v1, :cond_10
.line 6272
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
const/4 v2, 0x0
invoke-virtual {v1, p1, v2}, Landroidx/recyclerview/widget/RecyclerView;->removeDetachedView(Landroid/view/View;Z)V
.line 6274
:cond_10
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isScrap()Z
move-result v1
if-eqz v1, :cond_1a
.line 6275
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->unScrap()V
goto :goto_23
.line 6276
:cond_1a
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->wasReturnedFromScrap()Z
move-result v1
if-eqz v1, :cond_23
.line 6277
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearReturnedFromScrapFlag()V
.line 6279
:cond_23
:goto_23
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleViewHolderInternal(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6294
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mItemAnimator:Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;
if-eqz v1, :cond_39
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRecyclable()Z
move-result v1
if-nez v1, :cond_39
.line 6295
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mItemAnimator:Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;->endAnimation(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6297
:cond_39
return-void
.end method
.method recycleViewHolderInternal(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.registers 12
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6339
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isScrap()Z
move-result v0
const/4 v1, 0x0
const/4 v2, 0x1
if-nez v0, :cond_eb
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object v0
if-eqz v0, :cond_12
goto/16 :goto_eb
.line 6346
:cond_12
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isTmpDetached()Z
move-result v0
if-nez v0, :cond_cb
.line 6352
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->shouldIgnore()Z
move-result v0
if-nez v0, :cond_ae
.line 6357
nop
.line 6358
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->doesTransientStatePreventRecycling()Z
move-result v0
.line 6360
.local v0, "transientStatePreventsRecycling":Z
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
if-eqz v3, :cond_37
if-eqz v0, :cond_37
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 6362
invoke-virtual {v3, p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->onFailedToRecycleView(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
move-result v3
if-eqz v3, :cond_37
const/4 v3, 0x1
goto :goto_38
:cond_37
const/4 v3, 0x0
.line 6363
.local v3, "forceRecycle":Z
:goto_38
const/4 v4, 0x0
.line 6364
.local v4, "cached":Z
const/4 v5, 0x0
.line 6369
.local v5, "recycled":Z
if-nez v3, :cond_42
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRecyclable()Z
move-result v6
if-eqz v6, :cond_9d
.line 6370
:cond_42
iget v6, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheMax:I
if-lez v6, :cond_97
const/16 v6, 0x20e
.line 6371
invoke-virtual {p1, v6}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->hasAnyOfTheFlags(I)Z
move-result v6
if-nez v6, :cond_97
.line 6376
iget-object v6, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v6}, Ljava/util/ArrayList;->size()I
move-result v6
.line 6377
.local v6, "cachedViewSize":I
iget v7, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheMax:I
if-lt v6, v7, :cond_5f
if-lez v6, :cond_5f
.line 6378
invoke-virtual {p0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleCachedViewAt(I)V
.line 6379
add-int/lit8 v6, v6, -0x1
.line 6382
:cond_5f
move v1, v6
.line 6383
.local v1, "targetCacheIndex":I
sget-boolean v7, Landroidx/recyclerview/widget/RecyclerView;->ALLOW_THREAD_GAP_WORK:Z
if-eqz v7, :cond_91
if-lez v6, :cond_91
iget-object v7, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v7, v7, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
iget v8, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
.line 6385
invoke-virtual {v7, v8}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->lastPrefetchIncludedPosition(I)Z
move-result v7
if-nez v7, :cond_91
.line 6387
add-int/lit8 v7, v6, -0x1
.line 6388
.local v7, "cacheIndex":I
:goto_74
if-ltz v7, :cond_8f
.line 6389
iget-object v8, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v8, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget v8, v8, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
.line 6390
.local v8, "cachedPos":I
iget-object v9, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v9, v9, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
invoke-virtual {v9, v8}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->lastPrefetchIncludedPosition(I)Z
move-result v9
if-nez v9, :cond_8b
.line 6391
goto :goto_8f
.line 6393
:cond_8b
nop
.end local v8 # "cachedPos":I
add-int/lit8 v7, v7, -0x1
.line 6394
goto :goto_74
.line 6395
:cond_8f
:goto_8f
add-int/lit8 v1, v7, 0x1
.line 6397
.end local v7 # "cacheIndex":I
:cond_91
iget-object v7, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v7, v1, p1}, Ljava/util/ArrayList;->add(ILjava/lang/Object;)V
.line 6398
const/4 v4, 0x1
.line 6400
.end local v1 # "targetCacheIndex":I
.end local v6 # "cachedViewSize":I
:cond_97
if-nez v4, :cond_9d
.line 6401
invoke-virtual {p0, p1, v2}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->addViewHolderToRecycledViewPool(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
.line 6402
const/4 v5, 0x1
.line 6419
:cond_9d
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mViewInfoStore:Landroidx/recyclerview/widget/ViewInfoStore;
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ViewInfoStore;->removeViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6420
if-nez v4, :cond_ad
if-nez v5, :cond_ad
if-eqz v0, :cond_ad
.line 6421
const/4 v1, 0x0
iput-object v1, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mOwnerRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
.line 6423
:cond_ad
return-void
.line 6353
.end local v0 # "transientStatePreventsRecycling":Z
.end local v3 # "forceRecycle":Z
.end local v4 # "cached":Z
.end local v5 # "recycled":Z
:cond_ae
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Trying to recycle an ignored view holder. You should first call stopIgnoringView(view) before calling recycle."
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6355
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 6347
:cond_cb
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Tmp detached view should be removed from RecyclerView before it can be recycled: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6349
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 6340
:cond_eb
:goto_eb
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Scrapped or attached views may not be recycled. isScrap:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 6342
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isScrap()Z
move-result v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v4, " isAttached:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
.line 6343
invoke-virtual {v4}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object v4
if-eqz v4, :cond_10c
const/4 v1, 0x1
:cond_10c
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_121
:goto_120
throw v0
:goto_121
goto :goto_120
.end method
.method scrapView(Landroid/view/View;)V
.registers 6
.param p1, "view" # Landroid/view/View;
.line 6469
invoke-static {p1}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v0
.line 6470
.local v0, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/16 v1, 0xc
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->hasAnyOfTheFlags(I)Z
move-result v1
if-nez v1, :cond_30
.line 6471
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isUpdated()Z
move-result v1
if-eqz v1, :cond_30
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView;->canReuseUpdatedViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
move-result v1
if-eqz v1, :cond_1b
goto :goto_30
.line 6480
:cond_1b
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
if-nez v1, :cond_26
.line 6481
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
iput-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
.line 6483
:cond_26
const/4 v1, 0x1
invoke-virtual {v0, p0, v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setScrapContainer(Landroidx/recyclerview/widget/RecyclerView$Recycler;Z)V
.line 6484
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_6d
.line 6472
:cond_30
:goto_30
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v1
if-eqz v1, :cond_64
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRemoved()Z
move-result v1
if-nez v1, :cond_64
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->hasStableIds()Z
move-result v1
if-eqz v1, :cond_47
goto :goto_64
.line 6473
:cond_47
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Called scrap view with an invalid view. Invalid views cannot be reused from scrap, they should rebound from recycler pool."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6475
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 6477
:cond_64
:goto_64
const/4 v1, 0x0
invoke-virtual {v0, p0, v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setScrapContainer(Landroidx/recyclerview/widget/RecyclerView$Recycler;Z)V
.line 6478
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 6486
:goto_6d
return-void
.end method
.method setRecycledViewPool(Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;)V
.registers 3
.param p1, "pool" # Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.line 6760
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
if-eqz v0, :cond_7
.line 6761
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->detach()V
.line 6763
:cond_7
iput-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.line 6764
if-eqz p1, :cond_18
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter;
move-result-object v0
if-eqz v0, :cond_18
.line 6765
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->attach()V
.line 6767
:cond_18
return-void
.end method
.method setViewCacheExtension(Landroidx/recyclerview/widget/RecyclerView$ViewCacheExtension;)V
.registers 2
.param p1, "extension" # Landroidx/recyclerview/widget/RecyclerView$ViewCacheExtension;
.line 6756
iput-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheExtension:Landroidx/recyclerview/widget/RecyclerView$ViewCacheExtension;
.line 6757
return-void
.end method
.method public setViewCacheSize(I)V
.registers 2
.param p1, "viewCount" # I
.line 5843
iput p1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRequestedCacheMax:I
.line 5844
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->updateViewCacheSize()V
.line 5845
return-void
.end method
.method tryGetViewHolderForPositionByDeadline(IZJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.registers 22
.param p1, "position" # I
.param p2, "dryRun" # Z
.param p3, "deadlineNs" # J
.line 6055
move-object/from16 v6, p0
move/from16 v7, p1
move/from16 v8, p2
if-ltz v7, :cond_23b
iget-object v0, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result v0
if-ge v7, v0, :cond_23b
.line 6060
const/4 v0, 0x0
.line 6061
.local v0, "fromScrapOrHiddenOrCache":Z
const/4 v1, 0x0
.line 6063
.local v1, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v2
const/4 v9, 0x1
const/4 v10, 0x0
if-eqz v2, :cond_2a
.line 6064
invoke-virtual/range {p0 .. p1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getChangedScrapViewForPosition(I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v1
.line 6065
if-eqz v1, :cond_28
const/4 v2, 0x1
goto :goto_29
:cond_28
const/4 v2, 0x0
:goto_29
move v0, v2
.line 6068
:cond_2a
if-nez v1, :cond_5e
.line 6069
invoke-virtual/range {p0 .. p2}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getScrapOrHiddenOrCachedHolderForPosition(IZ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v1
.line 6070
if-eqz v1, :cond_5e
.line 6071
invoke-virtual {v6, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->validateViewHolderForOffsetPosition(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
move-result v2
if-nez v2, :cond_5d
.line 6073
if-nez v8, :cond_5b
.line 6076
const/4 v2, 0x4
invoke-virtual {v1, v2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6077
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isScrap()Z
move-result v2
if-eqz v2, :cond_4f
.line 6078
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v2, v3, v10}, Landroidx/recyclerview/widget/RecyclerView;->removeDetachedView(Landroid/view/View;Z)V
.line 6079
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->unScrap()V
goto :goto_58
.line 6080
:cond_4f
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->wasReturnedFromScrap()Z
move-result v2
if-eqz v2, :cond_58
.line 6081
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearReturnedFromScrapFlag()V
.line 6083
:cond_58
:goto_58
invoke-virtual {v6, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleViewHolderInternal(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6085
:cond_5b
const/4 v1, 0x0
goto :goto_5e
.line 6087
:cond_5d
const/4 v0, 0x1
.line 6091
:cond_5e
:goto_5e
if-nez v1, :cond_18a
.line 6092
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mAdapterHelper:Landroidx/recyclerview/widget/AdapterHelper;
invoke-virtual {v2, v7}, Landroidx/recyclerview/widget/AdapterHelper;->findPositionOffset(I)I
move-result v2
.line 6093
.local v2, "offsetPosition":I
if-ltz v2, :cond_152
iget-object v3, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result v3
if-ge v2, v3, :cond_152
.line 6099
iget-object v3, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v3, v2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemViewType(I)I
move-result v3
.line 6101
.local v3, "type":I
iget-object v4, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->hasStableIds()Z
move-result v4
if-eqz v4, :cond_97
.line 6102
iget-object v4, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v4, v2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemId(I)J
move-result-wide v4
invoke-virtual {v6, v4, v5, v3, v8}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getScrapOrCachedViewForId(JIZ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v1
.line 6104
if-eqz v1, :cond_97
.line 6106
iput v2, v1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
.line 6107
const/4 v0, 0x1
.line 6110
:cond_97
if-nez v1, :cond_ed
iget-object v4, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheExtension:Landroidx/recyclerview/widget/RecyclerView$ViewCacheExtension;
if-eqz v4, :cond_ed
.line 6113
nop
.line 6114
invoke-virtual {v4, v6, v7, v3}, Landroidx/recyclerview/widget/RecyclerView$ViewCacheExtension;->getViewForPositionAndType(Landroidx/recyclerview/widget/RecyclerView$Recycler;II)Landroid/view/View;
move-result-object v4
.line 6115
.local v4, "view":Landroid/view/View;
if-eqz v4, :cond_ed
.line 6116
iget-object v5, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v5, v4}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolder(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v1
.line 6117
if-eqz v1, :cond_d0
.line 6121
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->shouldIgnore()Z
move-result v5
if-nez v5, :cond_b3
goto :goto_ed
.line 6122
:cond_b3
new-instance v5, Ljava/lang/IllegalArgumentException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "getViewForPositionAndType returned a view that is ignored. You must call stopIgnoring before returning this view."
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v10, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6124
invoke-virtual {v10}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v10
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v5, v9}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v5
.line 6118
:cond_d0
new-instance v5, Ljava/lang/IllegalArgumentException;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "getViewForPositionAndType returned a view which does not have a ViewHolder"
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v10, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6120
invoke-virtual {v10}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v10
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-direct {v5, v9}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v5
.line 6128
.end local v4 # "view":Landroid/view/View;
:cond_ed
:goto_ed
if-nez v1, :cond_103
.line 6133
invoke-virtual/range {p0 .. p0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getRecycledViewPool()Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
move-result-object v4
invoke-virtual {v4, v3}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->getRecycledView(I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v1
.line 6134
if-eqz v1, :cond_103
.line 6135
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->resetInternal()V
.line 6136
sget-boolean v4, Landroidx/recyclerview/widget/RecyclerView;->FORCE_INVALIDATE_DISPLAY_LIST:Z
if-eqz v4, :cond_103
.line 6137
invoke-direct {v6, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->invalidateDisplayListInt(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.line 6141
:cond_103
if-nez v1, :cond_14f
.line 6142
iget-object v4, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v4}, Landroidx/recyclerview/widget/RecyclerView;->getNanoTime()J
move-result-wide v4
.line 6143
.local v4, "start":J
const-wide v11, 0x7fffffffffffffffL
cmp-long v13, p3, v11
if-eqz v13, :cond_122
iget-object v11, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
.line 6144
move v12, v3
move-wide v13, v4
move-wide/from16 v15, p3
invoke-virtual/range {v11 .. v16}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->willCreateInTime(IJJ)Z
move-result v11
if-nez v11, :cond_122
.line 6146
const/4 v9, 0x0
return-object v9
.line 6148
:cond_122
iget-object v11, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v11, v11, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
iget-object v12, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v11, v12, v3}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->createViewHolder(Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v1
.line 6149
sget-boolean v11, Landroidx/recyclerview/widget/RecyclerView;->ALLOW_THREAD_GAP_WORK:Z
if-eqz v11, :cond_13f
.line 6151
iget-object v11, v1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-static {v11}, Landroidx/recyclerview/widget/RecyclerView;->findNestedRecyclerView(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView;
move-result-object v11
.line 6152
.local v11, "innerView":Landroidx/recyclerview/widget/RecyclerView;
if-eqz v11, :cond_13f
.line 6153
new-instance v12, Ljava/lang/ref/WeakReference;
invoke-direct {v12, v11}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v12, v1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mNestedRecyclerView:Ljava/lang/ref/WeakReference;
.line 6157
.end local v11 # "innerView":Landroidx/recyclerview/widget/RecyclerView;
:cond_13f
iget-object v11, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v11}, Landroidx/recyclerview/widget/RecyclerView;->getNanoTime()J
move-result-wide v11
.line 6158
.local v11, "end":J
iget-object v13, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRecyclerPool:Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
sub-long v14, v11, v4
invoke-virtual {v13, v3, v14, v15}, Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->factorInCreateTime(IJ)V
move v11, v0
move-object v12, v1
goto :goto_18c
.line 6141
.end local v4 # "start":J
.end local v11 # "end":J
:cond_14f
move v11, v0
move-object v12, v1
goto :goto_18c
.line 6094
.end local v3 # "type":I
:cond_152
new-instance v3, Ljava/lang/IndexOutOfBoundsException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Inconsistency detected. Invalid item position "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v5, "(offset:"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v5, ").state:"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v5, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v5, v5, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
.line 6096
invoke-virtual {v5}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v5, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v5}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v3
.line 6091
.end local v2 # "offsetPosition":I
:cond_18a
move v11, v0
move-object v12, v1
.line 6168
.end local v0 # "fromScrapOrHiddenOrCache":Z
.end local v1 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.local v11, "fromScrapOrHiddenOrCache":Z
.local v12, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:goto_18c
if-eqz v11, :cond_1c7
iget-object v0, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v0
if-nez v0, :cond_1c7
.line 6169
const/16 v0, 0x2000
invoke-virtual {v12, v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->hasAnyOfTheFlags(I)Z
move-result v1
if-eqz v1, :cond_1c7
.line 6170
invoke-virtual {v12, v10, v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setFlags(II)V
.line 6171
iget-object v0, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
iget-boolean v0, v0, Landroidx/recyclerview/widget/RecyclerView$State;->mRunSimpleAnimations:Z
if-eqz v0, :cond_1c7
.line 6172
nop
.line 6173
invoke-static {v12}, Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;->buildAdapterChangeFlagsForAnimations(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
move-result v0
.line 6174
.local v0, "changeFlags":I
or-int/lit16 v0, v0, 0x1000
.line 6175
iget-object v1, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mItemAnimator:Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
.line 6176
invoke-virtual {v12}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getUnmodifiedPayloads()Ljava/util/List;
move-result-object v3
.line 6175
invoke-virtual {v1, v2, v12, v0, v3}, Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;->recordPreLayoutInformation(Landroidx/recyclerview/widget/RecyclerView$State;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;ILjava/util/List;)Landroidx/recyclerview/widget/RecyclerView$ItemAnimator$ItemHolderInfo;
move-result-object v1
.line 6177
.local v1, "info":Landroidx/recyclerview/widget/RecyclerView$ItemAnimator$ItemHolderInfo;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v2, v12, v1}, Landroidx/recyclerview/widget/RecyclerView;->recordAnimationInfoIfBouncedHiddenView(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ItemAnimator$ItemHolderInfo;)V
.line 6181
.end local v0 # "changeFlags":I
.end local v1 # "info":Landroidx/recyclerview/widget/RecyclerView$ItemAnimator$ItemHolderInfo;
:cond_1c7
const/4 v13, 0x0
.line 6182
.local v13, "bound":Z
iget-object v0, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v0
if-eqz v0, :cond_1db
invoke-virtual {v12}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isBound()Z
move-result v0
if-eqz v0, :cond_1db
.line 6184
iput v7, v12, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPreLayoutPosition:I
goto :goto_201
.line 6185
:cond_1db
invoke-virtual {v12}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isBound()Z
move-result v0
if-eqz v0, :cond_1ed
invoke-virtual {v12}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->needsUpdate()Z
move-result v0
if-nez v0, :cond_1ed
invoke-virtual {v12}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v0
if-eqz v0, :cond_201
.line 6191
:cond_1ed
iget-object v0, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapterHelper:Landroidx/recyclerview/widget/AdapterHelper;
invoke-virtual {v0, v7}, Landroidx/recyclerview/widget/AdapterHelper;->findPositionOffset(I)I
move-result v14
.line 6192
.local v14, "offsetPosition":I
move-object/from16 v0, p0
move-object v1, v12
move v2, v14
move/from16 v3, p1
move-wide/from16 v4, p3
invoke-direct/range {v0 .. v5}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->tryBindViewHolderByDeadline(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIJ)Z
move-result v13
.line 6195
.end local v14 # "offsetPosition":I
:cond_201
:goto_201
iget-object v0, v12, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
.line 6197
.local v0, "lp":Landroid/view/ViewGroup$LayoutParams;
if-nez v0, :cond_217
.line 6198
iget-object v1, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 6199
.local v1, "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
iget-object v2, v12, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v2, v1}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
goto :goto_230
.line 6200
.end local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:cond_217
iget-object v1, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
move-result v1
if-nez v1, :cond_22d
.line 6201
iget-object v1, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 6202
.restart local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
iget-object v2, v12, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v2, v1}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
goto :goto_230
.line 6204
.end local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:cond_22d
move-object v1, v0
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 6206
.restart local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
:goto_230
iput-object v12, v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6207
if-eqz v11, :cond_237
if-eqz v13, :cond_237
goto :goto_238
:cond_237
const/4 v9, 0x0
:goto_238
iput-boolean v9, v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->mPendingInvalidate:Z
.line 6208
return-object v12
.line 6056
.end local v0 # "lp":Landroid/view/ViewGroup$LayoutParams;
.end local v1 # "rvLayoutParams":Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.end local v11 # "fromScrapOrHiddenOrCache":Z
.end local v12 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.end local v13 # "bound":Z
:cond_23b
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Invalid item position "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "("
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "). Item count:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
.line 6057
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
iget-object v2, v6, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 6058
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method unscrapView(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.registers 3
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6495
iget-boolean v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mInChangeScrap:Z
if-eqz v0, :cond_a
.line 6496
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mChangedScrap:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
goto :goto_f
.line 6498
:cond_a
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mAttachedScrap:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
.line 6500
:goto_f
const/4 v0, 0x0
iput-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mScrapContainer:Landroidx/recyclerview/widget/RecyclerView$Recycler;
.line 6501
const/4 v0, 0x0
iput-boolean v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mInChangeScrap:Z
.line 6502
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->clearReturnedFromScrapFlag()V
.line 6503
return-void
.end method
.method updateViewCacheSize()V
.registers 5
.line 5848
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mLayout:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
if-eqz v0, :cond_d
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mLayout:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
iget v0, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxCountObserved:I
goto :goto_e
:cond_d
const/4 v0, 0x0
.line 5849
.local v0, "extraCache":I
:goto_e
iget v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mRequestedCacheMax:I
add-int/2addr v1, v0
iput v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheMax:I
.line 5852
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
.line 5853
.local v1, "i":I
:goto_1b
if-ltz v1, :cond_2d
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
iget v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mViewCacheMax:I
if-le v2, v3, :cond_2d
.line 5854
invoke-virtual {p0, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleCachedViewAt(I)V
.line 5853
add-int/lit8 v1, v1, -0x1
goto :goto_1b
.line 5856
.end local v1 # "i":I
:cond_2d
return-void
.end method
.method validateViewHolderForOffsetPosition(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
.registers 9
.param p1, "holder" # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 5879
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRemoved()Z
move-result v0
if-eqz v0, :cond_f
.line 5884
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v0
return v0
.line 5886
:cond_f
iget v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-ltz v0, :cond_5b
iget v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result v1
if-ge v0, v1, :cond_5b
.line 5890
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$State;->isPreLayout()Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_3b
.line 5892
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
iget v2, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
invoke-virtual {v0, v2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemViewType(I)I
move-result v0
.line 5893
.local v0, "type":I
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemViewType()I
move-result v2
if-eq v0, v2, :cond_3b
.line 5894
return v1
.line 5897
.end local v0 # "type":I
:cond_3b
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->hasStableIds()Z
move-result v0
const/4 v2, 0x1
if-eqz v0, :cond_5a
.line 5898
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getItemId()J
move-result-wide v3
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
iget v5, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
invoke-virtual {v0, v5}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemId(I)J
move-result-wide v5
cmp-long v0, v3, v5
if-nez v0, :cond_59
const/4 v1, 0x1
:cond_59
return v1
.line 5900
:cond_5a
return v2
.line 5887
:cond_5b
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Inconsistency detected. Invalid view holder adapter position"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
iget-object v2, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->this$0:Landroidx/recyclerview/widget/RecyclerView;
.line 5888
invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->exceptionLabel()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method viewRangeUpdate(II)V
.registers 9
.param p1, "positionStart" # I
.param p2, "itemCount" # I
.line 6777
add-int v0, p1, p2
.line 6778
.local v0, "positionEnd":I
iget-object v1, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
.line 6779
.local v1, "cachedCount":I
add-int/lit8 v2, v1, -0x1
.local v2, "i":I
:goto_a
if-ltz v2, :cond_27
.line 6780
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView$Recycler;->mCachedViews:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 6781
.local v3, "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-nez v3, :cond_17
.line 6782
goto :goto_24
.line 6785
:cond_17
iget v4, v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
.line 6786
.local v4, "pos":I
if-lt v4, p1, :cond_24
if-ge v4, v0, :cond_24
.line 6787
const/4 v5, 0x2
invoke-virtual {v3, v5}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->addFlags(I)V
.line 6788
invoke-virtual {p0, v2}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleCachedViewAt(I)V
.line 6779
.end local v3 # "holder":Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.end local v4 # "pos":I
:cond_24
:goto_24
add-int/lit8 v2, v2, -0x1
goto :goto_a
.line 6793
.end local v2 # "i":I
:cond_27
return-void
.end method