Add Discord APKTool decompilation (Smali source for modding)

- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
.class interface abstract Landroidx/recyclerview/widget/AdapterHelper$Callback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AdapterHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Callback"
.end annotation
# virtual methods
.method public abstract findViewHolder(I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.end method
.method public abstract markViewHoldersUpdated(IILjava/lang/Object;)V
.end method
.method public abstract offsetPositionsForAdd(II)V
.end method
.method public abstract offsetPositionsForMove(II)V
.end method
.method public abstract offsetPositionsForRemovingInvisible(II)V
.end method
.method public abstract offsetPositionsForRemovingLaidOutOrNewView(II)V
.end method
.method public abstract onDispatchFirstPass(Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;)V
.end method
.method public abstract onDispatchSecondPass(Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;)V
.end method

View File

@@ -0,0 +1,300 @@
.class final Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AdapterHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "UpdateOp"
.end annotation
# static fields
.field static final ADD:I = 0x1
.field static final MOVE:I = 0x8
.field static final POOL_SIZE:I = 0x1e
.field static final REMOVE:I = 0x2
.field static final UPDATE:I = 0x4
# instance fields
.field cmd:I
.field itemCount:I
.field payload:Ljava/lang/Object;
.field positionStart:I
# direct methods
.method public constructor <init>(IIILjava/lang/Object;)V
.locals 0
.line 651
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
iput p2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
iput p3, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
iput-object p4, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
return-void
.end method
# virtual methods
.method public cmdToString()Ljava/lang/String;
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
const/4 v1, 0x1
if-eq v0, v1, :cond_3
const/4 v1, 0x2
if-eq v0, v1, :cond_2
const/4 v1, 0x4
if-eq v0, v1, :cond_1
const/16 v1, 0x8
if-eq v0, v1, :cond_0
const-string v0, "??"
return-object v0
:cond_0
const-string v0, "mv"
return-object v0
:cond_1
const-string v0, "up"
return-object v0
:cond_2
const-string v0, "rm"
return-object v0
:cond_3
const-string v0, "add"
return-object v0
.end method
.method public equals(Ljava/lang/Object;)Z
.locals 4
const/4 v0, 0x1
if-ne p0, p1, :cond_0
return v0
.line 684
:cond_0
instance-of v1, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;
const/4 v2, 0x0
if-nez v1, :cond_1
return v2
.line 688
:cond_1
check-cast p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
.line 690
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
if-eq v1, v3, :cond_2
return v2
:cond_2
const/16 v3, 0x8
if-ne v1, v3, :cond_3
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
iget v3, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
sub-int/2addr v1, v3
.line 693
invoke-static {v1}, Ljava/lang/Math;->abs(I)I
move-result v1
if-ne v1, v0, :cond_3
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
.line 695
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
if-ne v1, v3, :cond_3
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
if-ne v1, v3, :cond_3
return v0
:cond_3
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
.line 699
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
if-eq v1, v3, :cond_4
return v2
:cond_4
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
.line 702
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
if-eq v1, v3, :cond_5
return v2
:cond_5
iget-object v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
if-eqz v1, :cond_6
.line 706
iget-object p1, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
invoke-virtual {v1, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_7
return v2
.line 709
:cond_6
iget-object p1, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
if-eqz p1, :cond_7
return v2
:cond_7
return v0
.end method
.method public hashCode()I
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
add-int/2addr v0, v1
mul-int/lit8 v0, v0, 0x1f
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
add-int/2addr v0, v1
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 674
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {p0}, Ljava/lang/System;->identityHashCode(Ljava/lang/Object;)I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "["
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 675
invoke-virtual {p0}, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmdToString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ",s:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "c:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ",p:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, "]"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,76 @@
.class public final Landroidx/recyclerview/widget/AdapterListUpdateCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ListUpdateCallback;
# instance fields
.field private final mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
.locals 0
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 35
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
return-void
.end method
# virtual methods
.method public onChanged(IILjava/lang/Object;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 60
invoke-virtual {v0, p1, p2, p3}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->notifyItemRangeChanged(IILjava/lang/Object;)V
return-void
.end method
.method public onInserted(II)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 42
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->notifyItemRangeInserted(II)V
return-void
.end method
.method public onMoved(II)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 54
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->notifyItemMoved(II)V
return-void
.end method
.method public onRemoved(II)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 48
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->notifyItemRangeRemoved(II)V
return-void
.end method

View File

@@ -0,0 +1,212 @@
.class public final Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncDifferConfig;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Builder"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field private static sDiffExecutor:Ljava/util/concurrent/Executor;
.field private static final sExecutorLock:Ljava/lang/Object;
# instance fields
.field private mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
.field private final mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;"
}
.end annotation
.end field
.field private mMainThreadExecutor:Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 144
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->sExecutorLock:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
.locals 0
.param p1 # Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;)V"
}
.end annotation
.line 84
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
return-void
.end method
# virtual methods
.method public build()Landroidx/recyclerview/widget/AsyncDifferConfig;
.locals 4
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Landroidx/recyclerview/widget/AsyncDifferConfig<",
"TT;>;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
if-nez v0, :cond_1
sget-object v0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->sExecutorLock:Ljava/lang/Object;
.line 130
monitor-enter v0
:try_start_0
sget-object v1, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->sDiffExecutor:Ljava/util/concurrent/Executor;
if-nez v1, :cond_0
const/4 v1, 0x2
.line 132
invoke-static {v1}, Ljava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;
move-result-object v1
sput-object v1, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->sDiffExecutor:Ljava/util/concurrent/Executor;
goto :goto_0
:catchall_0
move-exception v1
goto :goto_1
.line 134
:cond_0
:goto_0
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
sget-object v0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->sDiffExecutor:Ljava/util/concurrent/Executor;
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
goto :goto_2
:goto_1
:try_start_1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
.line 137
:cond_1
:goto_2
new-instance v0, Landroidx/recyclerview/widget/AsyncDifferConfig;
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
iget-object v3, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
invoke-direct {v0, v1, v2, v3}, Landroidx/recyclerview/widget/AsyncDifferConfig;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
return-object v0
.end method
.method public setBackgroundThreadExecutor(Ljava/util/concurrent/Executor;)Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
.locals 0
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Executor;",
")",
"Landroidx/recyclerview/widget/AsyncDifferConfig$Builder<",
"TT;>;"
}
.end annotation
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
return-object p0
.end method
.method public setMainThreadExecutor(Ljava/util/concurrent/Executor;)Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
.locals 0
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Executor;",
")",
"Landroidx/recyclerview/widget/AsyncDifferConfig$Builder<",
"TT;>;"
}
.end annotation
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
return-object p0
.end method

View File

@@ -0,0 +1,128 @@
.class public final Landroidx/recyclerview/widget/AsyncDifferConfig;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field private final mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field private final mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;"
}
.end annotation
.end field
.field private final mMainThreadExecutor:Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
.locals 0
.param p1 # Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Executor;",
"Ljava/util/concurrent/Executor;",
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;)V"
}
.end annotation
.line 47
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncDifferConfig;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
iput-object p2, p0, Landroidx/recyclerview/widget/AsyncDifferConfig;->mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
iput-object p3, p0, Landroidx/recyclerview/widget/AsyncDifferConfig;->mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
return-void
.end method
# virtual methods
.method public getBackgroundThreadExecutor()Ljava/util/concurrent/Executor;
.locals 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncDifferConfig;->mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
return-object v0
.end method
.method public getDiffCallback()Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.locals 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncDifferConfig;->mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
return-object v0
.end method
.method public getMainThreadExecutor()Ljava/util/concurrent/Executor;
.locals 1
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncDifferConfig;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
return-object v0
.end method

View File

@@ -0,0 +1,234 @@
.class Landroidx/recyclerview/widget/AsyncListDiffer$1$1;
.super Landroidx/recyclerview/widget/DiffUtil$Callback;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/AsyncListDiffer$1;->run()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/AsyncListDiffer$1;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 292
invoke-direct {p0}, Landroidx/recyclerview/widget/DiffUtil$Callback;-><init>()V
return-void
.end method
# virtual methods
.method public areContentsTheSame(II)Z
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 316
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$oldList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 317
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$newList:Ljava/util/List;
invoke-interface {v0, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p2
if-eqz p1, :cond_0
if-eqz p2, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 319
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer;->mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getDiffCallback()Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
move-result-object v0
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/DiffUtil$ItemCallback;->areContentsTheSame(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
return p1
:cond_0
if-nez p1, :cond_1
if-nez p2, :cond_1
const/4 p1, 0x1
return p1
.line 328
:cond_1
new-instance p1, Ljava/lang/AssertionError;
invoke-direct {p1}, Ljava/lang/AssertionError;-><init>()V
throw p1
.end method
.method public areItemsTheSame(II)Z
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 305
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$oldList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 306
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$newList:Ljava/util/List;
invoke-interface {v0, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p2
if-eqz p1, :cond_0
if-eqz p2, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 308
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer;->mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getDiffCallback()Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
move-result-object v0
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/DiffUtil$ItemCallback;->areItemsTheSame(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
return p1
:cond_0
if-nez p1, :cond_1
if-nez p2, :cond_1
const/4 p1, 0x1
goto :goto_0
:cond_1
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public getChangePayload(II)Ljava/lang/Object;
.locals 1
.annotation build Landroidx/annotation/Nullable;
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 334
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$oldList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 335
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$newList:Ljava/util/List;
invoke-interface {v0, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p2
if-eqz p1, :cond_0
if-eqz p2, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 337
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer;->mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getDiffCallback()Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
move-result-object v0
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/DiffUtil$ItemCallback;->getChangePayload(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.line 343
:cond_0
new-instance p1, Ljava/lang/AssertionError;
invoke-direct {p1}, Ljava/lang/AssertionError;-><init>()V
throw p1
.end method
.method public getNewListSize()I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 300
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$newList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
return v0
.end method
.method public getOldListSize()I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 295
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$oldList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
return v0
.end method

View File

@@ -0,0 +1,67 @@
.class Landroidx/recyclerview/widget/AsyncListDiffer$1$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/AsyncListDiffer$1;->run()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.field final synthetic val$result:Landroidx/recyclerview/widget/DiffUtil$DiffResult;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/AsyncListDiffer$1;Landroidx/recyclerview/widget/DiffUtil$DiffResult;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$2;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
iput-object p2, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$2;->val$result:Landroidx/recyclerview/widget/DiffUtil$DiffResult;
.line 347
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 4
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$2;->this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.line 350
iget-object v1, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
iget v2, v1, Landroidx/recyclerview/widget/AsyncListDiffer;->mMaxScheduledGeneration:I
iget v3, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$runGeneration:I
if-ne v2, v3, :cond_0
.line 351
iget-object v2, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$newList:Ljava/util/List;
iget-object v3, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1$2;->val$result:Landroidx/recyclerview/widget/DiffUtil$DiffResult;
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$commitCallback:Ljava/lang/Runnable;
invoke-virtual {v1, v2, v3, v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->latchList(Ljava/util/List;Landroidx/recyclerview/widget/DiffUtil$DiffResult;Ljava/lang/Runnable;)V
:cond_0
return-void
.end method

View File

@@ -0,0 +1,78 @@
.class Landroidx/recyclerview/widget/AsyncListDiffer$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/AsyncListDiffer;->submitList(Ljava/util/List;Ljava/lang/Runnable;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
.field final synthetic val$commitCallback:Ljava/lang/Runnable;
.field final synthetic val$newList:Ljava/util/List;
.field final synthetic val$oldList:Ljava/util/List;
.field final synthetic val$runGeneration:I
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/AsyncListDiffer;Ljava/util/List;Ljava/util/List;ILjava/lang/Runnable;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
iput-object p2, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$oldList:Ljava/util/List;
iput-object p3, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$newList:Ljava/util/List;
iput p4, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$runGeneration:I
iput-object p5, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->val$commitCallback:Ljava/lang/Runnable;
.line 289
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
.line 292
new-instance v0, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;
invoke-direct {v0, p0}, Landroidx/recyclerview/widget/AsyncListDiffer$1$1;-><init>(Landroidx/recyclerview/widget/AsyncListDiffer$1;)V
invoke-static {v0}, Landroidx/recyclerview/widget/DiffUtil;->calculateDiff(Landroidx/recyclerview/widget/DiffUtil$Callback;)Landroidx/recyclerview/widget/DiffUtil$DiffResult;
move-result-object v0
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListDiffer$1;->this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 347
iget-object v1, v1, Landroidx/recyclerview/widget/AsyncListDiffer;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
new-instance v2, Landroidx/recyclerview/widget/AsyncListDiffer$1$2;
invoke-direct {v2, p0, v0}, Landroidx/recyclerview/widget/AsyncListDiffer$1$2;-><init>(Landroidx/recyclerview/widget/AsyncListDiffer$1;Landroidx/recyclerview/widget/DiffUtil$DiffResult;)V
invoke-interface {v1, v2}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-void
.end method

View File

@@ -0,0 +1,45 @@
.class public interface abstract Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncListDiffer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "ListListener"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# virtual methods
.method public abstract onCurrentListChanged(Ljava/util/List;Ljava/util/List;)V
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Ljava/util/List<",
"TT;>;)V"
}
.end annotation
.end method

View File

@@ -0,0 +1,60 @@
.class Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/util/concurrent/Executor;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncListDiffer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "MainThreadExecutor"
.end annotation
# instance fields
.field final mHandler:Landroid/os/Handler;
# direct methods
.method public constructor <init>()V
.locals 2
.line 123
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 122
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;->mHandler:Landroid/os/Handler;
return-void
.end method
# virtual methods
.method public execute(Ljava/lang/Runnable;)V
.locals 1
.param p1 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;->mHandler:Landroid/os/Handler;
.line 126
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method

View File

@@ -0,0 +1,507 @@
.class public Landroidx/recyclerview/widget/AsyncListDiffer;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;,
Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field private static final sMainThreadExecutor:Ljava/util/concurrent/Executor;
# instance fields
.field final mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncDifferConfig<",
"TT;>;"
}
.end annotation
.end field
.field private mList:Ljava/util/List;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.end field
.field private final mListeners:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroidx/recyclerview/widget/AsyncListDiffer$ListListener<",
"TT;>;>;"
}
.end annotation
.end field
.field mMainThreadExecutor:Ljava/util/concurrent/Executor;
.field mMaxScheduledGeneration:I
.field private mReadOnlyList:Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.end field
.field private final mUpdateCallback:Landroidx/recyclerview/widget/ListUpdateCallback;
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 131
new-instance v0, Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;
invoke-direct {v0}, Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/AsyncListDiffer;->sMainThreadExecutor:Ljava/util/concurrent/Executor;
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/ListUpdateCallback;Landroidx/recyclerview/widget/AsyncDifferConfig;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/ListUpdateCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/AsyncDifferConfig;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/ListUpdateCallback;",
"Landroidx/recyclerview/widget/AsyncDifferConfig<",
"TT;>;)V"
}
.end annotation
.line 178
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 148
new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mListeners:Ljava/util/List;
.line 197
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v0
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mUpdateCallback:Landroidx/recyclerview/widget/ListUpdateCallback;
iput-object p2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
.line 181
invoke-virtual {p2}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getMainThreadExecutor()Ljava/util/concurrent/Executor;
move-result-object p1
if-eqz p1, :cond_0
.line 182
invoke-virtual {p2}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getMainThreadExecutor()Ljava/util/concurrent/Executor;
move-result-object p1
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
goto :goto_0
:cond_0
sget-object p1, Landroidx/recyclerview/widget/AsyncListDiffer;->sMainThreadExecutor:Ljava/util/concurrent/Executor;
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mMainThreadExecutor:Ljava/util/concurrent/Executor;
:goto_0
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/RecyclerView$Adapter;",
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;)V"
}
.end annotation
.line 162
new-instance v0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;
invoke-direct {v0, p1}, Landroidx/recyclerview/widget/AdapterListUpdateCallback;-><init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
new-instance p1, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
invoke-direct {p1, p2}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;-><init>(Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
.line 163
invoke-virtual {p1}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->build()Landroidx/recyclerview/widget/AsyncDifferConfig;
move-result-object p1
.line 162
invoke-direct {p0, v0, p1}, Landroidx/recyclerview/widget/AsyncListDiffer;-><init>(Landroidx/recyclerview/widget/ListUpdateCallback;Landroidx/recyclerview/widget/AsyncDifferConfig;)V
return-void
.end method
.method private onCurrentListChanged(Ljava/util/List;Ljava/lang/Runnable;)V
.locals 3
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Ljava/lang/Runnable;",
")V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mListeners:Ljava/util/List;
.line 375
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
.line 376
invoke-interface {v1, p1, v2}, Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;->onCurrentListChanged(Ljava/util/List;Ljava/util/List;)V
goto :goto_0
:cond_0
if-eqz p2, :cond_1
.line 379
invoke-interface {p2}, Ljava/lang/Runnable;->run()V
:cond_1
return-void
.end method
# virtual methods
.method public addListListener(Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/AsyncListDiffer$ListListener<",
"TT;>;)V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mListeners:Ljava/util/List;
.line 392
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public getCurrentList()Ljava/util/List;
.locals 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
return-object v0
.end method
.method public latchList(Ljava/util/List;Landroidx/recyclerview/widget/DiffUtil$DiffResult;Ljava/lang/Runnable;)V
.locals 1
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/DiffUtil$DiffResult;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p3 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Landroidx/recyclerview/widget/DiffUtil$DiffResult;",
"Ljava/lang/Runnable;",
")V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mList:Ljava/util/List;
.line 367
invoke-static {p1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object p1
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mUpdateCallback:Landroidx/recyclerview/widget/ListUpdateCallback;
.line 368
invoke-virtual {p2, p1}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->dispatchUpdatesTo(Landroidx/recyclerview/widget/ListUpdateCallback;)V
.line 369
invoke-direct {p0, v0, p3}, Landroidx/recyclerview/widget/AsyncListDiffer;->onCurrentListChanged(Ljava/util/List;Ljava/lang/Runnable;)V
return-void
.end method
.method public removeListListener(Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/AsyncListDiffer$ListListener<",
"TT;>;)V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mListeners:Ljava/util/List;
.line 403
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
return-void
.end method
.method public submitList(Ljava/util/List;)V
.locals 1
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;)V"
}
.end annotation
const/4 v0, 0x0
.line 231
invoke-virtual {p0, p1, v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->submitList(Ljava/util/List;Ljava/lang/Runnable;)V
return-void
.end method
.method public submitList(Ljava/util/List;Ljava/lang/Runnable;)V
.locals 8
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Ljava/lang/Runnable;",
")V"
}
.end annotation
iget v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mMaxScheduledGeneration:I
add-int/lit8 v5, v0, 0x1
iput v5, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mMaxScheduledGeneration:I
iget-object v3, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mList:Ljava/util/List;
if-ne p1, v3, :cond_1
if-eqz p2, :cond_0
.line 259
invoke-interface {p2}, Ljava/lang/Runnable;->run()V
:cond_0
return-void
:cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
const/4 v1, 0x0
if-nez p1, :cond_2
.line 269
invoke-interface {v3}, Ljava/util/List;->size()I
move-result p1
const/4 v2, 0x0
iput-object v2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mList:Ljava/util/List;
.line 271
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v2
iput-object v2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mUpdateCallback:Landroidx/recyclerview/widget/ListUpdateCallback;
.line 273
invoke-interface {v2, v1, p1}, Landroidx/recyclerview/widget/ListUpdateCallback;->onRemoved(II)V
.line 274
invoke-direct {p0, v0, p2}, Landroidx/recyclerview/widget/AsyncListDiffer;->onCurrentListChanged(Ljava/util/List;Ljava/lang/Runnable;)V
return-void
:cond_2
if-nez v3, :cond_3
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mList:Ljava/util/List;
.line 281
invoke-static {p1}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v2
iput-object v2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mReadOnlyList:Ljava/util/List;
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mUpdateCallback:Landroidx/recyclerview/widget/ListUpdateCallback;
.line 283
invoke-interface {p1}, Ljava/util/List;->size()I
move-result p1
invoke-interface {v2, v1, p1}, Landroidx/recyclerview/widget/ListUpdateCallback;->onInserted(II)V
.line 284
invoke-direct {p0, v0, p2}, Landroidx/recyclerview/widget/AsyncListDiffer;->onCurrentListChanged(Ljava/util/List;Ljava/lang/Runnable;)V
return-void
:cond_3
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListDiffer;->mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
.line 289
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getBackgroundThreadExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
new-instance v7, Landroidx/recyclerview/widget/AsyncListDiffer$1;
move-object v1, v7
move-object v2, p0
move-object v4, p1
move-object v6, p2
invoke-direct/range {v1 .. v6}, Landroidx/recyclerview/widget/AsyncListDiffer$1;-><init>(Landroidx/recyclerview/widget/AsyncListDiffer;Ljava/util/List;Ljava/util/List;ILjava/lang/Runnable;)V
invoke-interface {v0, v7}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-void
.end method

View File

@@ -0,0 +1,341 @@
.class Landroidx/recyclerview/widget/AsyncListUtil$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncListUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/AsyncListUtil;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/AsyncListUtil;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 212
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private isRequestedGeneration(I)Z
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 289
iget v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
if-ne p1, v0, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method private recycleAllTiles()V
.locals 3
const/4 v0, 0x0
:goto_0
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 282
iget-object v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
invoke-virtual {v1}, Landroidx/recyclerview/widget/TileList;->size()I
move-result v1
if-ge v0, v1, :cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 283
iget-object v2, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iget-object v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/TileList;->getAtIndex(I)Landroidx/recyclerview/widget/TileList$Tile;
move-result-object v1
invoke-interface {v2, v1}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 285
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
invoke-virtual {v0}, Landroidx/recyclerview/widget/TileList;->clear()V
return-void
.end method
# virtual methods
.method public addTile(ILandroidx/recyclerview/widget/TileList$Tile;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;)V"
}
.end annotation
.line 233
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$1;->isRequestedGeneration(I)Z
move-result p1
if-nez p1, :cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 237
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
invoke-interface {p1, p2}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
return-void
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 240
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
invoke-virtual {p1, p2}, Landroidx/recyclerview/widget/TileList;->addOrReplace(Landroidx/recyclerview/widget/TileList$Tile;)Landroidx/recyclerview/widget/TileList$Tile;
move-result-object p1
if-eqz p1, :cond_1
.line 242
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "duplicate tile @"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p1, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "AsyncListUtil"
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 243
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
.line 249
:cond_1
iget p1, p2, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
iget v0, p2, Landroidx/recyclerview/widget/TileList$Tile;->mItemCount:I
add-int/2addr p1, v0
const/4 v0, 0x0
:goto_0
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 251
iget-object v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mMissingPositions:Landroid/util/SparseIntArray;
invoke-virtual {v1}, Landroid/util/SparseIntArray;->size()I
move-result v1
if-ge v0, v1, :cond_3
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 252
iget-object v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mMissingPositions:Landroid/util/SparseIntArray;
invoke-virtual {v1, v0}, Landroid/util/SparseIntArray;->keyAt(I)I
move-result v1
.line 253
iget v2, p2, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
if-gt v2, v1, :cond_2
if-ge v1, p1, :cond_2
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 254
iget-object v2, v2, Landroidx/recyclerview/widget/AsyncListUtil;->mMissingPositions:Landroid/util/SparseIntArray;
invoke-virtual {v2, v0}, Landroid/util/SparseIntArray;->removeAt(I)V
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 255
iget-object v2, v2, Landroidx/recyclerview/widget/AsyncListUtil;->mViewCallback:Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
invoke-virtual {v2, v1}, Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;->onItemLoaded(I)V
goto :goto_0
:cond_2
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_3
return-void
.end method
.method public removeTile(II)V
.locals 1
.line 264
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$1;->isRequestedGeneration(I)Z
move-result p1
if-nez p1, :cond_0
return-void
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 267
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
invoke-virtual {p1, p2}, Landroidx/recyclerview/widget/TileList;->removeAtPos(I)Landroidx/recyclerview/widget/TileList$Tile;
move-result-object p1
if-nez p1, :cond_1
.line 269
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "tile not found @"
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "AsyncListUtil"
invoke-static {p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_1
iget-object p2, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 275
iget-object p2, p2, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
invoke-interface {p2, p1}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
return-void
.end method
.method public updateItemCount(II)V
.locals 0
.line 218
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$1;->isRequestedGeneration(I)Z
move-result p1
if-nez p1, :cond_0
return-void
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 221
iput p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
.line 222
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mViewCallback:Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
invoke-virtual {p1}, Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;->onDataRefresh()V
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 223
iget p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
iput p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mDisplayedGeneration:I
.line 224
invoke-direct {p0}, Landroidx/recyclerview/widget/AsyncListUtil$1;->recycleAllTiles()V
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$1;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
const/4 p2, 0x0
.line 226
iput-boolean p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mAllowScrollHints:Z
.line 228
invoke-virtual {p1}, Landroidx/recyclerview/widget/AsyncListUtil;->updateRange()V
return-void
.end method

View File

@@ -0,0 +1,526 @@
.class Landroidx/recyclerview/widget/AsyncListUtil$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncListUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
# instance fields
.field private mFirstRequiredTileStart:I
.field private mGeneration:I
.field private mItemCount:I
.field private mLastRequiredTileStart:I
.field final mLoadedTiles:Landroid/util/SparseBooleanArray;
.field private mRecycledRoot:Landroidx/recyclerview/widget/TileList$Tile;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;"
}
.end annotation
.end field
.field final synthetic this$0:Landroidx/recyclerview/widget/AsyncListUtil;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/AsyncListUtil;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 294
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 298
new-instance p1, Landroid/util/SparseBooleanArray;
invoke-direct {p1}, Landroid/util/SparseBooleanArray;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
return-void
.end method
.method private acquireTile()Landroidx/recyclerview/widget/TileList$Tile;
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mRecycledRoot:Landroidx/recyclerview/widget/TileList$Tile;
if-eqz v0, :cond_0
.line 394
iget-object v1, v0, Landroidx/recyclerview/widget/TileList$Tile;->mNext:Landroidx/recyclerview/widget/TileList$Tile;
iput-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mRecycledRoot:Landroidx/recyclerview/widget/TileList$Tile;
return-object v0
.line 397
:cond_0
new-instance v0, Landroidx/recyclerview/widget/TileList$Tile;
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
iget-object v2, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mTClass:Ljava/lang/Class;
iget v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
invoke-direct {v0, v2, v1}, Landroidx/recyclerview/widget/TileList$Tile;-><init>(Ljava/lang/Class;I)V
return-object v0
.end method
.method private addTile(Landroidx/recyclerview/widget/TileList$Tile;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;)V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
.line 405
iget v1, p1, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Landroid/util/SparseBooleanArray;->put(IZ)V
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 406
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mGeneration:I
invoke-interface {v0, v1, p1}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->addTile(ILandroidx/recyclerview/widget/TileList$Tile;)V
return-void
.end method
.method private flushTileCache(I)V
.locals 7
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 421
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;->getMaxCachedTiles()I
move-result v0
:goto_0
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
.line 422
invoke-virtual {v1}, Landroid/util/SparseBooleanArray;->size()I
move-result v1
if-lt v1, v0, :cond_3
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
const/4 v2, 0x0
.line 423
invoke-virtual {v1, v2}, Landroid/util/SparseBooleanArray;->keyAt(I)I
move-result v1
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
.line 424
invoke-virtual {v2}, Landroid/util/SparseBooleanArray;->size()I
move-result v3
const/4 v4, 0x1
sub-int/2addr v3, v4
invoke-virtual {v2, v3}, Landroid/util/SparseBooleanArray;->keyAt(I)I
move-result v2
iget v3, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mFirstRequiredTileStart:I
sub-int/2addr v3, v1
iget v5, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLastRequiredTileStart:I
sub-int v5, v2, v5
if-lez v3, :cond_1
if-ge v3, v5, :cond_0
const/4 v6, 0x2
if-ne p1, v6, :cond_1
.line 429
:cond_0
invoke-direct {p0, v1}, Landroidx/recyclerview/widget/AsyncListUtil$2;->removeTile(I)V
goto :goto_0
:cond_1
if-lez v5, :cond_3
if-lt v3, v5, :cond_2
if-ne p1, v4, :cond_3
.line 432
:cond_2
invoke-direct {p0, v2}, Landroidx/recyclerview/widget/AsyncListUtil$2;->removeTile(I)V
goto :goto_0
:cond_3
return-void
.end method
.method private getTileStart(I)I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 350
iget v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
rem-int v0, p1, v0
sub-int/2addr p1, v0
return p1
.end method
.method private isTileLoaded(I)Z
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
.line 401
invoke-virtual {v0, p1}, Landroid/util/SparseBooleanArray;->get(I)Z
move-result p1
return p1
.end method
.method private varargs log(Ljava/lang/String;[Ljava/lang/Object;)V
.locals 2
.line 441
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "[BKGR] "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1, p2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
return-void
.end method
.method private removeTile(I)V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
.line 413
invoke-virtual {v0, p1}, Landroid/util/SparseBooleanArray;->delete(I)V
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 414
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mGeneration:I
invoke-interface {v0, v1, p1}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->removeTile(II)V
return-void
.end method
.method private requestTiles(IIIZ)V
.locals 3
move v0, p1
:goto_0
if-gt v0, p2, :cond_1
if-eqz p4, :cond_0
add-int v1, p2, p1
sub-int/2addr v1, v0
goto :goto_1
:cond_0
move v1, v0
:goto_1
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 360
iget-object v2, v2, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
invoke-interface {v2, v1, p3}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->loadTile(II)V
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 355
iget v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
add-int/2addr v0, v1
goto :goto_0
:cond_1
return-void
.end method
# virtual methods
.method public loadTile(II)V
.locals 4
.line 366
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$2;->isTileLoaded(I)Z
move-result v0
if-eqz v0, :cond_0
return-void
.line 372
:cond_0
invoke-direct {p0}, Landroidx/recyclerview/widget/AsyncListUtil$2;->acquireTile()Landroidx/recyclerview/widget/TileList$Tile;
move-result-object v0
.line 373
iput p1, v0, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 374
iget v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
iget v2, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mItemCount:I
sub-int/2addr v2, p1
invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, v0, Landroidx/recyclerview/widget/TileList$Tile;->mItemCount:I
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 375
iget-object v1, v1, Landroidx/recyclerview/widget/AsyncListUtil;->mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
iget-object v2, v0, Landroidx/recyclerview/widget/TileList$Tile;->mItems:[Ljava/lang/Object;
iget v3, v0, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
invoke-virtual {v1, v2, v3, p1}, Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;->fillData([Ljava/lang/Object;II)V
.line 376
invoke-direct {p0, p2}, Landroidx/recyclerview/widget/AsyncListUtil$2;->flushTileCache(I)V
.line 377
invoke-direct {p0, v0}, Landroidx/recyclerview/widget/AsyncListUtil$2;->addTile(Landroidx/recyclerview/widget/TileList$Tile;)V
return-void
.end method
.method public recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;)V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 385
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
iget-object v1, p1, Landroidx/recyclerview/widget/TileList$Tile;->mItems:[Ljava/lang/Object;
iget v2, p1, Landroidx/recyclerview/widget/TileList$Tile;->mItemCount:I
invoke-virtual {v0, v1, v2}, Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;->recycleData([Ljava/lang/Object;I)V
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mRecycledRoot:Landroidx/recyclerview/widget/TileList$Tile;
.line 387
iput-object v0, p1, Landroidx/recyclerview/widget/TileList$Tile;->mNext:Landroidx/recyclerview/widget/TileList$Tile;
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mRecycledRoot:Landroidx/recyclerview/widget/TileList$Tile;
return-void
.end method
.method public refresh(I)V
.locals 2
iput p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mGeneration:I
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
.line 309
invoke-virtual {p1}, Landroid/util/SparseBooleanArray;->clear()V
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 310
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
invoke-virtual {p1}, Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;->refreshData()I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mItemCount:I
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 311
iget-object v0, v0, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mGeneration:I
invoke-interface {v0, v1, p1}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->updateItemCount(II)V
return-void
.end method
.method public updateRange(IIIII)V
.locals 1
if-le p1, p2, :cond_0
return-void
.line 326
:cond_0
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$2;->getTileStart(I)I
move-result p1
.line 327
invoke-direct {p0, p2}, Landroidx/recyclerview/widget/AsyncListUtil$2;->getTileStart(I)I
move-result p2
.line 329
invoke-direct {p0, p3}, Landroidx/recyclerview/widget/AsyncListUtil$2;->getTileStart(I)I
move-result p3
iput p3, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mFirstRequiredTileStart:I
.line 330
invoke-direct {p0, p4}, Landroidx/recyclerview/widget/AsyncListUtil$2;->getTileStart(I)I
move-result p3
iput p3, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLastRequiredTileStart:I
const/4 p4, 0x0
const/4 v0, 0x1
if-ne p5, v0, :cond_1
iget p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mFirstRequiredTileStart:I
.line 339
invoke-direct {p0, p1, p2, p5, v0}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 340
iget p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
add-int/2addr p2, p1
iget p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLastRequiredTileStart:I
invoke-direct {p0, p2, p1, p5, p4}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
goto :goto_0
.line 343
:cond_1
invoke-direct {p0, p1, p3, p5, p4}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
iget p2, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mFirstRequiredTileStart:I
iget-object p3, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
.line 344
iget p3, p3, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
sub-int/2addr p1, p3
invoke-direct {p0, p2, p1, p5, v0}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
:goto_0
return-void
.end method

View File

@@ -0,0 +1,84 @@
.class public abstract Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncListUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "DataCallback"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 451
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abstract fillData([Ljava/lang/Object;II)V
.param p1 # [Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/WorkerThread;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"([TT;II)V"
}
.end annotation
.end method
.method public getMaxCachedTiles()I
.locals 1
.annotation build Landroidx/annotation/WorkerThread;
.end annotation
const/16 v0, 0xa
return v0
.end method
.method public recycleData([Ljava/lang/Object;I)V
.locals 0
.param p1 # [Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/WorkerThread;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"([TT;I)V"
}
.end annotation
return-void
.end method
.method public abstract refreshData()I
.annotation build Landroidx/annotation/WorkerThread;
.end annotation
.end method

View File

@@ -0,0 +1,116 @@
.class public abstract Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AsyncListUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "ViewCallback"
.end annotation
# static fields
.field public static final HINT_SCROLL_ASC:I = 0x2
.field public static final HINT_SCROLL_DESC:I = 0x1
.field public static final HINT_SCROLL_NONE:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 521
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public extendRangeInto([I[II)V
.locals 6
.param p1 # [I
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # [I
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/UiThread;
.end annotation
const/4 v0, 0x1
.line 577
aget v1, p1, v0
const/4 v2, 0x0
aget p1, p1, v2
sub-int v3, v1, p1
add-int/2addr v3, v0
.line 578
div-int/lit8 v4, v3, 0x2
if-ne p3, v0, :cond_0
move v5, v3
goto :goto_0
:cond_0
move v5, v4
:goto_0
sub-int/2addr p1, v5
.line 579
aput p1, p2, v2
const/4 p1, 0x2
if-ne p3, p1, :cond_1
goto :goto_1
:cond_1
move v3, v4
:goto_1
add-int/2addr v1, v3
.line 580
aput v1, p2, v0
return-void
.end method
.method public abstract getItemRangeInto([I)V
.param p1 # [I
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/UiThread;
.end annotation
.end method
.method public abstract onDataRefresh()V
.annotation build Landroidx/annotation/UiThread;
.end annotation
.end method
.method public abstract onItemLoaded(I)V
.annotation build Landroidx/annotation/UiThread;
.end annotation
.end method

View File

@@ -0,0 +1,559 @@
.class public Landroidx/recyclerview/widget/AsyncListUtil;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;,
Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field static final DEBUG:Z = false
.field static final TAG:Ljava/lang/String; = "AsyncListUtil"
# instance fields
.field mAllowScrollHints:Z
.field private final mBackgroundCallback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
.end field
.field final mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
.end field
.field final mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncListUtil$DataCallback<",
"TT;>;"
}
.end annotation
.end field
.field mDisplayedGeneration:I
.field mItemCount:I
.field private final mMainThreadCallback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
.end field
.field final mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
.end field
.field final mMissingPositions:Landroid/util/SparseIntArray;
.field final mPrevRange:[I
.field mRequestedGeneration:I
.field private mScrollHint:I
.field final mTClass:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"TT;>;"
}
.end annotation
.end field
.field final mTileList:Landroidx/recyclerview/widget/TileList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/TileList<",
"TT;>;"
}
.end annotation
.end field
.field final mTileSize:I
.field final mTmpRange:[I
.field final mTmpRangeExtended:[I
.field final mViewCallback:Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
# direct methods
.method public constructor <init>(Ljava/lang/Class;ILandroidx/recyclerview/widget/AsyncListUtil$DataCallback;Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;)V
.locals 2
.param p1 # Ljava/lang/Class;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p4 # Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"TT;>;I",
"Landroidx/recyclerview/widget/AsyncListUtil$DataCallback<",
"TT;>;",
"Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;",
")V"
}
.end annotation
.line 91
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x2
new-array v1, v0, [I
iput-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
new-array v1, v0, [I
iput-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mPrevRange:[I
new-array v0, v0, [I
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRangeExtended:[I
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
iput v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
iput v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mDisplayedGeneration:I
iput v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
.line 76
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mMissingPositions:Landroid/util/SparseIntArray;
.line 211
new-instance v0, Landroidx/recyclerview/widget/AsyncListUtil$1;
invoke-direct {v0, p0}, Landroidx/recyclerview/widget/AsyncListUtil$1;-><init>(Landroidx/recyclerview/widget/AsyncListUtil;)V
iput-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadCallback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.line 293
new-instance v1, Landroidx/recyclerview/widget/AsyncListUtil$2;
invoke-direct {v1, p0}, Landroidx/recyclerview/widget/AsyncListUtil$2;-><init>(Landroidx/recyclerview/widget/AsyncListUtil;)V
iput-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundCallback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTClass:Ljava/lang/Class;
iput p2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
iput-object p3, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
iput-object p4, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mViewCallback:Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
.line 97
new-instance p1, Landroidx/recyclerview/widget/TileList;
invoke-direct {p1, p2}, Landroidx/recyclerview/widget/TileList;-><init>(I)V
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
.line 99
new-instance p1, Landroidx/recyclerview/widget/MessageThreadUtil;
invoke-direct {p1}, Landroidx/recyclerview/widget/MessageThreadUtil;-><init>()V
.line 100
invoke-interface {p1, v0}, Landroidx/recyclerview/widget/ThreadUtil;->getMainThreadProxy(Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;)Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
move-result-object p2
iput-object p2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.line 101
invoke-interface {p1, v1}, Landroidx/recyclerview/widget/ThreadUtil;->getBackgroundProxy(Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;)Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
move-result-object p1
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.line 103
invoke-virtual {p0}, Landroidx/recyclerview/widget/AsyncListUtil;->refresh()V
return-void
.end method
.method private isRefreshPending()Z
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mDisplayedGeneration:I
if-eq v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
# virtual methods
.method public getItem(I)Ljava/lang/Object;
.locals 3
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)TT;"
}
.end annotation
if-ltz p1, :cond_1
iget v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
if-ge p1, v0, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
.line 158
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/TileList;->getItemAt(I)Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_0
.line 159
invoke-direct {p0}, Landroidx/recyclerview/widget/AsyncListUtil;->isRefreshPending()Z
move-result v1
if-nez v1, :cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mMissingPositions:Landroid/util/SparseIntArray;
const/4 v2, 0x0
.line 160
invoke-virtual {v1, p1, v2}, Landroid/util/SparseIntArray;->put(II)V
:cond_0
return-object v0
.line 156
:cond_1
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, " is not within 0 and "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget p1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getItemCount()I
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
return v0
.end method
.method public varargs log(Ljava/lang/String;[Ljava/lang/Object;)V
.locals 2
.line 79
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "[MAIN] "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1, p2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
return-void
.end method
.method public onRangeChanged()V
.locals 1
.line 119
invoke-direct {p0}, Landroidx/recyclerview/widget/AsyncListUtil;->isRefreshPending()Z
move-result v0
if-eqz v0, :cond_0
return-void
.line 122
:cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/AsyncListUtil;->updateRange()V
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mAllowScrollHints:Z
return-void
.end method
.method public refresh()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mMissingPositions:Landroid/util/SparseIntArray;
.line 133
invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
.line 134
invoke-interface {v0, v1}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->refresh(I)V
return-void
.end method
.method public updateRange()V
.locals 10
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mViewCallback:Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
iget-object v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
.line 179
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;->getItemRangeInto([I)V
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
const/4 v1, 0x0
.line 180
aget v2, v0, v1
const/4 v3, 0x1
aget v4, v0, v3
if-gt v2, v4, :cond_7
if-gez v2, :cond_0
goto :goto_2
:cond_0
iget v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
if-lt v4, v5, :cond_1
return-void
:cond_1
iget-boolean v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mAllowScrollHints:Z
if-nez v5, :cond_2
iput v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
goto :goto_1
:cond_2
iget-object v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mPrevRange:[I
.line 190
aget v6, v5, v3
if-gt v2, v6, :cond_5
aget v5, v5, v1
if-le v5, v4, :cond_3
goto :goto_0
:cond_3
if-ge v2, v5, :cond_4
iput v3, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
goto :goto_1
:cond_4
if-le v2, v5, :cond_6
const/4 v5, 0x2
iput v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
goto :goto_1
:cond_5
:goto_0
iput v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
:cond_6
:goto_1
iget-object v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mPrevRange:[I
.line 199
aput v2, v5, v1
.line 200
aput v4, v5, v3
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mViewCallback:Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
iget-object v4, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRangeExtended:[I
iget v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
.line 202
invoke-virtual {v2, v0, v4, v5}, Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;->extendRangeInto([I[II)V
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRangeExtended:[I
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
.line 203
aget v2, v2, v1
aget v4, v0, v1
invoke-static {v4, v1}, Ljava/lang/Math;->max(II)I
move-result v4
invoke-static {v2, v4}, Ljava/lang/Math;->min(II)I
move-result v2
aput v2, v0, v1
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRangeExtended:[I
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
.line 204
aget v2, v2, v3
aget v4, v0, v3
iget v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
sub-int/2addr v5, v3
.line 205
invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I
move-result v4
invoke-static {v2, v4}, Ljava/lang/Math;->max(II)I
move-result v2
aput v2, v0, v3
iget-object v4, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
.line 207
aget v5, v0, v1
aget v6, v0, v3
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRangeExtended:[I
aget v7, v0, v1
aget v8, v0, v3
iget v9, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
invoke-interface/range {v4 .. v9}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->updateRange(IIIII)V
:cond_7
:goto_2
return-void
.end method

View File

@@ -0,0 +1,294 @@
.class public Landroidx/recyclerview/widget/BatchingListUpdateCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ListUpdateCallback;
# static fields
.field private static final TYPE_ADD:I = 0x1
.field private static final TYPE_CHANGE:I = 0x3
.field private static final TYPE_NONE:I = 0x0
.field private static final TYPE_REMOVE:I = 0x2
# instance fields
.field mLastEventCount:I
.field mLastEventPayload:Ljava/lang/Object;
.field mLastEventPosition:I
.field mLastEventType:I
.field final mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ListUpdateCallback;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/ListUpdateCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 46
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
const/4 v0, -0x1
iput v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iput v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
const/4 v0, 0x0
iput-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPayload:Ljava/lang/Object;
iput-object p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
return-void
.end method
# virtual methods
.method public dispatchLastEvent()V
.locals 4
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
if-nez v0, :cond_0
return-void
:cond_0
const/4 v1, 0x1
if-eq v0, v1, :cond_3
const/4 v1, 0x2
if-eq v0, v1, :cond_2
const/4 v1, 0x3
if-eq v0, v1, :cond_1
goto :goto_0
:cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
iget v1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iget v2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
iget-object v3, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPayload:Ljava/lang/Object;
.line 67
invoke-interface {v0, v1, v2, v3}, Landroidx/recyclerview/widget/ListUpdateCallback;->onChanged(IILjava/lang/Object;)V
goto :goto_0
:cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
iget v1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iget v2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
.line 64
invoke-interface {v0, v1, v2}, Landroidx/recyclerview/widget/ListUpdateCallback;->onRemoved(II)V
goto :goto_0
:cond_3
iget-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
iget v1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iget v2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
.line 61
invoke-interface {v0, v1, v2}, Landroidx/recyclerview/widget/ListUpdateCallback;->onInserted(II)V
:goto_0
const/4 v0, 0x0
iput-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPayload:Ljava/lang/Object;
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
return-void
.end method
.method public onChanged(IILjava/lang/Object;)V
.locals 5
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
const/4 v1, 0x3
if-ne v0, v1, :cond_0
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iget v2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
add-int v3, v0, v2
if-gt p1, v3, :cond_0
add-int v3, p1, p2
if-lt v3, v0, :cond_0
iget-object v4, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPayload:Ljava/lang/Object;
if-ne v4, p3, :cond_0
add-int/2addr v2, v0
.line 115
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
.line 116
invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I
move-result p1
iget p2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
sub-int/2addr p1, p2
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
return-void
.line 119
:cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->dispatchLastEvent()V
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iput p2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
iput-object p3, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPayload:Ljava/lang/Object;
iput v1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
return-void
.end method
.method public onInserted(II)V
.locals 4
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
const/4 v1, 0x1
if-ne v0, v1, :cond_0
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
if-lt p1, v0, :cond_0
iget v2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
add-int v3, v0, v2
if-gt p1, v3, :cond_0
add-int/2addr v2, p2
iput v2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
.line 79
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
return-void
.line 82
:cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->dispatchLastEvent()V
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iput p2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
iput v1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
return-void
.end method
.method public onMoved(II)V
.locals 1
.line 104
invoke-virtual {p0}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->dispatchLastEvent()V
iget-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
.line 105
invoke-interface {v0, p1, p2}, Landroidx/recyclerview/widget/ListUpdateCallback;->onMoved(II)V
return-void
.end method
.method public onRemoved(II)V
.locals 3
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
const/4 v1, 0x2
if-ne v0, v1, :cond_0
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
if-lt v0, p1, :cond_0
add-int v2, p1, p2
if-gt v0, v2, :cond_0
iget v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
add-int/2addr v0, p2
iput v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
return-void
.line 96
:cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->dispatchLastEvent()V
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
iput p2, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventCount:I
iput v1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventType:I
return-void
.end method

View File

@@ -0,0 +1,512 @@
.class Landroidx/recyclerview/widget/ChildHelper$Bucket;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ChildHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Bucket"
.end annotation
# static fields
.field static final BITS_PER_WORD:I = 0x40
.field static final LAST_BIT:J = -0x8000000000000000L
# instance fields
.field mData:J
.field mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
# direct methods
.method public constructor <init>()V
.locals 2
.line 395
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-wide/16 v0, 0x0
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
return-void
.end method
.method private ensureNext()V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-nez v0, :cond_0
.line 416
new-instance v0, Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-direct {v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
:cond_0
return-void
.end method
# virtual methods
.method public clear(I)V
.locals 4
const/16 v0, 0x40
if-lt p1, v0, :cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-eqz v1, :cond_1
sub-int/2addr p1, v0
.line 423
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->clear(I)V
goto :goto_0
:cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
const-wide/16 v2, 0x1
shl-long/2addr v2, p1
not-long v2, v2
and-long/2addr v0, v2
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
:cond_1
:goto_0
return-void
.end method
.method public countOnesBefore(I)I
.locals 6
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
const/16 v1, 0x40
const-wide/16 v2, 0x1
if-nez v0, :cond_1
if-lt p1, v1, :cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
.line 495
invoke-static {v0, v1}, Ljava/lang/Long;->bitCount(J)I
move-result p1
return p1
:cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
shl-long v4, v2, p1
sub-long/2addr v4, v2
and-long/2addr v0, v4
.line 497
invoke-static {v0, v1}, Ljava/lang/Long;->bitCount(J)I
move-result p1
return p1
:cond_1
if-ge p1, v1, :cond_2
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
shl-long v4, v2, p1
sub-long/2addr v4, v2
and-long/2addr v0, v4
.line 500
invoke-static {v0, v1}, Ljava/lang/Long;->bitCount(J)I
move-result p1
return p1
:cond_2
sub-int/2addr p1, v1
.line 502
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->countOnesBefore(I)I
move-result p1
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
invoke-static {v0, v1}, Ljava/lang/Long;->bitCount(J)I
move-result v0
add-int/2addr p1, v0
return p1
.end method
.method public get(I)Z
.locals 4
const/16 v0, 0x40
if-lt p1, v0, :cond_0
.line 433
invoke-direct {p0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->ensureNext()V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
sub-int/2addr p1, v0
.line 434
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result p1
return p1
:cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
const-wide/16 v2, 0x1
shl-long/2addr v2, p1
and-long/2addr v0, v2
const-wide/16 v2, 0x0
cmp-long p1, v0, v2
if-eqz p1, :cond_1
const/4 p1, 0x1
goto :goto_0
:cond_1
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public insert(IZ)V
.locals 9
const/16 v0, 0x40
if-lt p1, v0, :cond_0
.line 449
invoke-direct {p0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->ensureNext()V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
sub-int/2addr p1, v0
.line 450
invoke-virtual {v1, p1, p2}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
goto :goto_2
:cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
const-wide/high16 v2, -0x8000000000000000L
and-long/2addr v2, v0
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
const/4 v3, 0x0
const/4 v4, 0x1
if-eqz v2, :cond_1
move v2, v4
goto :goto_0
:cond_1
move v2, v3
:goto_0
const-wide/16 v5, 0x1
shl-long v7, v5, p1
sub-long/2addr v7, v5
and-long v5, v0, v7
not-long v7, v7
and-long/2addr v0, v7
shl-long/2addr v0, v4
or-long/2addr v0, v5
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
if-eqz p2, :cond_2
.line 458
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
goto :goto_1
.line 460
:cond_2
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->clear(I)V
:goto_1
if-nez v2, :cond_3
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-eqz p1, :cond_4
.line 463
:cond_3
invoke-direct {p0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->ensureNext()V
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 464
invoke-virtual {p1, v3, v2}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
:cond_4
:goto_2
return-void
.end method
.method public remove(I)Z
.locals 10
const/16 v0, 0x40
if-lt p1, v0, :cond_0
.line 471
invoke-direct {p0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->ensureNext()V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
sub-int/2addr p1, v0
.line 472
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
move-result p1
return p1
:cond_0
const-wide/16 v0, 0x1
shl-long v2, v0, p1
iget-wide v4, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
and-long v6, v4, v2
const-wide/16 v8, 0x0
cmp-long p1, v6, v8
const/4 v6, 0x1
const/4 v7, 0x0
if-eqz p1, :cond_1
move p1, v6
goto :goto_0
:cond_1
move p1, v7
:goto_0
not-long v8, v2
and-long/2addr v4, v8
iput-wide v4, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
sub-long/2addr v2, v0
and-long v0, v4, v2
not-long v2, v2
and-long/2addr v2, v4
.line 480
invoke-static {v2, v3, v6}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v2
or-long/2addr v0, v2
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-eqz v0, :cond_3
.line 483
invoke-virtual {v0, v7}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result v0
if-eqz v0, :cond_2
const/16 v0, 0x3f
.line 484
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
:cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 486
invoke-virtual {v0, v7}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
:cond_3
return p1
.end method
.method public reset()V
.locals 2
const-wide/16 v0, 0x0
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-eqz v0, :cond_0
.line 443
invoke-virtual {v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->reset()V
:cond_0
return-void
.end method
.method public set(I)V
.locals 4
const/16 v0, 0x40
if-lt p1, v0, :cond_0
.line 407
invoke-direct {p0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->ensureNext()V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
sub-int/2addr p1, v0
.line 408
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
goto :goto_0
:cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
const-wide/16 v2, 0x1
shl-long/2addr v2, p1
or-long/2addr v0, v2
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
:goto_0
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-nez v0, :cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
.line 508
invoke-static {v0, v1}, Ljava/lang/Long;->toBinaryString(J)Ljava/lang/String;
move-result-object v0
goto :goto_0
.line 509
:cond_0
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-virtual {v1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "xx"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
invoke-static {v1, v2}, Ljava/lang/Long;->toBinaryString(J)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:goto_0
return-object v0
.end method

View File

@@ -0,0 +1,49 @@
.class interface abstract Landroidx/recyclerview/widget/ChildHelper$Callback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ChildHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Callback"
.end annotation
# virtual methods
.method public abstract addView(Landroid/view/View;I)V
.end method
.method public abstract attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
.end method
.method public abstract detachViewFromParent(I)V
.end method
.method public abstract getChildAt(I)Landroid/view/View;
.end method
.method public abstract getChildCount()I
.end method
.method public abstract getChildViewHolder(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.end method
.method public abstract indexOfChild(Landroid/view/View;)I
.end method
.method public abstract onEnteredHiddenState(Landroid/view/View;)V
.end method
.method public abstract onLeftHiddenState(Landroid/view/View;)V
.end method
.method public abstract removeAllViews()V
.end method
.method public abstract removeViewAt(I)V
.end method

View File

@@ -0,0 +1,799 @@
.class Landroidx/recyclerview/widget/ChildHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/ChildHelper$Callback;,
Landroidx/recyclerview/widget/ChildHelper$Bucket;
}
.end annotation
# static fields
.field private static final DEBUG:Z = false
.field private static final TAG:Ljava/lang/String; = "ChildrenHelper"
# instance fields
.field final mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.field final mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.field final mHiddenViews:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroid/view/View;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ChildHelper$Callback;)V
.locals 0
.line 48
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 50
new-instance p1, Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-direct {p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 51
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
return-void
.end method
.method private getOffset(I)I
.locals 4
const/4 v0, -0x1
if-gez p1, :cond_0
return v0
:cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 117
invoke-interface {v1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result v1
move v2, p1
:goto_0
if-ge v2, v1, :cond_3
iget-object v3, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 120
invoke-virtual {v3, v2}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->countOnesBefore(I)I
move-result v3
sub-int v3, v2, v3
sub-int v3, p1, v3
if-nez v3, :cond_2
:goto_1
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 123
invoke-virtual {p1, v2}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result p1
if-eqz p1, :cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_1
return v2
:cond_2
add-int/2addr v2, v3
goto :goto_0
:cond_3
return v0
.end method
.method private hideViewInternal(Landroid/view/View;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 60
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 61
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->onEnteredHiddenState(Landroid/view/View;)V
return-void
.end method
.method private unhideViewInternal(Landroid/view/View;)Z
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 70
invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 71
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->onLeftHiddenState(Landroid/view/View;)V
const/4 p1, 0x1
return p1
:cond_0
const/4 p1, 0x0
return p1
.end method
# virtual methods
.method public addView(Landroid/view/View;IZ)V
.locals 1
if-gez p2, :cond_0
iget-object p2, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 99
invoke-interface {p2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result p2
goto :goto_0
.line 101
:cond_0
invoke-direct {p0, p2}, Landroidx/recyclerview/widget/ChildHelper;->getOffset(I)I
move-result p2
:goto_0
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 103
invoke-virtual {v0, p2, p3}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
if-eqz p3, :cond_1
.line 105
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->hideViewInternal(Landroid/view/View;)V
:cond_1
iget-object p3, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 107
invoke-interface {p3, p1, p2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->addView(Landroid/view/View;I)V
return-void
.end method
.method public addView(Landroid/view/View;Z)V
.locals 1
const/4 v0, -0x1
.line 85
invoke-virtual {p0, p1, v0, p2}, Landroidx/recyclerview/widget/ChildHelper;->addView(Landroid/view/View;IZ)V
return-void
.end method
.method public attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V
.locals 1
if-gez p2, :cond_0
iget-object p2, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 231
invoke-interface {p2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result p2
goto :goto_0
.line 233
:cond_0
invoke-direct {p0, p2}, Landroidx/recyclerview/widget/ChildHelper;->getOffset(I)I
move-result p2
:goto_0
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 235
invoke-virtual {v0, p2, p4}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
if-eqz p4, :cond_1
.line 237
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->hideViewInternal(Landroid/view/View;)V
:cond_1
iget-object p4, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 239
invoke-interface {p4, p1, p2, p3}, Landroidx/recyclerview/widget/ChildHelper$Callback;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
return-void
.end method
.method public detachViewFromParent(I)V
.locals 1
.line 282
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->getOffset(I)I
move-result p1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 283
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 284
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->detachViewFromParent(I)V
return-void
.end method
.method public findHiddenNonRemovedView(I)Landroid/view/View;
.locals 5
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 206
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_1
iget-object v2, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 208
invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/view/View;
iget-object v3, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 209
invoke-interface {v3, v2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildViewHolder(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v3
.line 210
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getLayoutPosition()I
move-result v4
if-ne v4, p1, :cond_0
.line 211
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v4
if-nez v4, :cond_0
.line 212
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isRemoved()Z
move-result v3
if-nez v3, :cond_0
return-object v2
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
const/4 p1, 0x0
return-object p1
.end method
.method public getChildAt(I)Landroid/view/View;
.locals 1
.line 180
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->getOffset(I)I
move-result p1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 181
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildAt(I)Landroid/view/View;
move-result-object p1
return-object p1
.end method
.method public getChildCount()I
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 253
invoke-interface {v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result v0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
sub-int/2addr v0, v1
return v0
.end method
.method public getUnfilteredChildAt(I)Landroid/view/View;
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 273
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildAt(I)Landroid/view/View;
move-result-object p1
return-object p1
.end method
.method public getUnfilteredChildCount()I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 263
invoke-interface {v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result v0
return v0
.end method
.method public hide(Landroid/view/View;)V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 328
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->indexOfChild(Landroid/view/View;)I
move-result v0
if-ltz v0, :cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 335
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
.line 336
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->hideViewInternal(Landroid/view/View;)V
return-void
.line 330
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "view is not a child, cannot hide "
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;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public indexOfChild(Landroid/view/View;)I
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 297
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->indexOfChild(Landroid/view/View;)I
move-result p1
const/4 v0, -0x1
if-ne p1, v0, :cond_0
return v0
:cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 301
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result v1
if-eqz v1, :cond_1
return v0
:cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 309
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->countOnesBefore(I)I
move-result v0
sub-int/2addr p1, v0
return p1
.end method
.method public isHidden(Landroid/view/View;)Z
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 319
invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method public removeAllViewsUnfiltered()V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 188
invoke-virtual {v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->reset()V
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 189
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
:goto_0
if-ltz v0, :cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
iget-object v2, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 190
invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroid/view/View;
invoke-interface {v1, v2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->onLeftHiddenState(Landroid/view/View;)V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
.line 191
invoke-interface {v1, v0}, Ljava/util/List;->remove(I)Ljava/lang/Object;
add-int/lit8 v0, v0, -0x1
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 193
invoke-interface {v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->removeAllViews()V
return-void
.end method
.method public removeView(Landroid/view/View;)V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 140
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->indexOfChild(Landroid/view/View;)I
move-result v0
if-gez v0, :cond_0
return-void
:cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 144
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
move-result v1
if-eqz v1, :cond_1
.line 145
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
:cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 147
invoke-interface {p1, v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->removeViewAt(I)V
return-void
.end method
.method public removeViewAt(I)V
.locals 2
.line 160
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->getOffset(I)I
move-result p1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 161
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildAt(I)Landroid/view/View;
move-result-object v0
if-nez v0, :cond_0
return-void
:cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 165
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
move-result v1
if-eqz v1, :cond_1
.line 166
invoke-direct {p0, v0}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
:cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 168
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->removeViewAt(I)V
return-void
.end method
.method public removeViewIfHidden(Landroid/view/View;)Z
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 373
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->indexOfChild(Landroid/view/View;)I
move-result v0
const/4 v1, -0x1
const/4 v2, 0x1
if-ne v0, v1, :cond_0
.line 375
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
return v2
:cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 380
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result v1
if-eqz v1, :cond_1
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 381
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
.line 382
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 386
invoke-interface {p1, v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->removeViewAt(I)V
return v2
:cond_1
const/4 p1, 0x0
return p1
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 363
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-virtual {v1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ", hidden list:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public unhide(Landroid/view/View;)V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.line 350
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ChildHelper$Callback;->indexOfChild(Landroid/view/View;)I
move-result v0
if-ltz v0, :cond_1
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 354
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result v1
if-eqz v1, :cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.line 357
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->clear(I)V
.line 358
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
return-void
.line 355
:cond_0
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "trying to unhide a view that was not hidden"
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;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 352
:cond_1
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "view is not a child, cannot hide "
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;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method

View File

@@ -0,0 +1,86 @@
.class public final Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ConcatAdapter$Config;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Builder"
.end annotation
# instance fields
.field private mIsolateViewTypes:Z
.field private mStableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
# direct methods
.method public constructor <init>()V
.locals 2
.line 410
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 411
sget-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->DEFAULT:Landroidx/recyclerview/widget/ConcatAdapter$Config;
iget-boolean v1, v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->isolateViewTypes:Z
iput-boolean v1, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;->mIsolateViewTypes:Z
.line 412
iget-object v0, v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->stableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
iput-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;->mStableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
return-void
.end method
# virtual methods
.method public build()Landroidx/recyclerview/widget/ConcatAdapter$Config;
.locals 3
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 454
new-instance v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;
iget-boolean v1, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;->mIsolateViewTypes:Z
iget-object v2, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;->mStableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
invoke-direct {v0, v1, v2}, Landroidx/recyclerview/widget/ConcatAdapter$Config;-><init>(ZLandroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;)V
return-object v0
.end method
.method public setIsolateViewTypes(Z)Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;
.locals 0
.annotation build Landroidx/annotation/NonNull;
.end annotation
iput-boolean p1, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;->mIsolateViewTypes:Z
return-object p0
.end method
.method public setStableIdMode(Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;)Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;
.locals 0
.param p1 # Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
iput-object p1, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;->mStableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
return-object p0
.end method

View File

@@ -0,0 +1,123 @@
.class public final enum Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.super Ljava/lang/Enum;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ConcatAdapter$Config;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4019
name = "StableIdMode"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Enum<",
"Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;",
">;"
}
.end annotation
# static fields
.field private static final synthetic $VALUES:[Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.field public static final enum ISOLATED_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.field public static final enum NO_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.field public static final enum SHARED_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
# direct methods
.method static constructor <clinit>()V
.locals 5
.line 379
new-instance v0, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
const-string v1, "NO_STABLE_IDS"
const/4 v2, 0x0
invoke-direct {v0, v1, v2}, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;-><init>(Ljava/lang/String;I)V
sput-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->NO_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.line 393
new-instance v1, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
const-string v2, "ISOLATED_STABLE_IDS"
const/4 v3, 0x1
invoke-direct {v1, v2, v3}, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;-><init>(Ljava/lang/String;I)V
sput-object v1, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->ISOLATED_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.line 404
new-instance v2, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
const-string v3, "SHARED_STABLE_IDS"
const/4 v4, 0x2
invoke-direct {v2, v3, v4}, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;-><init>(Ljava/lang/String;I)V
sput-object v2, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->SHARED_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
filled-new-array {v0, v1, v2}, [Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
move-result-object v0
sput-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->$VALUES:[Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
return-void
.end method
.method private constructor <init>(Ljava/lang/String;I)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.line 372
invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
return-void
.end method
.method public static valueOf(Ljava/lang/String;)Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.locals 1
const-class v0, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.line 372
invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
move-result-object p0
check-cast p0, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
return-object p0
.end method
.method public static values()[Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.locals 1
sget-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->$VALUES:[Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.line 372
invoke-virtual {v0}, [Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
return-object v0
.end method

View File

@@ -0,0 +1,73 @@
.class public final Landroidx/recyclerview/widget/ConcatAdapter$Config;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ConcatAdapter;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Config"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/ConcatAdapter$Config$Builder;,
Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
}
.end annotation
# static fields
.field public static final DEFAULT:Landroidx/recyclerview/widget/ConcatAdapter$Config;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
# instance fields
.field public final isolateViewTypes:Z
.field public final stableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.locals 3
.line 362
new-instance v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;
const/4 v1, 0x1
sget-object v2, Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;->NO_STABLE_IDS:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
invoke-direct {v0, v1, v2}, Landroidx/recyclerview/widget/ConcatAdapter$Config;-><init>(ZLandroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;)V
sput-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->DEFAULT:Landroidx/recyclerview/widget/ConcatAdapter$Config;
return-void
.end method
.method public constructor <init>(ZLandroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;)V
.locals 0
.param p2 # Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 364
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean p1, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->isolateViewTypes:Z
iput-object p2, p0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->stableIdMode:Landroidx/recyclerview/widget/ConcatAdapter$Config$StableIdMode;
return-void
.end method

View File

@@ -0,0 +1,537 @@
.class public final Landroidx/recyclerview/widget/ConcatAdapter;
.super Landroidx/recyclerview/widget/RecyclerView$Adapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/ConcatAdapter$Config;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
# static fields
.field static final TAG:Ljava/lang/String; = "ConcatAdapter"
# instance fields
.field private final mController:Landroidx/recyclerview/widget/ConcatAdapterController;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ConcatAdapter$Config;Ljava/util/List;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/ConcatAdapter$Config;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/ConcatAdapter$Config;",
"Ljava/util/List<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;>;)V"
}
.end annotation
.line 125
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
.line 126
new-instance v0, Landroidx/recyclerview/widget/ConcatAdapterController;
invoke-direct {v0, p0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;-><init>(Landroidx/recyclerview/widget/ConcatAdapter;Landroidx/recyclerview/widget/ConcatAdapter$Config;)V
iput-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 127
invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_0
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result p2
if-eqz p2, :cond_0
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p2
check-cast p2, Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 128
invoke-virtual {p0, p2}, Landroidx/recyclerview/widget/ConcatAdapter;->addAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)Z
goto :goto_0
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 131
invoke-virtual {p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->hasStableIds()Z
move-result p1
invoke-super {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->setHasStableIds(Z)V
return-void
.end method
.method public varargs constructor <init>(Landroidx/recyclerview/widget/ConcatAdapter$Config;[Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
.locals 0
.param p1 # Landroidx/recyclerview/widget/ConcatAdapter$Config;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # [Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/ConcatAdapter$Config;",
"[",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;)V"
}
.end annotation
.annotation runtime Ljava/lang/SafeVarargs;
.end annotation
.line 103
invoke-static {p2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p2
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/ConcatAdapter;-><init>(Landroidx/recyclerview/widget/ConcatAdapter$Config;Ljava/util/List;)V
return-void
.end method
.method public constructor <init>(Ljava/util/List;)V
.locals 1
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;>;)V"
}
.end annotation
.line 113
sget-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->DEFAULT:Landroidx/recyclerview/widget/ConcatAdapter$Config;
invoke-direct {p0, v0, p1}, Landroidx/recyclerview/widget/ConcatAdapter;-><init>(Landroidx/recyclerview/widget/ConcatAdapter$Config;Ljava/util/List;)V
return-void
.end method
.method public varargs constructor <init>([Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
.locals 1
.param p1 # [Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;)V"
}
.end annotation
.annotation runtime Ljava/lang/SafeVarargs;
.end annotation
.line 89
sget-object v0, Landroidx/recyclerview/widget/ConcatAdapter$Config;->DEFAULT:Landroidx/recyclerview/widget/ConcatAdapter$Config;
invoke-direct {p0, v0, p1}, Landroidx/recyclerview/widget/ConcatAdapter;-><init>(Landroidx/recyclerview/widget/ConcatAdapter$Config;[Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
return-void
.end method
# virtual methods
.method public addAdapter(ILandroidx/recyclerview/widget/RecyclerView$Adapter;)Z
.locals 1
.param p2 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;)Z"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 161
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/ConcatAdapterController;->addAdapter(ILandroidx/recyclerview/widget/RecyclerView$Adapter;)Z
move-result p1
return p1
.end method
.method public addAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)Z
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;)Z"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 145
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->addAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)Z
move-result p1
return p1
.end method
.method public findRelativeAdapterPositionIn(Landroidx/recyclerview/widget/RecyclerView$Adapter;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)I
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
"I)I"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 302
invoke-virtual {v0, p1, p2, p3}, Landroidx/recyclerview/widget/ConcatAdapterController;->getLocalAdapterPosition(Landroidx/recyclerview/widget/RecyclerView$Adapter;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)I
move-result p1
return p1
.end method
.method public getAdapters()Ljava/util/List;
.locals 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;>;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 280
invoke-virtual {v0}, Landroidx/recyclerview/widget/ConcatAdapterController;->getCopyOfAdapters()Ljava/util/List;
move-result-object v0
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public getItemCount()I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 238
invoke-virtual {v0}, Landroidx/recyclerview/widget/ConcatAdapterController;->getTotalCount()I
move-result v0
return v0
.end method
.method public getItemId(I)J
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 226
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->getItemId(I)J
move-result-wide v0
return-wide v0
.end method
.method public getItemViewType(I)I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 177
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->getItemViewType(I)I
move-result p1
return p1
.end method
.method public internalSetStateRestorationPolicy(Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;)V
.locals 0
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 233
invoke-super {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->setStateRestorationPolicy(Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;)V
return-void
.end method
.method public onAttachedToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 263
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->onAttachedToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
return-void
.end method
.method public onBindViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 188
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/ConcatAdapterController;->onBindViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
return-void
.end method
.method public onCreateViewHolder(Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.locals 1
.param p1 # Landroid/view/ViewGroup;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 183
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/ConcatAdapterController;->onCreateViewHolder(Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object p1
return-object p1
.end method
.method public onDetachedFromRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 268
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->onDetachedFromRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
return-void
.end method
.method public onFailedToRecycleView(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 243
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->onFailedToRecycleView(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
move-result p1
return p1
.end method
.method public onViewAttachedToWindow(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 248
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->onViewAttachedToWindow(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method
.method public onViewDetachedFromWindow(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 253
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->onViewDetachedFromWindow(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method
.method public onViewRecycled(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 258
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->onViewRecycled(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method
.method public removeAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)Z
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"+",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;)Z"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ConcatAdapter;->mController:Landroidx/recyclerview/widget/ConcatAdapterController;
.line 172
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ConcatAdapterController;->removeAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)Z
move-result p1
return p1
.end method
.method public setHasStableIds(Z)V
.locals 1
.line 200
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string v0, "Calling setHasStableIds is not allowed on the ConcatAdapter. Use the Config object passed in the constructor to control this behavior"
invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public setStateRestorationPolicy(Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 219
new-instance p1, Ljava/lang/UnsupportedOperationException;
const-string v0, "Calling setStateRestorationPolicy is not allowed on the ConcatAdapter. This value is inferred from added adapters"
invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw p1
.end method

View File

@@ -0,0 +1,33 @@
.class Landroidx/recyclerview/widget/ConcatAdapterController$WrapperAndLocalPosition;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ConcatAdapterController;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "WrapperAndLocalPosition"
.end annotation
# instance fields
.field mInUse:Z
.field mLocalPosition:I
.field mWrapper:Landroidx/recyclerview/widget/NestedAdapterWrapper;
# direct methods
.method public constructor <init>()V
.locals 0
.line 513
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,98 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->runPendingAnimations()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$moves:Ljava/util/ArrayList;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Ljava/util/ArrayList;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->val$moves:Ljava/util/ArrayList;
.line 121
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 8
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->val$moves:Ljava/util/ArrayList;
.line 124
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;
iget-object v2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 125
iget-object v3, v1, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget v4, v1, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->fromX:I
iget v5, v1, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->fromY:I
iget v6, v1, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->toX:I
iget v7, v1, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->toY:I
invoke-virtual/range {v2 .. v7}, Landroidx/recyclerview/widget/DefaultItemAnimator;->animateMoveImpl(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIII)V
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->val$moves:Ljava/util/ArrayList;
.line 128
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 129
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator;->mMovesList:Ljava/util/ArrayList;
iget-object v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->val$moves:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
return-void
.end method

View File

@@ -0,0 +1,88 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->runPendingAnimations()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$changes:Ljava/util/ArrayList;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Ljava/util/ArrayList;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->val$changes:Ljava/util/ArrayList;
.line 145
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->val$changes:Ljava/util/ArrayList;
.line 148
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
iget-object v2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 149
invoke-virtual {v2, v1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->animateChangeImpl(Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;)V
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->val$changes:Ljava/util/ArrayList;
.line 151
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 152
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator;->mChangesList:Ljava/util/ArrayList;
iget-object v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->val$changes:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
return-void
.end method

View File

@@ -0,0 +1,88 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$3;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->runPendingAnimations()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$additions:Ljava/util/ArrayList;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Ljava/util/ArrayList;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->val$additions:Ljava/util/ArrayList;
.line 168
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->val$additions:Ljava/util/ArrayList;
.line 171
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 172
invoke-virtual {v2, v1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->animateAddImpl(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->val$additions:Ljava/util/ArrayList;
.line 174
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 175
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator;->mAdditionsList:Ljava/util/ArrayList;
iget-object v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->val$additions:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
return-void
.end method

View File

@@ -0,0 +1,99 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$4;
.super Landroid/animation/AnimatorListenerAdapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->animateRemoveImpl(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$animation:Landroid/view/ViewPropertyAnimator;
.field final synthetic val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field final synthetic val$view:Landroid/view/View;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroid/view/ViewPropertyAnimator;Landroid/view/View;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iput-object p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$animation:Landroid/view/ViewPropertyAnimator;
iput-object p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$view:Landroid/view/View;
.line 203
invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$animation:Landroid/view/ViewPropertyAnimator;
const/4 v0, 0x0
.line 211
invoke-virtual {p1, v0}, Landroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$view:Landroid/view/View;
const/high16 v0, 0x3f800000 # 1.0f
.line 212
invoke-virtual {p1, v0}, Landroid/view/View;->setAlpha(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 213
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchRemoveFinished(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 214
iget-object p1, p1, Landroidx/recyclerview/widget/DefaultItemAnimator;->mRemoveAnimations:Ljava/util/ArrayList;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 215
invoke-virtual {p1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->dispatchFinishedWhenDone()V
return-void
.end method
.method public onAnimationStart(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$4;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 206
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchRemoveStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method

View File

@@ -0,0 +1,105 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$5;
.super Landroid/animation/AnimatorListenerAdapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->animateAddImpl(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$animation:Landroid/view/ViewPropertyAnimator;
.field final synthetic val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field final synthetic val$view:Landroid/view/View;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroid/view/View;Landroid/view/ViewPropertyAnimator;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iput-object p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$view:Landroid/view/View;
iput-object p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$animation:Landroid/view/ViewPropertyAnimator;
.line 233
invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationCancel(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$view:Landroid/view/View;
const/high16 v0, 0x3f800000 # 1.0f
.line 241
invoke-virtual {p1, v0}, Landroid/view/View;->setAlpha(F)V
return-void
.end method
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$animation:Landroid/view/ViewPropertyAnimator;
const/4 v0, 0x0
.line 246
invoke-virtual {p1, v0}, Landroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 247
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchAddFinished(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 248
iget-object p1, p1, Landroidx/recyclerview/widget/DefaultItemAnimator;->mAddAnimations:Ljava/util/ArrayList;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 249
invoke-virtual {p1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->dispatchFinishedWhenDone()V
return-void
.end method
.method public onAnimationStart(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$5;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 236
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchAddStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method

View File

@@ -0,0 +1,128 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$6;
.super Landroid/animation/AnimatorListenerAdapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->animateMoveImpl(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIII)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$animation:Landroid/view/ViewPropertyAnimator;
.field final synthetic val$deltaX:I
.field final synthetic val$deltaY:I
.field final synthetic val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field final synthetic val$view:Landroid/view/View;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;ILandroid/view/View;ILandroid/view/ViewPropertyAnimator;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iput p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$deltaX:I
iput-object p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$view:Landroid/view/View;
iput p5, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$deltaY:I
iput-object p6, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$animation:Landroid/view/ViewPropertyAnimator;
.line 292
invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationCancel(Landroid/animation/Animator;)V
.locals 1
iget p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$deltaX:I
const/4 v0, 0x0
if-eqz p1, :cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$view:Landroid/view/View;
.line 301
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
:cond_0
iget p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$deltaY:I
if-eqz p1, :cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$view:Landroid/view/View;
.line 304
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationY(F)V
:cond_1
return-void
.end method
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$animation:Landroid/view/ViewPropertyAnimator;
const/4 v0, 0x0
.line 310
invoke-virtual {p1, v0}, Landroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 311
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchMoveFinished(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 312
iget-object p1, p1, Landroidx/recyclerview/widget/DefaultItemAnimator;->mMoveAnimations:Ljava/util/ArrayList;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 313
invoke-virtual {p1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->dispatchFinishedWhenDone()V
return-void
.end method
.method public onAnimationStart(Landroid/animation/Animator;)V
.locals 1
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$6;->val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 295
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchMoveStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method

View File

@@ -0,0 +1,121 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$7;
.super Landroid/animation/AnimatorListenerAdapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->animateChangeImpl(Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.field final synthetic val$oldViewAnim:Landroid/view/ViewPropertyAnimator;
.field final synthetic val$view:Landroid/view/View;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;Landroid/view/ViewPropertyAnimator;Landroid/view/View;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
iput-object p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$oldViewAnim:Landroid/view/ViewPropertyAnimator;
iput-object p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$view:Landroid/view/View;
.line 358
invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 2
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$oldViewAnim:Landroid/view/ViewPropertyAnimator;
const/4 v0, 0x0
.line 366
invoke-virtual {p1, v0}, Landroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$view:Landroid/view/View;
const/high16 v0, 0x3f800000 # 1.0f
.line 367
invoke-virtual {p1, v0}, Landroid/view/View;->setAlpha(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$view:Landroid/view/View;
const/4 v0, 0x0
.line 368
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$view:Landroid/view/View;
.line 369
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationY(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.line 370
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->oldHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x1
invoke-virtual {p1, v0, v1}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchChangeFinished(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 371
iget-object p1, p1, Landroidx/recyclerview/widget/DefaultItemAnimator;->mChangeAnimations:Ljava/util/ArrayList;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->oldHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 372
invoke-virtual {p1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->dispatchFinishedWhenDone()V
return-void
.end method
.method public onAnimationStart(Landroid/animation/Animator;)V
.locals 2
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.line 361
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->oldHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x1
invoke-virtual {p1, v0, v1}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchChangeStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
return-void
.end method

View File

@@ -0,0 +1,121 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$8;
.super Landroid/animation/AnimatorListenerAdapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;->animateChangeImpl(Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field final synthetic val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.field final synthetic val$newView:Landroid/view/View;
.field final synthetic val$newViewAnimation:Landroid/view/ViewPropertyAnimator;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DefaultItemAnimator;Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;Landroid/view/ViewPropertyAnimator;Landroid/view/View;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
iput-object p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newViewAnimation:Landroid/view/ViewPropertyAnimator;
iput-object p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newView:Landroid/view/View;
.line 380
invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 2
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newViewAnimation:Landroid/view/ViewPropertyAnimator;
const/4 v0, 0x0
.line 387
invoke-virtual {p1, v0}, Landroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newView:Landroid/view/View;
const/high16 v0, 0x3f800000 # 1.0f
.line 388
invoke-virtual {p1, v0}, Landroid/view/View;->setAlpha(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newView:Landroid/view/View;
const/4 v0, 0x0
.line 389
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newView:Landroid/view/View;
.line 390
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationY(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.line 391
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->newHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchChangeFinished(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 392
iget-object p1, p1, Landroidx/recyclerview/widget/DefaultItemAnimator;->mChangeAnimations:Ljava/util/ArrayList;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->newHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.line 393
invoke-virtual {p1}, Landroidx/recyclerview/widget/DefaultItemAnimator;->dispatchFinishedWhenDone()V
return-void
.end method
.method public onAnimationStart(Landroid/animation/Animator;)V
.locals 2
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.line 383
iget-object v0, v0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->newHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchChangeStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
return-void
.end method

View File

@@ -0,0 +1,129 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ChangeInfo"
.end annotation
# instance fields
.field public fromX:I
.field public fromY:I
.field public newHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public oldHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public toX:I
.field public toY:I
# direct methods
.method private constructor <init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.locals 0
.line 73
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->oldHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iput-object p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->newHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIII)V
.locals 0
.line 80
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;-><init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
iput p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->fromX:I
iput p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->fromY:I
iput p5, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->toX:I
iput p6, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->toY:I
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 2
.line 89
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "ChangeInfo{oldHolder="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->oldHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", newHolder="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->newHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", fromX="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->fromX:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", fromY="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->fromY:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", toX="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->toX:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", toY="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;->toY:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,47 @@
.class Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DefaultItemAnimator;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "MoveInfo"
.end annotation
# instance fields
.field public fromX:I
.field public fromY:I
.field public holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public toX:I
.field public toY:I
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIII)V
.locals 0
.line 61
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iput p2, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->fromX:I
iput p3, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->fromY:I
iput p4, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->toX:I
iput p5, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;->toY:I
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,67 @@
.class Landroidx/recyclerview/widget/DiffUtil$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/util/Comparator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/Comparator<",
"Landroidx/recyclerview/widget/DiffUtil$Diagonal;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 87
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public compare(Landroidx/recyclerview/widget/DiffUtil$Diagonal;Landroidx/recyclerview/widget/DiffUtil$Diagonal;)I
.locals 0
.line 90
iget p1, p1, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
iget p2, p2, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
sub-int/2addr p1, p2
return p1
.end method
.method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I
.locals 0
.line 87
check-cast p1, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
check-cast p2, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/DiffUtil$1;->compare(Landroidx/recyclerview/widget/DiffUtil$Diagonal;Landroidx/recyclerview/widget/DiffUtil$Diagonal;)I
move-result p1
return p1
.end method

View File

@@ -0,0 +1,49 @@
.class public abstract Landroidx/recyclerview/widget/DiffUtil$Callback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "Callback"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 332
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abstract areContentsTheSame(II)Z
.end method
.method public abstract areItemsTheSame(II)Z
.end method
.method public getChangePayload(II)Ljava/lang/Object;
.locals 0
.annotation build Landroidx/annotation/Nullable;
.end annotation
const/4 p1, 0x0
return-object p1
.end method
.method public abstract getNewListSize()I
.end method
.method public abstract getOldListSize()I
.end method

View File

@@ -0,0 +1,94 @@
.class Landroidx/recyclerview/widget/DiffUtil$CenteredArray;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "CenteredArray"
.end annotation
# instance fields
.field private final mData:[I
.field private final mMid:I
# direct methods
.method public constructor <init>(I)V
.locals 0
.line 1037
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 1038
new-array p1, p1, [I
iput-object p1, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mData:[I
array-length p1, p1
.line 1039
div-int/lit8 p1, p1, 0x2
iput p1, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mMid:I
return-void
.end method
# virtual methods
.method public backingData()[I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mData:[I
return-object v0
.end method
.method public fill(I)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mData:[I
.line 1055
invoke-static {v0, p1}, Ljava/util/Arrays;->fill([II)V
return-void
.end method
.method public get(I)I
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mData:[I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mMid:I
add-int/2addr p1, v1
.line 1043
aget p1, v0, p1
return p1
.end method
.method public set(II)V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mData:[I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->mMid:I
add-int/2addr p1, v1
.line 1051
aput p2, v0, p1
return-void
.end method

View File

@@ -0,0 +1,65 @@
.class Landroidx/recyclerview/widget/DiffUtil$Diagonal;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Diagonal"
.end annotation
# instance fields
.field public final size:I
.field public final x:I
.field public final y:I
# direct methods
.method public constructor <init>(III)V
.locals 0
.line 481
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
iput p2, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
iput p3, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->size:I
return-void
.end method
# virtual methods
.method public endX()I
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->size:I
add-int/2addr v0, v1
return v0
.end method
.method public endY()I
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->size:I
add-int/2addr v0, v1
return v0
.end method

View File

@@ -0,0 +1,948 @@
.class public Landroidx/recyclerview/widget/DiffUtil$DiffResult;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "DiffResult"
.end annotation
# static fields
.field private static final FLAG_CHANGED:I = 0x2
.field private static final FLAG_MASK:I = 0xf
.field private static final FLAG_MOVED:I = 0xc
.field private static final FLAG_MOVED_CHANGED:I = 0x4
.field private static final FLAG_MOVED_NOT_CHANGED:I = 0x8
.field private static final FLAG_NOT_CHANGED:I = 0x1
.field private static final FLAG_OFFSET:I = 0x4
.field public static final NO_POSITION:I = -0x1
# instance fields
.field private final mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.field private final mDetectMoves:Z
.field private final mDiagonals:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroidx/recyclerview/widget/DiffUtil$Diagonal;",
">;"
}
.end annotation
.end field
.field private final mNewItemStatuses:[I
.field private final mNewListSize:I
.field private final mOldItemStatuses:[I
.field private final mOldListSize:I
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/DiffUtil$Callback;Ljava/util/List;[I[IZ)V
.locals 0
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/DiffUtil$Callback;",
"Ljava/util/List<",
"Landroidx/recyclerview/widget/DiffUtil$Diagonal;",
">;[I[IZ)V"
}
.end annotation
.line 664
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p2, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
iput-object p3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
iput-object p4, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewItemStatuses:[I
const/4 p2, 0x0
.line 668
invoke-static {p3, p2}, Ljava/util/Arrays;->fill([II)V
.line 669
invoke-static {p4, p2}, Ljava/util/Arrays;->fill([II)V
iput-object p1, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 671
invoke-virtual {p1}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getOldListSize()I
move-result p2
iput p2, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldListSize:I
.line 672
invoke-virtual {p1}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getNewListSize()I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewListSize:I
iput-boolean p5, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDetectMoves:Z
.line 674
invoke-direct {p0}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->addEdgeDiagonals()V
.line 675
invoke-direct {p0}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->findMatchingItems()V
return-void
.end method
.method private addEdgeDiagonals()V
.locals 5
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 683
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
const/4 v0, 0x0
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
:goto_0
if-eqz v0, :cond_1
.line 685
iget v2, v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
if-nez v2, :cond_1
iget v0, v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
if-eqz v0, :cond_2
:cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 686
new-instance v2, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
invoke-direct {v2, v1, v1, v1}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;-><init>(III)V
invoke-interface {v0, v1, v2}, Ljava/util/List;->add(ILjava/lang/Object;)V
:cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 689
new-instance v2, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
iget v3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldListSize:I
iget v4, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewListSize:I
invoke-direct {v2, v3, v4, v1}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;-><init>(III)V
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method private findMatchingAddition(I)V
.locals 5
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 739
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x0
move v2, v1
:goto_0
if-ge v1, v0, :cond_3
iget-object v3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 741
invoke-interface {v3, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
.line 742
:goto_1
iget v4, v3, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
if-ge v2, v4, :cond_2
iget-object v4, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewItemStatuses:[I
.line 744
aget v4, v4, v2
if-nez v4, :cond_1
iget-object v4, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 745
invoke-virtual {v4, p1, v2}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areItemsTheSame(II)Z
move-result v4
if-eqz v4, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 748
invoke-virtual {v0, p1, v2}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areContentsTheSame(II)Z
move-result v0
const/4 v1, 0x4
if-eqz v0, :cond_0
const/16 v0, 0x8
goto :goto_2
:cond_0
move v0, v1
:goto_2
iget-object v3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
shl-int/lit8 v4, v2, 0x4
or-int/2addr v4, v0
.line 752
aput v4, v3, p1
iget-object v3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewItemStatuses:[I
shl-int/2addr p1, v1
or-int/2addr p1, v0
.line 753
aput p1, v3, v2
return-void
:cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_1
.line 759
:cond_2
invoke-virtual {v3}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->endY()I
move-result v2
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_3
return-void
.end method
.method private findMatchingItems()V
.locals 8
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 698
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_2
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
const/4 v2, 0x0
.line 699
:goto_0
iget v3, v1, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->size:I
if-ge v2, v3, :cond_0
.line 700
iget v3, v1, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
add-int/2addr v3, v2
.line 701
iget v4, v1, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
add-int/2addr v4, v2
iget-object v5, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 702
invoke-virtual {v5, v3, v4}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areContentsTheSame(II)Z
move-result v5
if-eqz v5, :cond_1
const/4 v5, 0x1
goto :goto_1
:cond_1
const/4 v5, 0x2
:goto_1
iget-object v6, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
shl-int/lit8 v7, v4, 0x4
or-int/2addr v7, v5
.line 704
aput v7, v6, v3
iget-object v6, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewItemStatuses:[I
shl-int/lit8 v3, v3, 0x4
or-int/2addr v3, v5
.line 705
aput v3, v6, v4
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_2
iget-boolean v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDetectMoves:Z
if-eqz v0, :cond_3
.line 712
invoke-direct {p0}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->findMoveMatches()V
:cond_3
return-void
.end method
.method private findMoveMatches()V
.locals 4
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 719
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
const/4 v1, 0x0
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_2
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
.line 720
:goto_1
iget v3, v2, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
if-ge v1, v3, :cond_1
iget-object v3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
.line 721
aget v3, v3, v1
if-nez v3, :cond_0
.line 723
invoke-direct {p0, v1}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->findMatchingAddition(I)V
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_1
.line 728
:cond_1
invoke-virtual {v2}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->endX()I
move-result v1
goto :goto_0
:cond_2
return-void
.end method
.method private static getPostponedUpdate(Ljava/util/Collection;IZ)Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
.locals 2
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Collection<",
"Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;",
">;IZ)",
"Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;"
}
.end annotation
.line 976
invoke-interface {p0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object p0
.line 977
:cond_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_1
.line 978
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
.line 979
iget v1, v0, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->posInOwnerList:I
if-ne v1, p1, :cond_0
iget-boolean v1, v0, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->removal:Z
if-ne v1, p2, :cond_0
.line 981
invoke-interface {p0}, Ljava/util/Iterator;->remove()V
goto :goto_0
:cond_1
const/4 v0, 0x0
.line 985
:goto_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result p1
if-eqz p1, :cond_3
.line 987
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
if-eqz p2, :cond_2
.line 989
iget v1, p1, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
add-int/lit8 v1, v1, -0x1
iput v1, p1, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
goto :goto_0
.line 991
:cond_2
iget v1, p1, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
add-int/lit8 v1, v1, 0x1
iput v1, p1, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
goto :goto_0
:cond_3
return-object v0
.end method
# virtual methods
.method public convertNewPositionToOld(I)I
.locals 3
.param p1 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
if-ltz p1, :cond_1
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewListSize:I
if-ge p1, v0, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewItemStatuses:[I
.line 799
aget p1, v0, p1
and-int/lit8 v0, p1, 0xf
if-nez v0, :cond_0
const/4 p1, -0x1
return p1
:cond_0
shr-int/lit8 p1, p1, 0x4
return p1
.line 796
:cond_1
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Index out of bounds - passed 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 p1, ", new list size = "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget p1, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewListSize:I
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public convertOldPositionToNew(I)I
.locals 3
.param p1 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
if-ltz p1, :cond_1
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldListSize:I
if-ge p1, v0, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
.line 777
aget p1, v0, p1
and-int/lit8 v0, p1, 0xf
if-nez v0, :cond_0
const/4 p1, -0x1
return p1
:cond_0
shr-int/lit8 p1, p1, 0x4
return p1
.line 774
:cond_1
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Index out of bounds - passed 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 p1, ", old list size = "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget p1, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldListSize:I
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public dispatchUpdatesTo(Landroidx/recyclerview/widget/ListUpdateCallback;)V
.locals 12
.param p1 # Landroidx/recyclerview/widget/ListUpdateCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 855
instance-of v0, p1, Landroidx/recyclerview/widget/BatchingListUpdateCallback;
if-eqz v0, :cond_0
.line 856
check-cast p1, Landroidx/recyclerview/widget/BatchingListUpdateCallback;
goto :goto_0
.line 858
:cond_0
new-instance v0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;
invoke-direct {v0, p1}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;-><init>(Landroidx/recyclerview/widget/ListUpdateCallback;)V
move-object p1, v0
:goto_0
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldListSize:I
.line 870
new-instance v1, Ljava/util/ArrayDeque;
invoke-direct {v1}, Ljava/util/ArrayDeque;-><init>()V
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldListSize:I
iget v3, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewListSize:I
iget-object v4, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 877
invoke-interface {v4}, Ljava/util/List;->size()I
move-result v4
const/4 v5, 0x1
sub-int/2addr v4, v5
:goto_1
if-ltz v4, :cond_a
iget-object v6, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mDiagonals:Ljava/util/List;
.line 878
invoke-interface {v6, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
.line 879
invoke-virtual {v6}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->endX()I
move-result v7
.line 880
invoke-virtual {v6}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->endY()I
move-result v8
:cond_1
:goto_2
const/4 v9, 0x0
if-le v2, v7, :cond_4
add-int/lit8 v2, v2, -0x1
iget-object v10, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
.line 887
aget v10, v10, v2
and-int/lit8 v11, v10, 0xc
if-eqz v11, :cond_3
shr-int/lit8 v11, v10, 0x4
.line 891
invoke-static {v1, v11, v9}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->getPostponedUpdate(Ljava/util/Collection;IZ)Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
move-result-object v9
if-eqz v9, :cond_2
.line 895
iget v9, v9, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
sub-int v9, v0, v9
sub-int/2addr v9, v5
.line 896
invoke-virtual {p1, v2, v9}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onMoved(II)V
and-int/lit8 v10, v10, 0x4
if-eqz v10, :cond_1
iget-object v10, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 898
invoke-virtual {v10, v2, v11}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getChangePayload(II)Ljava/lang/Object;
move-result-object v10
.line 899
invoke-virtual {p1, v9, v5, v10}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onChanged(IILjava/lang/Object;)V
goto :goto_2
.line 903
:cond_2
new-instance v9, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
sub-int v10, v0, v2
sub-int/2addr v10, v5
invoke-direct {v9, v2, v10, v5}, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;-><init>(IIZ)V
invoke-interface {v1, v9}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 911
:cond_3
invoke-virtual {p1, v2, v5}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onRemoved(II)V
add-int/lit8 v0, v0, -0x1
goto :goto_2
:cond_4
:goto_3
if-le v3, v8, :cond_7
add-int/lit8 v3, v3, -0x1
iget-object v7, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mNewItemStatuses:[I
.line 918
aget v7, v7, v3
and-int/lit8 v10, v7, 0xc
if-eqz v10, :cond_6
shr-int/lit8 v10, v7, 0x4
.line 924
invoke-static {v1, v10, v5}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->getPostponedUpdate(Ljava/util/Collection;IZ)Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
move-result-object v11
if-nez v11, :cond_5
.line 929
new-instance v7, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
sub-int v10, v0, v2
invoke-direct {v7, v3, v10, v9}, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;-><init>(IIZ)V
invoke-interface {v1, v7}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_3
.line 938
:cond_5
iget v11, v11, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
sub-int v11, v0, v11
sub-int/2addr v11, v5
.line 939
invoke-virtual {p1, v11, v2}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onMoved(II)V
and-int/lit8 v7, v7, 0x4
if-eqz v7, :cond_4
iget-object v7, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 941
invoke-virtual {v7, v10, v3}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getChangePayload(II)Ljava/lang/Object;
move-result-object v7
.line 942
invoke-virtual {p1, v2, v5, v7}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onChanged(IILjava/lang/Object;)V
goto :goto_3
.line 947
:cond_6
invoke-virtual {p1, v2, v5}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onInserted(II)V
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 952
:cond_7
iget v2, v6, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
.line 953
iget v3, v6, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
.line 954
:goto_4
iget v7, v6, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->size:I
if-ge v9, v7, :cond_9
iget-object v7, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mOldItemStatuses:[I
.line 956
aget v7, v7, v2
and-int/lit8 v7, v7, 0xf
const/4 v8, 0x2
if-ne v7, v8, :cond_8
iget-object v7, p0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->mCallback:Landroidx/recyclerview/widget/DiffUtil$Callback;
.line 957
invoke-virtual {v7, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getChangePayload(II)Ljava/lang/Object;
move-result-object v7
.line 958
invoke-virtual {p1, v2, v5, v7}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->onChanged(IILjava/lang/Object;)V
:cond_8
add-int/lit8 v2, v2, 0x1
add-int/lit8 v3, v3, 0x1
add-int/lit8 v9, v9, 0x1
goto :goto_4
.line 964
:cond_9
iget v2, v6, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->x:I
.line 965
iget v3, v6, Landroidx/recyclerview/widget/DiffUtil$Diagonal;->y:I
add-int/lit8 v4, v4, -0x1
goto/16 :goto_1
.line 967
:cond_a
invoke-virtual {p1}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->dispatchLastEvent()V
return-void
.end method
.method public dispatchUpdatesTo(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 840
new-instance v0, Landroidx/recyclerview/widget/AdapterListUpdateCallback;
invoke-direct {v0, p1}, Landroidx/recyclerview/widget/AdapterListUpdateCallback;-><init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->dispatchUpdatesTo(Landroidx/recyclerview/widget/ListUpdateCallback;)V
return-void
.end method

View File

@@ -0,0 +1,93 @@
.class public abstract Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "ItemCallback"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 409
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abstract areContentsTheSame(Ljava/lang/Object;Ljava/lang/Object;)Z
.param p1 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;TT;)Z"
}
.end annotation
.end method
.method public abstract areItemsTheSame(Ljava/lang/Object;Ljava/lang/Object;)Z
.param p1 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;TT;)Z"
}
.end annotation
.end method
.method public getChangePayload(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
.param p1 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/lang/Object;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;TT;)",
"Ljava/lang/Object;"
}
.end annotation
const/4 p1, 0x0
return-object p1
.end method

View File

@@ -0,0 +1,39 @@
.class Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "PostponedUpdate"
.end annotation
# instance fields
.field currentPos:I
.field posInOwnerList:I
.field removal:Z
# direct methods
.method public constructor <init>(IIZ)V
.locals 0
.line 1021
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->posInOwnerList:I
iput p2, p0, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->currentPos:I
iput-boolean p3, p0, Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;->removal:Z
return-void
.end method

View File

@@ -0,0 +1,78 @@
.class Landroidx/recyclerview/widget/DiffUtil$Range;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Range"
.end annotation
# instance fields
.field newListEnd:I
.field newListStart:I
.field oldListEnd:I
.field oldListStart:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 577
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public constructor <init>(IIII)V
.locals 0
.line 580
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iput p2, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iput p3, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
iput p4, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
return-void
.end method
# virtual methods
.method public newSize()I
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
sub-int/2addr v0, v1
return v0
.end method
.method public oldSize()I
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
sub-int/2addr v0, v1
return v0
.end method

View File

@@ -0,0 +1,209 @@
.class Landroidx/recyclerview/widget/DiffUtil$Snake;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Snake"
.end annotation
# instance fields
.field public endX:I
.field public endY:I
.field public reverse:Z
.field public startX:I
.field public startY:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 501
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public diagonalSize()I
.locals 3
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
sub-int/2addr v0, v1
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endY:I
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
sub-int/2addr v1, v2
.line 536
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
return v0
.end method
.method public hasAdditionOrRemoval()Z
.locals 3
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endY:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
sub-int/2addr v0, v1
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
sub-int/2addr v1, v2
if-eq v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public isAddition()Z
.locals 3
iget v0, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endY:I
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
sub-int/2addr v0, v1
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
sub-int/2addr v1, v2
if-le v0, v1, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public toDiagonal()Landroidx/recyclerview/widget/DiffUtil$Diagonal;
.locals 4
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 545
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;->hasAdditionOrRemoval()Z
move-result v0
if-eqz v0, :cond_2
iget-boolean v0, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
if-eqz v0, :cond_0
.line 548
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;->diagonalSize()I
move-result v3
invoke-direct {v0, v1, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;-><init>(III)V
return-object v0
.line 551
:cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;->isAddition()Z
move-result v0
if-eqz v0, :cond_1
.line 552
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
add-int/lit8 v2, v2, 0x1
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;->diagonalSize()I
move-result v3
invoke-direct {v0, v1, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;-><init>(III)V
return-object v0
.line 554
:cond_1
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
add-int/lit8 v1, v1, 0x1
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;->diagonalSize()I
move-result v3
invoke-direct {v0, v1, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;-><init>(III)V
return-object v0
.line 559
:cond_2
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$Diagonal;
iget v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
iget v2, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
iget v3, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
sub-int/2addr v3, v1
invoke-direct {v0, v1, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$Diagonal;-><init>(III)V
return-object v0
.end method

View File

@@ -0,0 +1,766 @@
.class public Landroidx/recyclerview/widget/DiffUtil;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/DiffUtil$CenteredArray;,
Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;,
Landroidx/recyclerview/widget/DiffUtil$DiffResult;,
Landroidx/recyclerview/widget/DiffUtil$Range;,
Landroidx/recyclerview/widget/DiffUtil$Snake;,
Landroidx/recyclerview/widget/DiffUtil$Diagonal;,
Landroidx/recyclerview/widget/DiffUtil$ItemCallback;,
Landroidx/recyclerview/widget/DiffUtil$Callback;
}
.end annotation
# static fields
.field private static final DIAGONAL_COMPARATOR:Ljava/util/Comparator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Comparator<",
"Landroidx/recyclerview/widget/DiffUtil$Diagonal;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 87
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$1;
invoke-direct {v0}, Landroidx/recyclerview/widget/DiffUtil$1;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/DiffUtil;->DIAGONAL_COMPARATOR:Ljava/util/Comparator;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 83
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static backward(Landroidx/recyclerview/widget/DiffUtil$Range;Landroidx/recyclerview/widget/DiffUtil$Callback;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;I)Landroidx/recyclerview/widget/DiffUtil$Snake;
.locals 11
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 274
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->oldSize()I
move-result v0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->newSize()I
move-result v1
sub-int/2addr v0, v1
rem-int/lit8 v0, v0, 0x2
const/4 v1, 0x1
if-nez v0, :cond_0
move v0, v1
goto :goto_0
:cond_0
const/4 v0, 0x0
.line 275
:goto_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->oldSize()I
move-result v2
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->newSize()I
move-result v3
sub-int/2addr v2, v3
neg-int v3, p4
move v4, v3
:goto_1
if-gt v4, p4, :cond_7
if-eq v4, v3, :cond_2
if-eq v4, p4, :cond_1
add-int/lit8 v5, v4, 0x1
.line 287
invoke-virtual {p3, v5}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v5
add-int/lit8 v6, v4, -0x1
invoke-virtual {p3, v6}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v6
if-ge v5, v6, :cond_1
goto :goto_2
:cond_1
add-int/lit8 v5, v4, -0x1
.line 292
invoke-virtual {p3, v5}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v5
add-int/lit8 v6, v5, -0x1
goto :goto_3
:cond_2
:goto_2
add-int/lit8 v5, v4, 0x1
.line 289
invoke-virtual {p3, v5}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v5
move v6, v5
.line 295
:goto_3
iget v7, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
iget v8, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
sub-int/2addr v8, v6
sub-int/2addr v8, v4
sub-int/2addr v7, v8
if-eqz p4, :cond_4
if-eq v6, v5, :cond_3
goto :goto_4
:cond_3
add-int/lit8 v8, v7, 0x1
goto :goto_5
:cond_4
:goto_4
move v8, v7
.line 298
:goto_5
iget v9, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
if-le v6, v9, :cond_5
iget v9, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
if-le v7, v9, :cond_5
add-int/lit8 v9, v6, -0x1
add-int/lit8 v10, v7, -0x1
.line 300
invoke-virtual {p1, v9, v10}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areItemsTheSame(II)Z
move-result v9
if-eqz v9, :cond_5
add-int/lit8 v6, v6, -0x1
add-int/lit8 v7, v7, -0x1
goto :goto_5
.line 305
:cond_5
invoke-virtual {p3, v4, v6}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->set(II)V
if-eqz v0, :cond_6
sub-int v9, v2, v4
if-lt v9, v3, :cond_6
if-gt v9, p4, :cond_6
.line 313
invoke-virtual {p2, v9}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v9
if-lt v9, v6, :cond_6
.line 315
new-instance p0, Landroidx/recyclerview/widget/DiffUtil$Snake;
invoke-direct {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;-><init>()V
iput v6, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
iput v7, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
iput v5, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
iput v8, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endY:I
iput-boolean v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
return-object p0
:cond_6
add-int/lit8 v4, v4, 0x2
goto :goto_1
:cond_7
const/4 p0, 0x0
return-object p0
.end method
.method public static calculateDiff(Landroidx/recyclerview/widget/DiffUtil$Callback;)Landroidx/recyclerview/widget/DiffUtil$DiffResult;
.locals 1
.param p0 # Landroidx/recyclerview/widget/DiffUtil$Callback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
const/4 v0, 0x1
.line 106
invoke-static {p0, v0}, Landroidx/recyclerview/widget/DiffUtil;->calculateDiff(Landroidx/recyclerview/widget/DiffUtil$Callback;Z)Landroidx/recyclerview/widget/DiffUtil$DiffResult;
move-result-object p0
return-object p0
.end method
.method public static calculateDiff(Landroidx/recyclerview/widget/DiffUtil$Callback;Z)Landroidx/recyclerview/widget/DiffUtil$DiffResult;
.locals 9
.param p0 # Landroidx/recyclerview/widget/DiffUtil$Callback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 124
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getOldListSize()I
move-result v0
.line 125
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getNewListSize()I
move-result v1
.line 127
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
.line 131
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 133
new-instance v3, Landroidx/recyclerview/widget/DiffUtil$Range;
const/4 v5, 0x0
invoke-direct {v3, v5, v0, v5, v1}, Landroidx/recyclerview/widget/DiffUtil$Range;-><init>(IIII)V
invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
add-int/2addr v0, v1
add-int/lit8 v0, v0, 0x1
.line 135
div-int/lit8 v0, v0, 0x2
.line 139
new-instance v1, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;
mul-int/lit8 v0, v0, 0x2
add-int/lit8 v0, v0, 0x1
invoke-direct {v1, v0}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;-><init>(I)V
.line 140
new-instance v3, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;
invoke-direct {v3, v0}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;-><init>(I)V
.line 143
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 144
:goto_0
invoke-interface {v2}, Ljava/util/List;->isEmpty()Z
move-result v5
if-nez v5, :cond_3
.line 145
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-interface {v2, v5}, Ljava/util/List;->remove(I)Ljava/lang/Object;
move-result-object v5
check-cast v5, Landroidx/recyclerview/widget/DiffUtil$Range;
.line 146
invoke-static {v5, p0, v1, v3}, Landroidx/recyclerview/widget/DiffUtil;->midPoint(Landroidx/recyclerview/widget/DiffUtil$Range;Landroidx/recyclerview/widget/DiffUtil$Callback;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;)Landroidx/recyclerview/widget/DiffUtil$Snake;
move-result-object v6
if-eqz v6, :cond_2
.line 149
invoke-virtual {v6}, Landroidx/recyclerview/widget/DiffUtil$Snake;->diagonalSize()I
move-result v7
if-lez v7, :cond_0
.line 150
invoke-virtual {v6}, Landroidx/recyclerview/widget/DiffUtil$Snake;->toDiagonal()Landroidx/recyclerview/widget/DiffUtil$Diagonal;
move-result-object v7
invoke-interface {v4, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 153
:cond_0
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v7
if-eqz v7, :cond_1
new-instance v7, Landroidx/recyclerview/widget/DiffUtil$Range;
invoke-direct {v7}, Landroidx/recyclerview/widget/DiffUtil$Range;-><init>()V
goto :goto_1
.line 154
:cond_1
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v7
add-int/lit8 v7, v7, -0x1
.line 153
invoke-interface {v0, v7}, Ljava/util/List;->remove(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroidx/recyclerview/widget/DiffUtil$Range;
.line 155
:goto_1
iget v8, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iput v8, v7, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
.line 156
iget v8, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
iput v8, v7, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
.line 157
iget v8, v6, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
iput v8, v7, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
.line 158
iget v8, v6, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
iput v8, v7, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
.line 159
invoke-interface {v2, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 164
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iput v7, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
.line 165
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
iput v7, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
.line 166
iget v7, v6, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
iput v7, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
.line 167
iget v6, v6, Landroidx/recyclerview/widget/DiffUtil$Snake;->endY:I
iput v6, v5, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
.line 168
invoke-interface {v2, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.line 170
:cond_2
invoke-interface {v0, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_3
sget-object v0, Landroidx/recyclerview/widget/DiffUtil;->DIAGONAL_COMPARATOR:Ljava/util/Comparator;
.line 175
invoke-static {v4, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 177
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$DiffResult;
.line 178
invoke-virtual {v1}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->backingData()[I
move-result-object v5
invoke-virtual {v3}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->backingData()[I
move-result-object v6
move-object v2, v0
move-object v3, p0
move v7, p1
invoke-direct/range {v2 .. v7}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;-><init>(Landroidx/recyclerview/widget/DiffUtil$Callback;Ljava/util/List;[I[IZ)V
return-object v0
.end method
.method private static forward(Landroidx/recyclerview/widget/DiffUtil$Range;Landroidx/recyclerview/widget/DiffUtil$Callback;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;I)Landroidx/recyclerview/widget/DiffUtil$Snake;
.locals 11
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 217
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->oldSize()I
move-result v0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->newSize()I
move-result v1
sub-int/2addr v0, v1
invoke-static {v0}, Ljava/lang/Math;->abs(I)I
move-result v0
rem-int/lit8 v0, v0, 0x2
const/4 v1, 0x0
const/4 v2, 0x1
if-ne v0, v2, :cond_0
goto :goto_0
:cond_0
move v2, v1
.line 218
:goto_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->oldSize()I
move-result v0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->newSize()I
move-result v3
sub-int/2addr v0, v3
neg-int v3, p4
move v4, v3
:goto_1
if-gt v4, p4, :cond_7
if-eq v4, v3, :cond_2
if-eq v4, p4, :cond_1
add-int/lit8 v5, v4, 0x1
.line 226
invoke-virtual {p2, v5}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v5
add-int/lit8 v6, v4, -0x1
invoke-virtual {p2, v6}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v6
if-le v5, v6, :cond_1
goto :goto_2
:cond_1
add-int/lit8 v5, v4, -0x1
.line 231
invoke-virtual {p2, v5}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v5
add-int/lit8 v6, v5, 0x1
goto :goto_3
:cond_2
:goto_2
add-int/lit8 v5, v4, 0x1
.line 228
invoke-virtual {p2, v5}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v5
move v6, v5
.line 234
:goto_3
iget v7, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
iget v8, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
sub-int v8, v6, v8
add-int/2addr v7, v8
sub-int/2addr v7, v4
if-eqz p4, :cond_4
if-eq v6, v5, :cond_3
goto :goto_4
:cond_3
add-int/lit8 v8, v7, -0x1
goto :goto_5
:cond_4
:goto_4
move v8, v7
.line 237
:goto_5
iget v9, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
if-ge v6, v9, :cond_5
iget v9, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
if-ge v7, v9, :cond_5
.line 239
invoke-virtual {p1, v6, v7}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areItemsTheSame(II)Z
move-result v9
if-eqz v9, :cond_5
add-int/lit8 v6, v6, 0x1
add-int/lit8 v7, v7, 0x1
goto :goto_5
.line 244
:cond_5
invoke-virtual {p2, v4, v6}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->set(II)V
if-eqz v2, :cond_6
sub-int v9, v0, v4
add-int/lit8 v10, v3, 0x1
if-lt v9, v10, :cond_6
add-int/lit8 v10, p4, -0x1
if-gt v9, v10, :cond_6
.line 252
invoke-virtual {p3, v9}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->get(I)I
move-result v9
if-gt v9, v6, :cond_6
.line 254
new-instance p0, Landroidx/recyclerview/widget/DiffUtil$Snake;
invoke-direct {p0}, Landroidx/recyclerview/widget/DiffUtil$Snake;-><init>()V
iput v5, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startX:I
iput v8, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->startY:I
iput v6, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endX:I
iput v7, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->endY:I
iput-boolean v1, p0, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
return-object p0
:cond_6
add-int/lit8 v4, v4, 0x2
goto :goto_1
:cond_7
const/4 p0, 0x0
return-object p0
.end method
.method private static midPoint(Landroidx/recyclerview/widget/DiffUtil$Range;Landroidx/recyclerview/widget/DiffUtil$Callback;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;)Landroidx/recyclerview/widget/DiffUtil$Snake;
.locals 4
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 191
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->oldSize()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x1
if-lt v0, v2, :cond_3
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->newSize()I
move-result v0
if-ge v0, v2, :cond_0
goto :goto_1
.line 194
:cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->oldSize()I
move-result v0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Range;->newSize()I
move-result v3
add-int/2addr v0, v3
add-int/2addr v0, v2
div-int/lit8 v0, v0, 0x2
.line 195
iget v3, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
invoke-virtual {p2, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->set(II)V
.line 196
iget v3, p0, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
invoke-virtual {p3, v2, v3}, Landroidx/recyclerview/widget/DiffUtil$CenteredArray;->set(II)V
const/4 v2, 0x0
:goto_0
if-ge v2, v0, :cond_3
.line 198
invoke-static {p0, p1, p2, p3, v2}, Landroidx/recyclerview/widget/DiffUtil;->forward(Landroidx/recyclerview/widget/DiffUtil$Range;Landroidx/recyclerview/widget/DiffUtil$Callback;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;I)Landroidx/recyclerview/widget/DiffUtil$Snake;
move-result-object v3
if-eqz v3, :cond_1
return-object v3
.line 202
:cond_1
invoke-static {p0, p1, p2, p3, v2}, Landroidx/recyclerview/widget/DiffUtil;->backward(Landroidx/recyclerview/widget/DiffUtil$Range;Landroidx/recyclerview/widget/DiffUtil$Callback;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;Landroidx/recyclerview/widget/DiffUtil$CenteredArray;I)Landroidx/recyclerview/widget/DiffUtil$Snake;
move-result-object v3
if-eqz v3, :cond_2
return-object v3
:cond_2
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_3
:goto_1
return-object v1
.end method

View File

@@ -0,0 +1,480 @@
.class public Landroidx/recyclerview/widget/DividerItemDecoration;
.super Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;
.source "SourceFile"
# static fields
.field private static final ATTRS:[I
.field public static final HORIZONTAL:I = 0x0
.field private static final TAG:Ljava/lang/String; = "DividerItem"
.field public static final VERTICAL:I = 0x1
# instance fields
.field private final mBounds:Landroid/graphics/Rect;
.field private mDivider:Landroid/graphics/drawable/Drawable;
.field private mOrientation:I
# direct methods
.method static constructor <clinit>()V
.locals 1
const v0, 0x1010214
filled-new-array {v0}, [I
move-result-object v0
sput-object v0, Landroidx/recyclerview/widget/DividerItemDecoration;->ATTRS:[I
return-void
.end method
.method public constructor <init>(Landroid/content/Context;I)V
.locals 2
.line 66
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;-><init>()V
.line 57
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect;
sget-object v0, Landroidx/recyclerview/widget/DividerItemDecoration;->ATTRS:[I
.line 67
invoke-virtual {p1, v0}, Landroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
move-result-object p1
const/4 v0, 0x0
.line 68
invoke-virtual {p1, v0}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
iput-object v0, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
if-nez v0, :cond_0
const-string v0, "DividerItem"
const-string v1, "@android:attr/listDivider was not set in the theme used for this DividerItemDecoration. Please set that attribute all call setDrawable()"
.line 70
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 73
:cond_0
invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V
.line 74
invoke-virtual {p0, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->setOrientation(I)V
return-void
.end method
.method private drawHorizontal(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V
.locals 7
.line 151
invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I
.line 155
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 156
invoke-virtual {p2}, Landroid/view/View;->getPaddingTop()I
move-result v0
.line 157
invoke-virtual {p2}, Landroid/view/View;->getHeight()I
move-result v2
invoke-virtual {p2}, Landroid/view/View;->getPaddingBottom()I
move-result v3
sub-int/2addr v2, v3
.line 158
invoke-virtual {p2}, Landroid/view/View;->getPaddingLeft()I
move-result v3
.line 159
invoke-virtual {p2}, Landroid/view/View;->getWidth()I
move-result v4
invoke-virtual {p2}, Landroid/view/View;->getPaddingRight()I
move-result v5
sub-int/2addr v4, v5
.line 158
invoke-virtual {p1, v3, v0, v4, v2}, Landroid/graphics/Canvas;->clipRect(IIII)Z
goto :goto_0
.line 162
:cond_0
invoke-virtual {p2}, Landroid/view/View;->getHeight()I
move-result v2
move v0, v1
.line 165
:goto_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getChildCount()I
move-result v3
:goto_1
if-ge v1, v3, :cond_1
.line 167
invoke-virtual {p2, v1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v4
.line 168
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
move-result-object v5
iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect;
invoke-virtual {v5, v4, v6}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getDecoratedBoundsWithMargins(Landroid/view/View;Landroid/graphics/Rect;)V
iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect;
.line 169
iget v5, v5, Landroid/graphics/Rect;->right:I
invoke-virtual {v4}, Landroid/view/View;->getTranslationX()F
move-result v4
invoke-static {v4}, Ljava/lang/Math;->round(F)I
move-result v4
add-int/2addr v5, v4
iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
.line 170
invoke-virtual {v4}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v4
sub-int v4, v5, v4
iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
.line 171
invoke-virtual {v6, v4, v0, v5, v2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
.line 172
invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
add-int/lit8 v1, v1, 0x1
goto :goto_1
.line 174
:cond_1
invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V
return-void
.end method
.method private drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V
.locals 7
.line 124
invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I
.line 128
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
.line 129
invoke-virtual {p2}, Landroid/view/View;->getPaddingLeft()I
move-result v0
.line 130
invoke-virtual {p2}, Landroid/view/View;->getWidth()I
move-result v2
invoke-virtual {p2}, Landroid/view/View;->getPaddingRight()I
move-result v3
sub-int/2addr v2, v3
.line 131
invoke-virtual {p2}, Landroid/view/View;->getPaddingTop()I
move-result v3
.line 132
invoke-virtual {p2}, Landroid/view/View;->getHeight()I
move-result v4
invoke-virtual {p2}, Landroid/view/View;->getPaddingBottom()I
move-result v5
sub-int/2addr v4, v5
.line 131
invoke-virtual {p1, v0, v3, v2, v4}, Landroid/graphics/Canvas;->clipRect(IIII)Z
goto :goto_0
.line 135
:cond_0
invoke-virtual {p2}, Landroid/view/View;->getWidth()I
move-result v2
move v0, v1
.line 138
:goto_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getChildCount()I
move-result v3
:goto_1
if-ge v1, v3, :cond_1
.line 140
invoke-virtual {p2, v1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v4
iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect;
.line 141
invoke-virtual {p2, v4, v5}, Landroidx/recyclerview/widget/RecyclerView;->getDecoratedBoundsWithMargins(Landroid/view/View;Landroid/graphics/Rect;)V
iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mBounds:Landroid/graphics/Rect;
.line 142
iget v5, v5, Landroid/graphics/Rect;->bottom:I
invoke-virtual {v4}, Landroid/view/View;->getTranslationY()F
move-result v4
invoke-static {v4}, Ljava/lang/Math;->round(F)I
move-result v4
add-int/2addr v5, v4
iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
.line 143
invoke-virtual {v4}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v4
sub-int v4, v5, v4
iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
.line 144
invoke-virtual {v6, v0, v4, v2, v5}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
.line 145
invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
add-int/lit8 v1, v1, 0x1
goto :goto_1
.line 147
:cond_1
invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V
return-void
.end method
# virtual methods
.method public getDrawable()Landroid/graphics/drawable/Drawable;
.locals 1
.annotation build Landroidx/annotation/Nullable;
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
return-object v0
.end method
.method public getItemOffsets(Landroid/graphics/Rect;Landroid/view/View;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$State;)V
.locals 1
iget-object p2, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
const/4 p3, 0x0
if-nez p2, :cond_0
.line 181
invoke-virtual {p1, p3, p3, p3, p3}, Landroid/graphics/Rect;->set(IIII)V
return-void
:cond_0
iget p4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I
const/4 v0, 0x1
if-ne p4, v0, :cond_1
.line 185
invoke-virtual {p2}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result p2
invoke-virtual {p1, p3, p3, p3, p2}, Landroid/graphics/Rect;->set(IIII)V
goto :goto_0
.line 187
:cond_1
invoke-virtual {p2}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result p2
invoke-virtual {p1, p3, p3, p2, p3}, Landroid/graphics/Rect;->set(IIII)V
:goto_0
return-void
.end method
.method public onDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$State;)V
.locals 1
.line 113
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
move-result-object p3
if-eqz p3, :cond_2
iget-object p3, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
if-nez p3, :cond_0
goto :goto_0
:cond_0
iget p3, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I
const/4 v0, 0x1
if-ne p3, v0, :cond_1
.line 117
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V
goto :goto_0
.line 119
:cond_1
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawHorizontal(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V
:cond_2
:goto_0
return-void
.end method
.method public setDrawable(Landroid/graphics/drawable/Drawable;)V
.locals 1
.param p1 # Landroid/graphics/drawable/Drawable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
if-eqz p1, :cond_0
iput-object p1, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
return-void
.line 98
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Drawable cannot be null."
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public setOrientation(I)V
.locals 1
if-eqz p1, :cond_1
const/4 v0, 0x1
if-ne p1, v0, :cond_0
goto :goto_0
.line 85
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "Invalid orientation. It should be either HORIZONTAL or VERTICAL"
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
:cond_1
:goto_0
iput p1, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mOrientation:I
return-void
.end method

View File

@@ -0,0 +1,49 @@
.class Landroidx/recyclerview/widget/FastScroller$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/FastScroller;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/FastScroller;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/FastScroller;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/FastScroller$1;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 123
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/FastScroller$1;->this$0:Landroidx/recyclerview/widget/FastScroller;
const/16 v1, 0x1f4
.line 126
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/FastScroller;->hide(I)V
return-void
.end method

View File

@@ -0,0 +1,54 @@
.class Landroidx/recyclerview/widget/FastScroller$2;
.super Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/FastScroller;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/FastScroller;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/FastScroller;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/FastScroller$2;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 130
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;-><init>()V
return-void
.end method
# virtual methods
.method public onScrolled(Landroidx/recyclerview/widget/RecyclerView;II)V
.locals 0
iget-object p2, p0, Landroidx/recyclerview/widget/FastScroller$2;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 133
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->computeHorizontalScrollOffset()I
move-result p3
.line 134
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->computeVerticalScrollOffset()I
move-result p1
.line 133
invoke-virtual {p2, p3, p1}, Landroidx/recyclerview/widget/FastScroller;->updateScrollPosition(II)V
return-void
.end method

View File

@@ -0,0 +1,109 @@
.class Landroidx/recyclerview/widget/FastScroller$AnimatorListener;
.super Landroid/animation/AnimatorListenerAdapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/FastScroller;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "AnimatorListener"
.end annotation
# instance fields
.field private mCanceled:Z
.field final synthetic this$0:Landroidx/recyclerview/widget/FastScroller;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/FastScroller;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 551
invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;-><init>()V
const/4 p1, 0x0
iput-boolean p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->mCanceled:Z
return-void
.end method
# virtual methods
.method public onAnimationCancel(Landroid/animation/Animator;)V
.locals 0
const/4 p1, 0x1
iput-boolean p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->mCanceled:Z
return-void
.end method
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 2
iget-boolean p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->mCanceled:Z
const/4 v0, 0x0
if-eqz p1, :cond_0
iput-boolean v0, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->mCanceled:Z
return-void
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 561
iget-object p1, p1, Landroidx/recyclerview/widget/FastScroller;->mShowHideAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Float;
invoke-virtual {p1}, Ljava/lang/Float;->floatValue()F
move-result p1
const/4 v1, 0x0
cmpl-float p1, p1, v1
if-nez p1, :cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 562
iput v0, p1, Landroidx/recyclerview/widget/FastScroller;->mAnimationState:I
.line 563
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/FastScroller;->setState(I)V
goto :goto_0
:cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorListener;->this$0:Landroidx/recyclerview/widget/FastScroller;
const/4 v0, 0x2
.line 565
iput v0, p1, Landroidx/recyclerview/widget/FastScroller;->mAnimationState:I
.line 566
invoke-virtual {p1}, Landroidx/recyclerview/widget/FastScroller;->requestRedraw()V
:goto_0
return-void
.end method

View File

@@ -0,0 +1,78 @@
.class Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/animation/ValueAnimator$AnimatorUpdateListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/FastScroller;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "AnimatorUpdater"
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/FastScroller;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/FastScroller;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 577
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationUpdate(Landroid/animation/ValueAnimator;)V
.locals 1
.line 582
invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/Float;
invoke-virtual {p1}, Ljava/lang/Float;->floatValue()F
move-result p1
const/high16 v0, 0x437f0000 # 255.0f
mul-float/2addr p1, v0
float-to-int p1, p1
iget-object v0, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 583
iget-object v0, v0, Landroidx/recyclerview/widget/FastScroller;->mVerticalThumbDrawable:Landroid/graphics/drawable/StateListDrawable;
invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
iget-object v0, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 584
iget-object v0, v0, Landroidx/recyclerview/widget/FastScroller;->mVerticalTrackDrawable:Landroid/graphics/drawable/Drawable;
invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
iget-object p1, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;->this$0:Landroidx/recyclerview/widget/FastScroller;
.line 585
invoke-virtual {p1}, Landroidx/recyclerview/widget/FastScroller;->requestRedraw()V
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,143 @@
.class Landroidx/recyclerview/widget/GapWorker$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/util/Comparator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GapWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/Comparator<",
"Landroidx/recyclerview/widget/GapWorker$Task;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 190
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public compare(Landroidx/recyclerview/widget/GapWorker$Task;Landroidx/recyclerview/widget/GapWorker$Task;)I
.locals 6
.line 194
iget-object v0, p1, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
const/4 v1, 0x0
const/4 v2, 0x1
if-nez v0, :cond_0
move v3, v2
goto :goto_0
:cond_0
move v3, v1
:goto_0
iget-object v4, p2, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
if-nez v4, :cond_1
move v4, v2
goto :goto_1
:cond_1
move v4, v1
:goto_1
const/4 v5, -0x1
if-eq v3, v4, :cond_3
if-nez v0, :cond_2
goto :goto_2
:cond_2
move v2, v5
:goto_2
return v2
.line 199
:cond_3
iget-boolean v0, p1, Landroidx/recyclerview/widget/GapWorker$Task;->immediate:Z
iget-boolean v3, p2, Landroidx/recyclerview/widget/GapWorker$Task;->immediate:Z
if-eq v0, v3, :cond_5
if-eqz v0, :cond_4
move v2, v5
:cond_4
return v2
.line 204
:cond_5
iget v0, p2, Landroidx/recyclerview/widget/GapWorker$Task;->viewVelocity:I
iget v2, p1, Landroidx/recyclerview/widget/GapWorker$Task;->viewVelocity:I
sub-int/2addr v0, v2
if-eqz v0, :cond_6
return v0
.line 208
:cond_6
iget p1, p1, Landroidx/recyclerview/widget/GapWorker$Task;->distanceToItem:I
iget p2, p2, Landroidx/recyclerview/widget/GapWorker$Task;->distanceToItem:I
sub-int/2addr p1, p2
if-eqz p1, :cond_7
return p1
:cond_7
return v1
.end method
.method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I
.locals 0
.line 190
check-cast p1, Landroidx/recyclerview/widget/GapWorker$Task;
check-cast p2, Landroidx/recyclerview/widget/GapWorker$Task;
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/GapWorker$1;->compare(Landroidx/recyclerview/widget/GapWorker$Task;Landroidx/recyclerview/widget/GapWorker$Task;)I
move-result p1
return p1
.end method

View File

@@ -0,0 +1,300 @@
.class Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/RecyclerView$LayoutManager$LayoutPrefetchRegistry;
# annotations
.annotation build Landroid/annotation/SuppressLint;
value = {
"VisibleForTests"
}
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GapWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "LayoutPrefetchRegistryImpl"
.end annotation
# instance fields
.field mCount:I
.field mPrefetchArray:[I
.field mPrefetchDx:I
.field mPrefetchDy:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 65
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public addPosition(II)V
.locals 5
if-ltz p1, :cond_3
if-ltz p2, :cond_2
iget v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
mul-int/lit8 v1, v0, 0x2
iget-object v2, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
const/4 v3, 0x4
if-nez v2, :cond_0
new-array v0, v3, [I
iput-object v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
const/4 v2, -0x1
.line 124
invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V
goto :goto_0
.line 125
:cond_0
array-length v4, v2
if-lt v1, v4, :cond_1
mul-int/2addr v0, v3
.line 127
new-array v0, v0, [I
iput-object v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
.line 128
array-length v3, v2
const/4 v4, 0x0
invoke-static {v2, v4, v0, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
:cond_1
:goto_0
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
.line 132
aput p1, v0, v1
add-int/lit8 v1, v1, 0x1
.line 133
aput p2, v0, v1
iget p1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
return-void
.line 117
:cond_2
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "Pixel distance must be non-negative"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 113
:cond_3
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "Layout positions must be non-negative"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public clearPrefetchPositions()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
if-eqz v0, :cond_0
const/4 v1, -0x1
.line 153
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([II)V
:cond_0
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
return-void
.end method
.method public collectPrefetchPositionsFromView(Landroidx/recyclerview/widget/RecyclerView;Z)V
.locals 4
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
if-eqz v0, :cond_0
const/4 v1, -0x1
.line 81
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([II)V
.line 84
:cond_0
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mLayout:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
.line 85
iget-object v1, p1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
if-eqz v1, :cond_3
if-eqz v0, :cond_3
.line 87
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->isItemPrefetchEnabled()Z
move-result v1
if-eqz v1, :cond_3
if-eqz p2, :cond_1
.line 91
iget-object v1, p1, Landroidx/recyclerview/widget/RecyclerView;->mAdapterHelper:Landroidx/recyclerview/widget/AdapterHelper;
invoke-virtual {v1}, Landroidx/recyclerview/widget/AdapterHelper;->hasPendingUpdates()Z
move-result v1
if-nez v1, :cond_2
.line 92
iget-object v1, p1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result v1
invoke-virtual {v0, v1, p0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->collectInitialPrefetchPositions(ILandroidx/recyclerview/widget/RecyclerView$LayoutManager$LayoutPrefetchRegistry;)V
goto :goto_0
.line 96
:cond_1
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->hasPendingAdapterUpdates()Z
move-result v1
if-nez v1, :cond_2
iget v1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchDx:I
iget v2, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchDy:I
.line 97
iget-object v3, p1, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
invoke-virtual {v0, v1, v2, v3, p0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->collectAdjacentPrefetchPositions(IILandroidx/recyclerview/widget/RecyclerView$State;Landroidx/recyclerview/widget/RecyclerView$LayoutManager$LayoutPrefetchRegistry;)V
:cond_2
:goto_0
iget v1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
.line 102
iget v2, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxCountObserved:I
if-le v1, v2, :cond_3
.line 103
iput v1, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxCountObserved:I
.line 104
iput-boolean p2, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxObservedInInitialPrefetch:Z
.line 105
iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView;->mRecycler:Landroidx/recyclerview/widget/RecyclerView$Recycler;
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->updateViewCacheSize()V
:cond_3
return-void
.end method
.method public lastPrefetchIncludedPosition(I)Z
.locals 4
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
const/4 v1, 0x0
if-eqz v0, :cond_1
iget v0, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
mul-int/lit8 v0, v0, 0x2
move v2, v1
:goto_0
if-ge v2, v0, :cond_1
iget-object v3, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
.line 142
aget v3, v3, v2
if-ne v3, p1, :cond_0
const/4 p1, 0x1
return p1
:cond_0
add-int/lit8 v2, v2, 0x2
goto :goto_0
:cond_1
return v1
.end method
.method public setPrefetchVector(II)V
.locals 0
iput p1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchDx:I
iput p2, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchDy:I
return-void
.end method

View File

@@ -0,0 +1,59 @@
.class Landroidx/recyclerview/widget/GapWorker$Task;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GapWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "Task"
.end annotation
# instance fields
.field public distanceToItem:I
.field public immediate:Z
.field public position:I
.field public view:Landroidx/recyclerview/widget/RecyclerView;
.field public viewVelocity:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 38
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public clear()V
.locals 2
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/recyclerview/widget/GapWorker$Task;->immediate:Z
iput v0, p0, Landroidx/recyclerview/widget/GapWorker$Task;->viewVelocity:I
iput v0, p0, Landroidx/recyclerview/widget/GapWorker$Task;->distanceToItem:I
const/4 v1, 0x0
iput-object v1, p0, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
iput v0, p0, Landroidx/recyclerview/widget/GapWorker$Task;->position:I
return-void
.end method

View File

@@ -0,0 +1,846 @@
.class final Landroidx/recyclerview/widget/GapWorker;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;,
Landroidx/recyclerview/widget/GapWorker$Task;
}
.end annotation
# static fields
.field static final sGapWorker:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal<",
"Landroidx/recyclerview/widget/GapWorker;",
">;"
}
.end annotation
.end field
.field static sTaskComparator:Ljava/util/Comparator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Comparator<",
"Landroidx/recyclerview/widget/GapWorker$Task;",
">;"
}
.end annotation
.end field
# instance fields
.field mFrameIntervalNs:J
.field mPostTimeNs:J
.field mRecyclerViews:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/recyclerview/widget/RecyclerView;",
">;"
}
.end annotation
.end field
.field private mTasks:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/recyclerview/widget/GapWorker$Task;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 32
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/GapWorker;->sGapWorker:Ljava/lang/ThreadLocal;
.line 190
new-instance v0, Landroidx/recyclerview/widget/GapWorker$1;
invoke-direct {v0}, Landroidx/recyclerview/widget/GapWorker$1;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/GapWorker;->sTaskComparator:Ljava/util/Comparator;
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 34
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 59
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
return-void
.end method
.method private buildTaskList()V
.locals 12
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 217
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
const/4 v1, 0x0
move v2, v1
move v3, v2
:goto_0
if-ge v2, v0, :cond_1
iget-object v4, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 220
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView;
.line 221
invoke-virtual {v4}, Landroid/view/View;->getWindowVisibility()I
move-result v5
if-nez v5, :cond_0
.line 222
iget-object v5, v4, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
invoke-virtual {v5, v4, v1}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->collectPrefetchPositionsFromView(Landroidx/recyclerview/widget/RecyclerView;Z)V
.line 223
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
iget v4, v4, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
add-int/2addr v3, v4
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_1
iget-object v2, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
.line 228
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->ensureCapacity(I)V
move v2, v1
move v3, v2
:goto_1
if-ge v2, v0, :cond_6
iget-object v4, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 231
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView;
.line 232
invoke-virtual {v4}, Landroid/view/View;->getWindowVisibility()I
move-result v5
if-eqz v5, :cond_2
goto :goto_5
.line 237
:cond_2
iget-object v5, v4, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
.line 238
iget v6, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchDx:I
invoke-static {v6}, Ljava/lang/Math;->abs(I)I
move-result v6
iget v7, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchDy:I
.line 239
invoke-static {v7}, Ljava/lang/Math;->abs(I)I
move-result v7
add-int/2addr v6, v7
move v7, v1
.line 240
:goto_2
iget v8, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
mul-int/lit8 v8, v8, 0x2
if-ge v7, v8, :cond_5
iget-object v8, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
.line 242
invoke-virtual {v8}, Ljava/util/ArrayList;->size()I
move-result v8
if-lt v3, v8, :cond_3
.line 243
new-instance v8, Landroidx/recyclerview/widget/GapWorker$Task;
invoke-direct {v8}, Landroidx/recyclerview/widget/GapWorker$Task;-><init>()V
iget-object v9, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
.line 244
invoke-virtual {v9, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_3
:cond_3
iget-object v8, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
.line 246
invoke-virtual {v8, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Landroidx/recyclerview/widget/GapWorker$Task;
.line 248
:goto_3
iget-object v9, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
add-int/lit8 v10, v7, 0x1
aget v10, v9, v10
if-gt v10, v6, :cond_4
const/4 v11, 0x1
goto :goto_4
:cond_4
move v11, v1
.line 250
:goto_4
iput-boolean v11, v8, Landroidx/recyclerview/widget/GapWorker$Task;->immediate:Z
.line 251
iput v6, v8, Landroidx/recyclerview/widget/GapWorker$Task;->viewVelocity:I
.line 252
iput v10, v8, Landroidx/recyclerview/widget/GapWorker$Task;->distanceToItem:I
.line 253
iput-object v4, v8, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
.line 254
aget v9, v9, v7
iput v9, v8, Landroidx/recyclerview/widget/GapWorker$Task;->position:I
add-int/lit8 v3, v3, 0x1
add-int/lit8 v7, v7, 0x2
goto :goto_2
:cond_5
:goto_5
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_6
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
sget-object v1, Landroidx/recyclerview/widget/GapWorker;->sTaskComparator:Ljava/util/Comparator;
.line 261
invoke-static {v0, v1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
return-void
.end method
.method private flushTaskWithDeadline(Landroidx/recyclerview/widget/GapWorker$Task;J)V
.locals 3
.line 344
iget-boolean v0, p1, Landroidx/recyclerview/widget/GapWorker$Task;->immediate:Z
if-eqz v0, :cond_0
const-wide v0, 0x7fffffffffffffffL
goto :goto_0
:cond_0
move-wide v0, p2
.line 345
:goto_0
iget-object v2, p1, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
iget p1, p1, Landroidx/recyclerview/widget/GapWorker$Task;->position:I
invoke-direct {p0, v2, p1, v0, v1}, Landroidx/recyclerview/widget/GapWorker;->prefetchPositionWithDeadline(Landroidx/recyclerview/widget/RecyclerView;IJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object p1
if-eqz p1, :cond_1
.line 347
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mNestedRecyclerView:Ljava/lang/ref/WeakReference;
if-eqz v0, :cond_1
.line 349
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isBound()Z
move-result v0
if-eqz v0, :cond_1
.line 350
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v0
if-nez v0, :cond_1
.line 351
iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mNestedRecyclerView:Ljava/lang/ref/WeakReference;
invoke-virtual {p1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroidx/recyclerview/widget/RecyclerView;
invoke-direct {p0, p1, p2, p3}, Landroidx/recyclerview/widget/GapWorker;->prefetchInnerRecyclerViewWithDeadline(Landroidx/recyclerview/widget/RecyclerView;J)V
:cond_1
return-void
.end method
.method private flushTasksWithDeadline(J)V
.locals 3
const/4 v0, 0x0
:goto_0
iget-object v1, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
.line 356
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ge v0, v1, :cond_1
iget-object v1, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
.line 357
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/GapWorker$Task;
.line 358
iget-object v2, v1, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
if-nez v2, :cond_0
goto :goto_1
.line 361
:cond_0
invoke-direct {p0, v1, p1, p2}, Landroidx/recyclerview/widget/GapWorker;->flushTaskWithDeadline(Landroidx/recyclerview/widget/GapWorker$Task;J)V
.line 362
invoke-virtual {v1}, Landroidx/recyclerview/widget/GapWorker$Task;->clear()V
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_1
:goto_1
return-void
.end method
.method public static isPrefetchPositionAttached(Landroidx/recyclerview/widget/RecyclerView;I)Z
.locals 5
.line 265
iget-object v0, p0, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
invoke-virtual {v0}, Landroidx/recyclerview/widget/ChildHelper;->getUnfilteredChildCount()I
move-result v0
const/4 v1, 0x0
move v2, v1
:goto_0
if-ge v2, v0, :cond_1
.line 267
iget-object v3, p0, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
invoke-virtual {v3, v2}, Landroidx/recyclerview/widget/ChildHelper;->getUnfilteredChildAt(I)Landroid/view/View;
move-result-object v3
.line 268
invoke-static {v3}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v3
.line 270
iget v4, v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mPosition:I
if-ne v4, p1, :cond_0
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v3
if-nez v3, :cond_0
const/4 p0, 0x1
return p0
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_1
return v1
.end method
.method private prefetchInnerRecyclerViewWithDeadline(Landroidx/recyclerview/widget/RecyclerView;J)V
.locals 3
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
if-nez p1, :cond_0
return-void
.line 316
:cond_0
iget-boolean v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mDataSetHasChangedAfterLayout:Z
if-eqz v0, :cond_1
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mChildHelper:Landroidx/recyclerview/widget/ChildHelper;
.line 317
invoke-virtual {v0}, Landroidx/recyclerview/widget/ChildHelper;->getUnfilteredChildCount()I
move-result v0
if-eqz v0, :cond_1
.line 320
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->removeAndRecycleViews()V
.line 324
:cond_1
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
const/4 v1, 0x1
.line 325
invoke-virtual {v0, p1, v1}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->collectPrefetchPositionsFromView(Landroidx/recyclerview/widget/RecyclerView;Z)V
.line 327
iget v1, v0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
if-eqz v1, :cond_3
:try_start_0
const-string v1, "RV Nested Prefetch"
.line 329
invoke-static {v1}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V
.line 330
iget-object v1, p1, Landroidx/recyclerview/widget/RecyclerView;->mState:Landroidx/recyclerview/widget/RecyclerView$State;
iget-object v2, p1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1, v2}, Landroidx/recyclerview/widget/RecyclerView$State;->prepareForNestedPrefetch(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
const/4 v1, 0x0
.line 331
:goto_0
iget v2, v0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
mul-int/lit8 v2, v2, 0x2
if-ge v1, v2, :cond_2
.line 334
iget-object v2, v0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
aget v2, v2, v1
.line 335
invoke-direct {p0, p1, v2, p2, p3}, Landroidx/recyclerview/widget/GapWorker;->prefetchPositionWithDeadline(Landroidx/recyclerview/widget/RecyclerView;IJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
add-int/lit8 v1, v1, 0x2
goto :goto_0
:catchall_0
move-exception p1
goto :goto_1
.line 338
:cond_2
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
goto :goto_2
:goto_1
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
.line 339
throw p1
:cond_3
:goto_2
return-void
.end method
.method private prefetchPositionWithDeadline(Landroidx/recyclerview/widget/RecyclerView;IJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.locals 2
.line 279
invoke-static {p1, p2}, Landroidx/recyclerview/widget/GapWorker;->isPrefetchPositionAttached(Landroidx/recyclerview/widget/RecyclerView;I)Z
move-result v0
if-eqz v0, :cond_0
const/4 p1, 0x0
return-object p1
.line 284
:cond_0
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mRecycler:Landroidx/recyclerview/widget/RecyclerView$Recycler;
const/4 v1, 0x0
.line 287
:try_start_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->onEnterLayoutOrScroll()V
.line 288
invoke-virtual {v0, p2, v1, p3, p4}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->tryGetViewHolderForPositionByDeadline(IZJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object p2
if-eqz p2, :cond_2
.line 292
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isBound()Z
move-result p3
if-eqz p3, :cond_1
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result p3
if-nez p3, :cond_1
.line 295
iget-object p3, p2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v0, p3}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->recycleView(Landroid/view/View;)V
goto :goto_0
:catchall_0
move-exception p2
goto :goto_1
.line 301
:cond_1
invoke-virtual {v0, p2, v1}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->addViewHolderToRecycledViewPool(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 305
:cond_2
:goto_0
invoke-virtual {p1, v1}, Landroidx/recyclerview/widget/RecyclerView;->onExitLayoutOrScroll(Z)V
return-object p2
:goto_1
invoke-virtual {p1, v1}, Landroidx/recyclerview/widget/RecyclerView;->onExitLayoutOrScroll(Z)V
.line 306
throw p2
.end method
# virtual methods
.method public add(Landroidx/recyclerview/widget/RecyclerView;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 163
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public postFromTraversal(Landroidx/recyclerview/widget/RecyclerView;II)V
.locals 4
.line 177
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->isAttachedToWindow()Z
move-result v0
if-eqz v0, :cond_0
iget-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-nez v0, :cond_0
.line 182
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getNanoTime()J
move-result-wide v0
iput-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
.line 183
invoke-virtual {p1, p0}, Landroid/view/View;->post(Ljava/lang/Runnable;)Z
.line 187
:cond_0
iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
invoke-virtual {p1, p2, p3}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->setPrefetchVector(II)V
return-void
.end method
.method public prefetch(J)V
.locals 0
.line 367
invoke-direct {p0}, Landroidx/recyclerview/widget/GapWorker;->buildTaskList()V
.line 368
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/GapWorker;->flushTasksWithDeadline(J)V
return-void
.end method
.method public remove(Landroidx/recyclerview/widget/RecyclerView;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 167
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
return-void
.end method
.method public run()V
.locals 8
const-wide/16 v0, 0x0
:try_start_0
const-string v2, "RV Prefetch"
.line 374
invoke-static {v2}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V
iget-object v2, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 376
invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z
move-result v2
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v2, :cond_0
:goto_0
iput-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
.line 404
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
return-void
:cond_0
:try_start_1
iget-object v2, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 383
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
const/4 v3, 0x0
move-wide v4, v0
:goto_1
if-ge v3, v2, :cond_2
iget-object v6, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
.line 386
invoke-virtual {v6, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroidx/recyclerview/widget/RecyclerView;
.line 387
invoke-virtual {v6}, Landroid/view/View;->getWindowVisibility()I
move-result v7
if-nez v7, :cond_1
.line 388
invoke-virtual {v6}, Landroid/view/View;->getDrawingTime()J
move-result-wide v6
invoke-static {v6, v7, v4, v5}, Ljava/lang/Math;->max(JJ)J
move-result-wide v4
goto :goto_2
:catchall_0
move-exception v2
goto :goto_3
:cond_1
:goto_2
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_2
cmp-long v2, v4, v0
if-nez v2, :cond_3
goto :goto_0
.line 397
:cond_3
sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v2, v4, v5}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v2
iget-wide v4, p0, Landroidx/recyclerview/widget/GapWorker;->mFrameIntervalNs:J
add-long/2addr v2, v4
.line 399
invoke-virtual {p0, v2, v3}, Landroidx/recyclerview/widget/GapWorker;->prefetch(J)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
iput-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
.line 404
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
return-void
:goto_3
iput-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
.line 405
throw v2
.end method

View File

@@ -0,0 +1,44 @@
.class public final Landroidx/recyclerview/widget/GridLayoutManager$DefaultSpanSizeLookup;
.super Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GridLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "DefaultSpanSizeLookup"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1358
invoke-direct {p0}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;-><init>()V
return-void
.end method
# virtual methods
.method public getSpanIndex(II)I
.locals 0
.line 1367
rem-int/2addr p1, p2
return p1
.end method
.method public getSpanSize(I)I
.locals 0
const/4 p1, 0x1
return p1
.end method

View File

@@ -0,0 +1,129 @@
.class public Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;
.super Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GridLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "LayoutParams"
.end annotation
# static fields
.field public static final INVALID_SPAN_ID:I = -0x1
# instance fields
.field mSpanIndex:I
.field mSpanSize:I
# direct methods
.method public constructor <init>(II)V
.locals 0
.line 1394
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;-><init>(II)V
const/4 p1, -0x1
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanIndex:I
const/4 p1, 0x0
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanSize:I
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 0
.line 1390
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
const/4 p1, -0x1
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanIndex:I
const/4 p1, 0x0
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanSize:I
return-void
.end method
.method public constructor <init>(Landroid/view/ViewGroup$LayoutParams;)V
.locals 0
.line 1402
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
const/4 p1, -0x1
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanIndex:I
const/4 p1, 0x0
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanSize:I
return-void
.end method
.method public constructor <init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
.locals 0
.line 1398
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
const/4 p1, -0x1
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanIndex:I
const/4 p1, 0x0
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanSize:I
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$LayoutParams;)V
.locals 0
.line 1406
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;-><init>(Landroidx/recyclerview/widget/RecyclerView$LayoutParams;)V
const/4 p1, -0x1
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanIndex:I
const/4 p1, 0x0
iput p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanSize:I
return-void
.end method
# virtual methods
.method public getSpanIndex()I
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanIndex:I
return v0
.end method
.method public getSpanSize()I
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;->mSpanSize:I
return v0
.end method

View File

@@ -0,0 +1,468 @@
.class public abstract Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GridLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "SpanSizeLookup"
.end annotation
# instance fields
.field private mCacheSpanGroupIndices:Z
.field private mCacheSpanIndices:Z
.field final mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.field final mSpanIndexCache:Landroid/util/SparseIntArray;
# direct methods
.method public constructor <init>()V
.locals 1
.line 844
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 846
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanIndexCache:Landroid/util/SparseIntArray;
.line 847
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanIndices:Z
iput-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanGroupIndices:Z
return-void
.end method
.method public static findFirstKeyLessThan(Landroid/util/SparseIntArray;I)I
.locals 4
.line 1008
invoke-virtual {p0}, Landroid/util/SparseIntArray;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
const/4 v1, 0x0
:goto_0
if-gt v1, v0, :cond_1
add-int v2, v1, v0
ushr-int/lit8 v2, v2, 0x1
.line 1014
invoke-virtual {p0, v2}, Landroid/util/SparseIntArray;->keyAt(I)I
move-result v3
if-ge v3, p1, :cond_0
add-int/lit8 v2, v2, 0x1
move v1, v2
goto :goto_0
:cond_0
add-int/lit8 v2, v2, -0x1
move v0, v2
goto :goto_0
:cond_1
add-int/lit8 v1, v1, -0x1
if-ltz v1, :cond_2
.line 1022
invoke-virtual {p0}, Landroid/util/SparseIntArray;->size()I
move-result p1
if-ge v1, p1, :cond_2
.line 1023
invoke-virtual {p0, v1}, Landroid/util/SparseIntArray;->keyAt(I)I
move-result p0
return p0
:cond_2
const/4 p0, -0x1
return p0
.end method
# virtual methods
.method public getCachedSpanGroupIndex(II)I
.locals 2
iget-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanGroupIndices:Z
if-nez v0, :cond_0
.line 941
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanGroupIndex(II)I
move-result p1
return p1
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
const/4 v1, -0x1
.line 943
invoke-virtual {v0, p1, v1}, Landroid/util/SparseIntArray;->get(II)I
move-result v0
if-eq v0, v1, :cond_1
return v0
.line 947
:cond_1
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanGroupIndex(II)I
move-result p2
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.line 948
invoke-virtual {v0, p1, p2}, Landroid/util/SparseIntArray;->put(II)V
return p2
.end method
.method public getCachedSpanIndex(II)I
.locals 2
iget-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanIndices:Z
if-nez v0, :cond_0
.line 928
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanIndex(II)I
move-result p1
return p1
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanIndexCache:Landroid/util/SparseIntArray;
const/4 v1, -0x1
.line 930
invoke-virtual {v0, p1, v1}, Landroid/util/SparseIntArray;->get(II)I
move-result v0
if-eq v0, v1, :cond_1
return v0
.line 934
:cond_1
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanIndex(II)I
move-result p2
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanIndexCache:Landroid/util/SparseIntArray;
.line 935
invoke-virtual {v0, p1, p2}, Landroid/util/SparseIntArray;->put(II)V
return p2
.end method
.method public getSpanGroupIndex(II)I
.locals 6
iget-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanGroupIndices:Z
const/4 v1, 0x0
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.line 1044
invoke-static {v0, p1}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->findFirstKeyLessThan(Landroid/util/SparseIntArray;I)I
move-result v0
const/4 v2, -0x1
if-eq v0, v2, :cond_0
iget-object v2, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.line 1046
invoke-virtual {v2, v0}, Landroid/util/SparseIntArray;->get(I)I
move-result v2
add-int/lit8 v3, v0, 0x1
.line 1048
invoke-virtual {p0, v0, p2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getCachedSpanIndex(II)I
move-result v4
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v0
add-int/2addr v4, v0
if-ne v4, p2, :cond_1
add-int/lit8 v2, v2, 0x1
move v4, v1
goto :goto_0
:cond_0
move v2, v1
move v3, v2
move v4, v3
.line 1055
:cond_1
:goto_0
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v0
:goto_1
if-ge v3, p1, :cond_4
.line 1057
invoke-virtual {p0, v3}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v5
add-int/2addr v4, v5
if-ne v4, p2, :cond_2
add-int/lit8 v2, v2, 0x1
move v4, v1
goto :goto_2
:cond_2
if-le v4, p2, :cond_3
add-int/lit8 v2, v2, 0x1
move v4, v5
:cond_3
:goto_2
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_4
add-int/2addr v4, v0
if-le v4, p2, :cond_5
add-int/lit8 v2, v2, 0x1
:cond_5
return v2
.end method
.method public getSpanIndex(II)I
.locals 5
.line 976
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v0
const/4 v1, 0x0
if-ne v0, p2, :cond_0
return v1
:cond_0
iget-boolean v2, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanIndices:Z
if-eqz v2, :cond_1
iget-object v2, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanIndexCache:Landroid/util/SparseIntArray;
.line 984
invoke-static {v2, p1}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->findFirstKeyLessThan(Landroid/util/SparseIntArray;I)I
move-result v2
if-ltz v2, :cond_1
iget-object v3, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanIndexCache:Landroid/util/SparseIntArray;
.line 986
invoke-virtual {v3, v2}, Landroid/util/SparseIntArray;->get(I)I
move-result v3
invoke-virtual {p0, v2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v4
add-int/2addr v3, v4
goto :goto_1
:cond_1
move v2, v1
move v3, v2
:goto_0
if-ge v2, p1, :cond_4
.line 991
invoke-virtual {p0, v2}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v4
add-int/2addr v3, v4
if-ne v3, p2, :cond_2
move v3, v1
goto :goto_1
:cond_2
if-le v3, p2, :cond_3
move v3, v4
:cond_3
:goto_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_4
add-int/2addr v0, v3
if-gt v0, p2, :cond_5
return v3
:cond_5
return v1
.end method
.method public abstract getSpanSize(I)I
.end method
.method public invalidateSpanGroupIndexCache()V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.line 905
invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
return-void
.end method
.method public invalidateSpanIndexCache()V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanIndexCache:Landroid/util/SparseIntArray;
.line 897
invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
return-void
.end method
.method public isSpanGroupIndexCacheEnabled()Z
.locals 1
iget-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanGroupIndices:Z
return v0
.end method
.method public isSpanIndexCacheEnabled()Z
.locals 1
iget-boolean v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanIndices:Z
return v0
.end method
.method public setSpanGroupIndexCacheEnabled(Z)V
.locals 1
if-nez p1, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.line 887
invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
:cond_0
iput-boolean p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanGroupIndices:Z
return-void
.end method
.method public setSpanIndexCacheEnabled(Z)V
.locals 1
if-nez p1, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.line 870
invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
:cond_0
iput-boolean p1, p0, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->mCacheSpanIndices:Z
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,83 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 259
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 262
iget-object v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v1, :cond_1
invoke-virtual {v0}, Landroidx/recyclerview/widget/ItemTouchHelper;->scrollIfNecessary()Z
move-result v0
if-eqz v0, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 263
iget-object v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v1, :cond_0
.line 264
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->moveIfNecessary(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 266
iget-object v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mScrollRunnable:Ljava/lang/Runnable;
invoke-virtual {v1, v0}, Landroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 267
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-static {v0, p0}, Landroidx/core/view/ViewCompat;->postOnAnimation(Landroid/view/View;Ljava/lang/Runnable;)V
:cond_1
return-void
.end method

View File

@@ -0,0 +1,475 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/RecyclerView$OnItemTouchListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 315
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onInterceptTouchEvent(Landroidx/recyclerview/widget/RecyclerView;Landroid/view/MotionEvent;)Z
.locals 5
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/MotionEvent;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 319
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mGestureDetector:Landroidx/core/view/GestureDetectorCompat;
invoke-virtual {p1, p2}, Landroidx/core/view/GestureDetectorCompat;->onTouchEvent(Landroid/view/MotionEvent;)Z
.line 323
invoke-virtual {p2}, Landroid/view/MotionEvent;->getActionMasked()I
move-result p1
const/4 v0, 0x1
const/4 v1, 0x0
if-nez p1, :cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 325
invoke-virtual {p2, v1}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v2
iput v2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 326
invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F
move-result v2
iput v2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchX:F
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 327
invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F
move-result v2
iput v2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchY:F
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 328
invoke-virtual {p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->obtainVelocityTracker()V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 329
iget-object v2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-nez v2, :cond_4
.line 330
invoke-virtual {p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper;->findAnimation(Landroid/view/MotionEvent;)Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
move-result-object p1
if-eqz p1, :cond_4
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 332
iget v3, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchX:F
iget v4, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mX:F
sub-float/2addr v3, v4
iput v3, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchX:F
.line 333
iget v3, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchY:F
iget v4, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mY:F
sub-float/2addr v3, v4
iput v3, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchY:F
.line 334
iget-object v3, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v2, v3, v0}, Landroidx/recyclerview/widget/ItemTouchHelper;->endRecoverAnimation(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Z)V
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 335
iget-object v2, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mPendingCleanup:Ljava/util/List;
iget-object v3, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v3, v3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-interface {v2, v3}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_0
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 336
iget-object v3, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
iget-object v2, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
iget-object v4, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v3, v2, v4}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->clearView(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
:cond_0
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 338
iget-object v3, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mActionState:I
invoke-virtual {v2, v3, p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->select(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 339
iget v2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelectedFlags:I
invoke-virtual {p1, p2, v2, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->updateDxDy(Landroid/view/MotionEvent;II)V
goto :goto_1
:cond_1
const/4 v2, 0x3
const/4 v3, -0x1
if-eq p1, v2, :cond_3
if-ne p1, v0, :cond_2
goto :goto_0
:cond_2
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 345
iget v2, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
if-eq v2, v3, :cond_4
.line 348
invoke-virtual {p2, v2}, Landroid/view/MotionEvent;->findPointerIndex(I)I
move-result v2
if-ltz v2, :cond_4
iget-object v3, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 353
invoke-virtual {v3, p1, p2, v2}, Landroidx/recyclerview/widget/ItemTouchHelper;->checkSelectForSwipe(ILandroid/view/MotionEvent;I)V
goto :goto_1
:cond_3
:goto_0
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 343
iput v3, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
const/4 v2, 0x0
.line 344
invoke-virtual {p1, v2, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->select(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
:cond_4
:goto_1
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 356
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz p1, :cond_5
.line 357
invoke-virtual {p1, p2}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
:cond_5
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 359
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz p1, :cond_6
goto :goto_2
:cond_6
move v0, v1
:goto_2
return v0
.end method
.method public onRequestDisallowInterceptTouchEvent(Z)V
.locals 2
if-nez p1, :cond_0
return-void
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
const/4 v0, 0x0
const/4 v1, 0x0
.line 425
invoke-virtual {p1, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->select(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
return-void
.end method
.method public onTouchEvent(Landroidx/recyclerview/widget/RecyclerView;Landroid/view/MotionEvent;)V
.locals 7
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/MotionEvent;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 364
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mGestureDetector:Landroidx/core/view/GestureDetectorCompat;
invoke-virtual {p1, p2}, Landroidx/core/view/GestureDetectorCompat;->onTouchEvent(Landroid/view/MotionEvent;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 369
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz p1, :cond_0
.line 370
invoke-virtual {p1, p2}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
:cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 372
iget p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
const/4 v0, -0x1
if-ne p1, v0, :cond_1
return-void
.line 375
:cond_1
invoke-virtual {p2}, Landroid/view/MotionEvent;->getActionMasked()I
move-result p1
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 376
iget v1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
invoke-virtual {p2, v1}, Landroid/view/MotionEvent;->findPointerIndex(I)I
move-result v1
if-ltz v1, :cond_2
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 378
invoke-virtual {v2, p1, p2, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->checkSelectForSwipe(ILandroid/view/MotionEvent;I)V
:cond_2
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 380
iget-object v3, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-nez v3, :cond_3
return-void
:cond_3
const/4 v4, 0x0
const/4 v5, 0x1
if-eq p1, v5, :cond_8
const/4 v6, 0x2
if-eq p1, v6, :cond_7
const/4 v1, 0x3
if-eq p1, v1, :cond_6
const/4 v0, 0x6
if-eq p1, v0, :cond_4
goto :goto_1
.line 406
:cond_4
invoke-virtual {p2}, Landroid/view/MotionEvent;->getActionIndex()I
move-result p1
.line 407
invoke-virtual {p2, p1}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v0
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 408
iget v2, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
if-ne v0, v2, :cond_9
if-nez p1, :cond_5
move v4, v5
.line 412
:cond_5
invoke-virtual {p2, v4}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v0
iput v0, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 413
iget v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelectedFlags:I
invoke-virtual {v0, p2, v1, p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->updateDxDy(Landroid/view/MotionEvent;II)V
goto :goto_1
.line 397
:cond_6
iget-object p1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz p1, :cond_8
.line 398
invoke-virtual {p1}, Landroid/view/VelocityTracker;->clear()V
goto :goto_0
:cond_7
if-ltz v1, :cond_9
.line 388
iget p1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelectedFlags:I
invoke-virtual {v2, p2, p1, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->updateDxDy(Landroid/view/MotionEvent;II)V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 389
invoke-virtual {p1, v3}, Landroidx/recyclerview/widget/ItemTouchHelper;->moveIfNecessary(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 390
iget-object p2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mScrollRunnable:Ljava/lang/Runnable;
invoke-virtual {p2, p1}, Landroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 391
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mScrollRunnable:Ljava/lang/Runnable;
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 392
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {p1}, Landroid/view/View;->invalidate()V
goto :goto_1
:cond_8
:goto_0
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
const/4 p2, 0x0
.line 402
invoke-virtual {p1, p2, v4}, Landroidx/recyclerview/widget/ItemTouchHelper;->select(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 403
iput v0, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
:cond_9
:goto_1
return-void
.end method

View File

@@ -0,0 +1,140 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$3;
.super Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/ItemTouchHelper;->select(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.field final synthetic val$prevSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field final synthetic val$swipeDir:I
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIFFFFILandroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.locals 9
move-object v8, p0
move-object v0, p1
iput-object v0, v8, Landroidx/recyclerview/widget/ItemTouchHelper$3;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
move/from16 v0, p9
iput v0, v8, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$swipeDir:I
move-object/from16 v0, p10
iput-object v0, v8, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$prevSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-object v0, p0
move-object v1, p2
move v2, p3
move v3, p4
move v4, p5
move v5, p6
move/from16 v6, p7
move/from16 v7, p8
.line 638
invoke-direct/range {v0 .. v7}, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;-><init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIFFFF)V
return-void
.end method
# virtual methods
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 2
.line 641
invoke-super {p0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->onAnimationEnd(Landroid/animation/Animator;)V
iget-boolean p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mOverridden:Z
if-eqz p1, :cond_0
return-void
:cond_0
iget p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$swipeDir:I
if-gtz p1, :cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 647
iget-object v0, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$prevSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
invoke-virtual {v0, p1, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->clearView(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
goto :goto_0
:cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 651
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mPendingCleanup:Ljava/util/List;
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$prevSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-interface {p1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const/4 p1, 0x1
iput-boolean p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mIsPendingCleanup:Z
iget p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$swipeDir:I
if-lez p1, :cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 656
invoke-virtual {v0, p0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->postDispatchSwipe(Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;I)V
:cond_2
:goto_0
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 660
iget-object v0, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mOverdrawChild:Landroid/view/View;
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$3;->val$prevSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v1, v1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
if-ne v0, v1, :cond_3
.line 661
invoke-virtual {p1, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->removeChildDrawingOrderCallbackIfNecessary(Landroid/view/View;)V
:cond_3
return-void
.end method

View File

@@ -0,0 +1,135 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$4;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/ItemTouchHelper;->postDispatchSwipe(Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;I)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.field final synthetic val$anim:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.field final synthetic val$swipeDir:I
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper;Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;I)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
iput-object p2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->val$anim:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
iput p3, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->val$swipeDir:I
.line 703
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 706
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
if-eqz v0, :cond_2
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->isAttachedToWindow()Z
move-result v0
if-eqz v0, :cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->val$anim:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
iget-boolean v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mOverridden:Z
if-nez v1, :cond_2
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 708
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getAbsoluteAdapterPosition()I
move-result v0
const/4 v1, -0x1
if-eq v0, v1, :cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 710
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getItemAnimator()Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;
move-result-object v0
if-eqz v0, :cond_0
const/4 v1, 0x0
.line 714
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;->isRunning(Landroidx/recyclerview/widget/RecyclerView$ItemAnimator$ItemAnimatorFinishedListener;)Z
move-result v0
if-nez v0, :cond_1
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 715
invoke-virtual {v0}, Landroidx/recyclerview/widget/ItemTouchHelper;->hasRunningRecoverAnim()Z
move-result v0
if-nez v0, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 716
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->val$anim:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
iget-object v1, v1, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->val$swipeDir:I
invoke-virtual {v0, v1, v2}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->onSwiped(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
goto :goto_0
:cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$4;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 718
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v0, p0}, Landroid/view/View;->post(Ljava/lang/Runnable;)Z
:cond_2
:goto_0
return-void
.end method

View File

@@ -0,0 +1,87 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$5;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/RecyclerView$ChildDrawingOrderCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/ItemTouchHelper;->addChildDrawingOrderCallback()V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$5;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 1298
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onGetChildDrawingOrder(II)I
.locals 4
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$5;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 1301
iget-object v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mOverdrawChild:Landroid/view/View;
if-nez v1, :cond_0
return p2
.line 1304
:cond_0
iget v2, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mOverdrawChildPosition:I
const/4 v3, -0x1
if-ne v2, v3, :cond_1
.line 1306
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->indexOfChild(Landroid/view/View;)I
move-result v2
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$5;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 1307
iput v2, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mOverdrawChildPosition:I
:cond_1
add-int/lit8 p1, p1, -0x1
if-ne p2, p1, :cond_2
return v2
:cond_2
if-ge p2, v2, :cond_3
goto :goto_0
:cond_3
add-int/lit8 p2, p2, 0x1
:goto_0
return p2
.end method

View File

@@ -0,0 +1,44 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$Callback$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/view/animation/Interpolator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1405
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getInterpolation(F)F
.locals 1
mul-float v0, p1, p1
mul-float/2addr v0, p1
mul-float/2addr v0, p1
mul-float/2addr v0, p1
return v0
.end method

View File

@@ -0,0 +1,50 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$Callback$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/view/animation/Interpolator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 1412
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getInterpolation(F)F
.locals 2
const/high16 v0, 0x3f800000 # 1.0f
sub-float/2addr p1, v0
mul-float v1, p1, p1
mul-float/2addr v1, p1
mul-float/2addr v1, p1
mul-float/2addr v1, p1
add-float/2addr v1, v0
return v1
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,167 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;
.super Landroid/view/GestureDetector$SimpleOnGestureListener;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "ItemTouchHelperGestureListener"
.end annotation
# instance fields
.field private mShouldReactToLongPress:Z
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 2320
invoke-direct {p0}, Landroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V
const/4 p1, 0x1
iput-boolean p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->mShouldReactToLongPress:Z
return-void
.end method
# virtual methods
.method public doNotReactToLongPress()V
.locals 1
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->mShouldReactToLongPress:Z
return-void
.end method
.method public onDown(Landroid/view/MotionEvent;)Z
.locals 0
const/4 p1, 0x1
return p1
.end method
.method public onLongPress(Landroid/view/MotionEvent;)V
.locals 3
iget-boolean v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->mShouldReactToLongPress:Z
if-nez v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 2341
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->findChildView(Landroid/view/MotionEvent;)Landroid/view/View;
move-result-object v0
if-eqz v0, :cond_2
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 2343
iget-object v1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolder(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v0
if-eqz v0, :cond_2
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 2345
iget-object v2, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
iget-object v1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v2, v1, v0}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->hasDragFlag(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
move-result v1
if-nez v1, :cond_1
return-void
:cond_1
const/4 v1, 0x0
.line 2348
invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v1
iget-object v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 2352
iget v2, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
if-ne v1, v2, :cond_2
.line 2353
invoke-virtual {p1, v2}, Landroid/view/MotionEvent;->findPointerIndex(I)I
move-result v1
.line 2354
invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->getX(I)F
move-result v2
.line 2355
invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->getY(I)F
move-result p1
iget-object v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.line 2356
iput v2, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchX:F
.line 2357
iput p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchY:F
const/4 p1, 0x0
.line 2358
iput p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mDy:F
iput p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mDx:F
.line 2363
iget-object p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
invoke-virtual {p1}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->isLongPressDragEnabled()Z
move-result p1
if-eqz p1, :cond_2
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
const/4 v1, 0x2
.line 2364
invoke-virtual {p1, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->select(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
:cond_2
return-void
.end method

View File

@@ -0,0 +1,51 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/animation/ValueAnimator$AnimatorUpdateListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;-><init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIFFFF)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.line 2417
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationUpdate(Landroid/animation/ValueAnimator;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.line 2420
invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F
move-result p1
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->setFraction(F)V
return-void
.end method

View File

@@ -0,0 +1,290 @@
.class Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/animation/Animator$AnimatorListener;
# annotations
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "RecoverAnimation"
.end annotation
# instance fields
.field final mActionState:I
.field final mAnimationType:I
.field mEnded:Z
.field private mFraction:F
.field mIsPendingCleanup:Z
.field mOverridden:Z
.field final mStartDx:F
.field final mStartDy:F
.field final mTargetX:F
.field final mTargetY:F
.field final mValueAnimator:Landroid/animation/ValueAnimator;
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.end field
.field final mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field mX:F
.field mY:F
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIFFFF)V
.locals 1
.line 2407
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mOverridden:Z
iput-boolean v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mEnded:Z
iput p3, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mActionState:I
iput p2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mAnimationType:I
iput-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iput p4, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mStartDx:F
iput p5, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mStartDy:F
iput p6, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mTargetX:F
iput p7, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mTargetY:F
const/4 p2, 0x2
new-array p2, p2, [F
fill-array-data p2, :array_0
.line 2415
invoke-static {p2}, Landroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator;
move-result-object p2
iput-object p2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
.line 2416
new-instance p3, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation$1;
invoke-direct {p3, p0}, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation$1;-><init>(Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;)V
invoke-virtual {p2, p3}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
.line 2423
iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {p2, p1}, Landroid/animation/Animator;->setTarget(Ljava/lang/Object;)V
.line 2424
invoke-virtual {p2, p0}, Landroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V
const/4 p1, 0x0
.line 2425
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->setFraction(F)V
return-void
nop
:array_0
.array-data 4
0x0
0x3f800000 # 1.0f
.end array-data
.end method
# virtual methods
.method public cancel()V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
.line 2438
invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V
return-void
.end method
.method public onAnimationCancel(Landroid/animation/Animator;)V
.locals 0
const/high16 p1, 0x3f800000 # 1.0f
.line 2477
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->setFraction(F)V
return-void
.end method
.method public onAnimationEnd(Landroid/animation/Animator;)V
.locals 1
iget-boolean p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mEnded:Z
const/4 v0, 0x1
if-nez p1, :cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 2470
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setIsRecyclable(Z)V
:cond_0
iput-boolean v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mEnded:Z
return-void
.end method
.method public onAnimationRepeat(Landroid/animation/Animator;)V
.locals 0
return-void
.end method
.method public onAnimationStart(Landroid/animation/Animator;)V
.locals 0
return-void
.end method
.method public setDuration(J)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
.line 2429
invoke-virtual {v0, p1, p2}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator;
return-void
.end method
.method public setFraction(F)V
.locals 0
iput p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mFraction:F
return-void
.end method
.method public start()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
const/4 v1, 0x0
.line 2433
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->setIsRecyclable(Z)V
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
.line 2434
invoke-virtual {v0}, Landroid/animation/ValueAnimator;->start()V
return-void
.end method
.method public update()V
.locals 3
iget v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mStartDx:F
iget v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mTargetX:F
cmpl-float v2, v0, v1
if-nez v2, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 2451
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getTranslationX()F
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mX:F
goto :goto_0
:cond_0
iget v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mFraction:F
sub-float/2addr v1, v0
mul-float/2addr v2, v1
add-float/2addr v0, v2
iput v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mX:F
:goto_0
iget v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mStartDy:F
iget v1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mTargetY:F
cmpl-float v2, v0, v1
if-nez v2, :cond_1
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.line 2456
iget-object v0, v0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {v0}, Landroid/view/View;->getTranslationY()F
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mY:F
goto :goto_1
:cond_1
iget v2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mFraction:F
sub-float/2addr v1, v0
mul-float/2addr v2, v1
add-float/2addr v0, v2
iput v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mY:F
:goto_1
return-void
.end method

View File

@@ -0,0 +1,114 @@
.class public abstract Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;
.super Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x409
name = "SimpleCallback"
.end annotation
# instance fields
.field private mDefaultDragDirs:I
.field private mDefaultSwipeDirs:I
# direct methods
.method public constructor <init>(II)V
.locals 0
.line 2237
invoke-direct {p0}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;-><init>()V
iput p2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->mDefaultSwipeDirs:I
iput p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->mDefaultDragDirs:I
return-void
.end method
# virtual methods
.method public getDragDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
.locals 0
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->mDefaultDragDirs:I
return p1
.end method
.method public getMovementFlags(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 2297
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->getDragDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
move-result v0
.line 2298
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
move-result p1
.line 2297
invoke-static {v0, p1}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->makeMovementFlags(II)I
move-result p1
return p1
.end method
.method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
.locals 0
.param p1 # Landroidx/recyclerview/widget/RecyclerView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->mDefaultSwipeDirs:I
return p1
.end method
.method public setDefaultDragDirs(I)V
.locals 0
iput p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->mDefaultDragDirs:I
return-void
.end method
.method public setDefaultSwipeDirs(I)V
.locals 0
iput p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->mDefaultSwipeDirs:I
return-void
.end method

View File

@@ -0,0 +1,27 @@
.class public interface abstract Landroidx/recyclerview/widget/ItemTouchHelper$ViewDropHandler;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ItemTouchHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "ViewDropHandler"
.end annotation
# virtual methods
.method public abstract prepareForDrop(Landroid/view/View;Landroid/view/View;II)V
.param p1 # Landroid/view/View;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/View;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
.class public interface abstract Landroidx/recyclerview/widget/ItemTouchUIUtil;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract clearView(Landroid/view/View;)V
.end method
.method public abstract onDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;FFIZ)V
.end method
.method public abstract onDrawOver(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;FFIZ)V
.end method
.method public abstract onSelected(Landroid/view/View;)V
.end method

View File

@@ -0,0 +1,187 @@
.class Landroidx/recyclerview/widget/ItemTouchUIUtilImpl;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ItemTouchUIUtil;
# static fields
.field static final INSTANCE:Landroidx/recyclerview/widget/ItemTouchUIUtil;
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 31
new-instance v0, Landroidx/recyclerview/widget/ItemTouchUIUtilImpl;
invoke-direct {v0}, Landroidx/recyclerview/widget/ItemTouchUIUtilImpl;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/ItemTouchUIUtilImpl;->INSTANCE:Landroidx/recyclerview/widget/ItemTouchUIUtil;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static findMaxElevation(Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;)F
.locals 5
.line 53
invoke-virtual {p0}, Landroid/view/ViewGroup;->getChildCount()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x0
:goto_0
if-ge v2, v0, :cond_2
.line 56
invoke-virtual {p0, v2}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v3
if-ne v3, p1, :cond_0
goto :goto_1
.line 60
:cond_0
invoke-static {v3}, Landroidx/core/view/ViewCompat;->getElevation(Landroid/view/View;)F
move-result v3
cmpl-float v4, v3, v1
if-lez v4, :cond_1
move v1, v3
:cond_1
:goto_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_2
return v1
.end method
# virtual methods
.method public clearView(Landroid/view/View;)V
.locals 2
sget v0, Landroidx/recyclerview/R$id;->item_touch_helper_previous_elevation:I
.line 76
invoke-virtual {p1, v0}, Landroid/view/View;->getTag(I)Ljava/lang/Object;
move-result-object v0
.line 77
instance-of v1, v0, Ljava/lang/Float;
if-eqz v1, :cond_0
.line 78
check-cast v0, Ljava/lang/Float;
invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F
move-result v0
invoke-static {p1, v0}, Landroidx/core/view/ViewCompat;->setElevation(Landroid/view/View;F)V
:cond_0
sget v0, Landroidx/recyclerview/R$id;->item_touch_helper_previous_elevation:I
const/4 v1, 0x0
.line 80
invoke-virtual {p1, v0, v1}, Landroid/view/View;->setTag(ILjava/lang/Object;)V
const/4 v0, 0x0
.line 83
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
.line 84
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationY(F)V
return-void
.end method
.method public onDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;FFIZ)V
.locals 0
if-eqz p7, :cond_0
sget p1, Landroidx/recyclerview/R$id;->item_touch_helper_previous_elevation:I
.line 38
invoke-virtual {p3, p1}, Landroid/view/View;->getTag(I)Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_0
.line 40
invoke-static {p3}, Landroidx/core/view/ViewCompat;->getElevation(Landroid/view/View;)F
move-result p1
invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object p1
const/high16 p6, 0x3f800000 # 1.0f
.line 41
invoke-static {p2, p3}, Landroidx/recyclerview/widget/ItemTouchUIUtilImpl;->findMaxElevation(Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;)F
move-result p2
add-float/2addr p2, p6
.line 42
invoke-static {p3, p2}, Landroidx/core/view/ViewCompat;->setElevation(Landroid/view/View;F)V
sget p2, Landroidx/recyclerview/R$id;->item_touch_helper_previous_elevation:I
.line 43
invoke-virtual {p3, p2, p1}, Landroid/view/View;->setTag(ILjava/lang/Object;)V
.line 48
:cond_0
invoke-virtual {p3, p4}, Landroid/view/View;->setTranslationX(F)V
.line 49
invoke-virtual {p3, p5}, Landroid/view/View;->setTranslationY(F)V
return-void
.end method
.method public onDrawOver(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;FFIZ)V
.locals 0
return-void
.end method
.method public onSelected(Landroid/view/View;)V
.locals 0
return-void
.end method

View File

@@ -0,0 +1,171 @@
.class Landroidx/recyclerview/widget/LayoutState;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field static final INVALID_LAYOUT:I = -0x80000000
.field static final ITEM_DIRECTION_HEAD:I = -0x1
.field static final ITEM_DIRECTION_TAIL:I = 0x1
.field static final LAYOUT_END:I = 0x1
.field static final LAYOUT_START:I = -0x1
# instance fields
.field mAvailable:I
.field mCurrentPosition:I
.field mEndLine:I
.field mInfinite:Z
.field mItemDirection:I
.field mLayoutDirection:I
.field mRecycle:Z
.field mStartLine:I
.field mStopInFocusable:Z
# direct methods
.method public constructor <init>()V
.locals 1
.line 25
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/recyclerview/widget/LayoutState;->mRecycle:Z
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/LayoutState;->mStartLine:I
iput v0, p0, Landroidx/recyclerview/widget/LayoutState;->mEndLine:I
return-void
.end method
# virtual methods
.method public hasMore(Landroidx/recyclerview/widget/RecyclerView$State;)Z
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/LayoutState;->mCurrentPosition:I
if-ltz v0, :cond_0
.line 88
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result p1
if-ge v0, p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public next(Landroidx/recyclerview/widget/RecyclerView$Recycler;)Landroid/view/View;
.locals 2
iget v0, p0, Landroidx/recyclerview/widget/LayoutState;->mCurrentPosition:I
.line 98
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getViewForPosition(I)Landroid/view/View;
move-result-object p1
iget v0, p0, Landroidx/recyclerview/widget/LayoutState;->mCurrentPosition:I
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mItemDirection:I
add-int/2addr v0, v1
iput v0, p0, Landroidx/recyclerview/widget/LayoutState;->mCurrentPosition:I
return-object p1
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 105
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "LayoutState{mAvailable="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mAvailable:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mCurrentPosition="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mCurrentPosition:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mItemDirection="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mItemDirection:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mLayoutDirection="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mLayoutDirection:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mStartLine="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mStartLine:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mEndLine="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LayoutState;->mEndLine:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,425 @@
.class Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/LinearLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "AnchorInfo"
.end annotation
# instance fields
.field mCoordinate:I
.field mLayoutFromEnd:Z
.field mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.field mPosition:I
.field mValid:Z
# direct methods
.method public constructor <init>()V
.locals 0
.line 2482
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2483
invoke-virtual {p0}, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->reset()V
return-void
.end method
# virtual methods
.method public assignCoordinateFromPadding()V
.locals 1
iget-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mLayoutFromEnd:Z
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2499
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getEndAfterPadding()I
move-result v0
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2500
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getStartAfterPadding()I
move-result v0
:goto_0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
return-void
.end method
.method public assignFromView(Landroid/view/View;I)V
.locals 1
iget-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mLayoutFromEnd:Z
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2568
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result p1
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2569
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpaceChange()I
move-result v0
add-int/2addr p1, v0
iput p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2571
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
:goto_0
iput p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
return-void
.end method
.method public assignFromViewAndKeepVisibleRect(Landroid/view/View;I)V
.locals 4
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2520
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpaceChange()I
move-result v0
if-ltz v0, :cond_0
.line 2522
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->assignFromView(Landroid/view/View;I)V
return-void
:cond_0
iput p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
iget-boolean p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mLayoutFromEnd:Z
const/4 v1, 0x0
if-eqz p2, :cond_1
iget-object p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2527
invoke-virtual {p2}, Landroidx/recyclerview/widget/OrientationHelper;->getEndAfterPadding()I
move-result p2
sub-int/2addr p2, v0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2528
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result v0
sub-int/2addr p2, v0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2530
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getEndAfterPadding()I
move-result v0
sub-int/2addr v0, p2
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
if-lez p2, :cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2533
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
move-result v0
iget v2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
sub-int/2addr v2, v0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2535
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getStartAfterPadding()I
move-result v0
iget-object v3, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2536
invoke-virtual {v3, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p1
sub-int/2addr p1, v0
.line 2538
invoke-static {p1, v1}, Ljava/lang/Math;->min(II)I
move-result p1
add-int/2addr v0, p1
sub-int/2addr v2, v0
if-gez v2, :cond_2
iget p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
neg-int v0, v2
.line 2542
invoke-static {p2, v0}, Ljava/lang/Math;->min(II)I
move-result p2
add-int/2addr p1, p2
iput p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
goto :goto_0
:cond_1
iget-object p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2546
invoke-virtual {p2, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p2
iget-object v2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2547
invoke-virtual {v2}, Landroidx/recyclerview/widget/OrientationHelper;->getStartAfterPadding()I
move-result v2
sub-int v2, p2, v2
iput p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
if-lez v2, :cond_2
iget-object v3, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2551
invoke-virtual {v3, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
move-result v3
add-int/2addr p2, v3
iget-object v3, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2552
invoke-virtual {v3}, Landroidx/recyclerview/widget/OrientationHelper;->getEndAfterPadding()I
move-result v3
sub-int/2addr v3, v0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2555
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result p1
sub-int/2addr v3, p1
iget-object p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.line 2556
invoke-virtual {p1}, Landroidx/recyclerview/widget/OrientationHelper;->getEndAfterPadding()I
move-result p1
.line 2557
invoke-static {v1, v3}, Ljava/lang/Math;->min(II)I
move-result v0
sub-int/2addr p1, v0
sub-int/2addr p1, p2
if-gez p1, :cond_2
iget p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
neg-int p1, p1
.line 2560
invoke-static {v2, p1}, Ljava/lang/Math;->min(II)I
move-result p1
sub-int/2addr p2, p1
iput p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
:cond_2
:goto_0
return-void
.end method
.method public isViewValidAsAnchor(Landroid/view/View;Landroidx/recyclerview/widget/RecyclerView$State;)Z
.locals 1
.line 2514
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object p1
check-cast p1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 2515
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
move-result v0
if-nez v0, :cond_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
move-result v0
if-ltz v0, :cond_0
.line 2516
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
move-result p1
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result p2
if-ge p1, p2, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public reset()V
.locals 1
const/4 v0, -0x1
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
const/high16 v0, -0x80000000
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mLayoutFromEnd:Z
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mValid:Z
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 2
.line 2505
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "AnchorInfo{mPosition="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mCoordinate="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", mLayoutFromEnd="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mLayoutFromEnd:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v1, ", mValid="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mValid:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View File

@@ -0,0 +1,53 @@
.class public Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/LinearLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "LayoutChunkResult"
.end annotation
# instance fields
.field public mConsumed:I
.field public mFinished:Z
.field public mFocusable:Z
.field public mIgnoreConsumed:Z
# direct methods
.method public constructor <init>()V
.locals 0
.line 2578
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public resetInternal()V
.locals 1
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;->mConsumed:I
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;->mFinished:Z
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;->mIgnoreConsumed:Z
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;->mFocusable:Z
return-void
.end method

View File

@@ -0,0 +1,408 @@
.class Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/LinearLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "LayoutState"
.end annotation
# static fields
.field static final INVALID_LAYOUT:I = -0x80000000
.field static final ITEM_DIRECTION_HEAD:I = -0x1
.field static final ITEM_DIRECTION_TAIL:I = 0x1
.field static final LAYOUT_END:I = 0x1
.field static final LAYOUT_START:I = -0x1
.field static final SCROLLING_OFFSET_NaN:I = -0x80000000
.field static final TAG:Ljava/lang/String; = "LLM#LayoutState"
# instance fields
.field mAvailable:I
.field mCurrentPosition:I
.field mExtraFillSpace:I
.field mInfinite:Z
.field mIsPreLayout:Z
.field mItemDirection:I
.field mLastScrollDelta:I
.field mLayoutDirection:I
.field mNoRecycleSpace:I
.field mOffset:I
.field mRecycle:Z
.field mScrapList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field mScrollingOffset:I
# direct methods
.method public constructor <init>()V
.locals 1
.line 2220
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mRecycle:Z
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mExtraFillSpace:I
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mNoRecycleSpace:I
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mIsPreLayout:Z
const/4 v0, 0x0
iput-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
return-void
.end method
.method private nextViewFromScrapList()Landroid/view/View;
.locals 5
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
.line 2343
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_2
iget-object v2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
.line 2345
invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v2, v2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
.line 2347
invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 2348
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
move-result v4
if-eqz v4, :cond_0
goto :goto_1
:cond_0
iget v4, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
.line 2351
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
move-result v3
if-ne v4, v3, :cond_1
.line 2352
invoke-virtual {p0, v2}, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->assignPositionFromScrapList(Landroid/view/View;)V
return-object v2
:cond_1
:goto_1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_2
const/4 v0, 0x0
return-object v0
.end method
# virtual methods
.method public assignPositionFromScrapList()V
.locals 1
const/4 v0, 0x0
.line 2360
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->assignPositionFromScrapList(Landroid/view/View;)V
return-void
.end method
.method public assignPositionFromScrapList(Landroid/view/View;)V
.locals 0
.line 2364
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->nextViewInLimitedList(Landroid/view/View;)Landroid/view/View;
move-result-object p1
if-nez p1, :cond_0
const/4 p1, -0x1
iput p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
goto :goto_0
.line 2368
:cond_0
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object p1
check-cast p1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 2369
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
:goto_0
return-void
.end method
.method public hasMore(Landroidx/recyclerview/widget/RecyclerView$State;)Z
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
if-ltz v0, :cond_0
.line 2317
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
move-result p1
if-ge v0, p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
return p1
.end method
.method public log()V
.locals 2
.line 2404
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "avail:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mAvailable:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", ind:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", dir:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", offset:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mOffset:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", layoutDir:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mLayoutDirection:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
return-void
.end method
.method public next(Landroidx/recyclerview/widget/RecyclerView$Recycler;)Landroid/view/View;
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
if-eqz v0, :cond_0
.line 2328
invoke-direct {p0}, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->nextViewFromScrapList()Landroid/view/View;
move-result-object p1
return-object p1
:cond_0
iget v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
.line 2330
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$Recycler;->getViewForPosition(I)Landroid/view/View;
move-result-object p1
iget v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
iget v1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
add-int/2addr v0, v1
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
return-object p1
.end method
.method public nextViewInLimitedList(Landroid/view/View;)Landroid/view/View;
.locals 7
iget-object v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
.line 2374
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x0
const v2, 0x7fffffff
const/4 v3, 0x0
:goto_0
if-ge v3, v0, :cond_4
iget-object v4, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
.line 2381
invoke-interface {v4, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
iget-object v4, v4, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
.line 2383
invoke-virtual {v4}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v5
check-cast v5, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
if-eq v4, p1, :cond_3
.line 2384
invoke-virtual {v5}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
move-result v6
if-eqz v6, :cond_0
goto :goto_1
.line 2387
:cond_0
invoke-virtual {v5}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
move-result v5
iget v6, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
sub-int/2addr v5, v6
iget v6, p0, Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
mul-int/2addr v5, v6
if-gez v5, :cond_1
goto :goto_1
:cond_1
if-ge v5, v2, :cond_3
move-object v1, v4
if-nez v5, :cond_2
goto :goto_2
:cond_2
move v2, v5
:cond_3
:goto_1
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_4
:goto_2
return-object v1
.end method

View File

@@ -0,0 +1,81 @@
.class Landroidx/recyclerview/widget/LinearLayoutManager$SavedState$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/Parcelable$Creator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroid/os/Parcelable$Creator<",
"Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 2459
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public createFromParcel(Landroid/os/Parcel;)Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
.locals 1
.line 2462
new-instance v0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
invoke-direct {v0, p1}, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;-><init>(Landroid/os/Parcel;)V
return-object v0
.end method
.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
.locals 0
.line 2459
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
move-result-object p1
return-object p1
.end method
.method public newArray(I)[Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
.locals 0
.line 2467
new-array p1, p1, [Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
return-object p1
.end method
.method public bridge synthetic newArray(I)[Ljava/lang/Object;
.locals 0
.line 2459
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState$1;->newArray(I)[Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,196 @@
.class public Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/os/Parcelable;
# annotations
.annotation build Landroid/annotation/SuppressLint;
value = {
"BanParcelableUsage"
}
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/LinearLayoutManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "SavedState"
.end annotation
# static fields
.field public static final CREATOR:Landroid/os/Parcelable$Creator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/os/Parcelable$Creator<",
"Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;",
">;"
}
.end annotation
.end field
# instance fields
.field mAnchorLayoutFromEnd:Z
.field mAnchorOffset:I
.field mAnchorPosition:I
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 2458
new-instance v0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState$1;
invoke-direct {v0}, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState$1;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 2422
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public constructor <init>(Landroid/os/Parcel;)V
.locals 1
.line 2426
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2427
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
.line 2428
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
.line 2429
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result p1
const/4 v0, 0x1
if-ne p1, v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorLayoutFromEnd:Z
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;)V
.locals 1
.line 2432
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2433
iget v0, p1, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
.line 2434
iget v0, p1, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
.line 2435
iget-boolean p1, p1, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorLayoutFromEnd:Z
iput-boolean p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorLayoutFromEnd:Z
return-void
.end method
# virtual methods
.method public describeContents()I
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public hasValidAnchor()Z
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
if-ltz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public invalidateAnchor()V
.locals 1
const/4 v0, -0x1
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
return-void
.end method
.method public writeToParcel(Landroid/os/Parcel;I)V
.locals 0
iget p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
.line 2453
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
.line 2454
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget-boolean p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorLayoutFromEnd:Z
.line 2455
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
return-void
.end method

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,717 @@
.class public Landroidx/recyclerview/widget/LinearSmoothScroller;
.super Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;
.source "SourceFile"
# static fields
.field private static final DEBUG:Z = false
.field private static final MILLISECONDS_PER_INCH:F = 25.0f
.field public static final SNAP_TO_ANY:I = 0x0
.field public static final SNAP_TO_END:I = 0x1
.field public static final SNAP_TO_START:I = -0x1
.field private static final TARGET_SEEK_EXTRA_SCROLL_RATIO:F = 1.2f
.field private static final TARGET_SEEK_SCROLL_DISTANCE_PX:I = 0x2710
# instance fields
.field protected final mDecelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.field private final mDisplayMetrics:Landroid/util/DisplayMetrics;
.field private mHasCalculatedMillisPerPixel:Z
.field protected mInterimTargetDx:I
.field protected mInterimTargetDy:I
.field protected final mLinearInterpolator:Landroid/view/animation/LinearInterpolator;
.field private mMillisPerPixel:F
.field protected mTargetVector:Landroid/graphics/PointF;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
.line 93
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;-><init>()V
.line 79
new-instance v0, Landroid/view/animation/LinearInterpolator;
invoke-direct {v0}, Landroid/view/animation/LinearInterpolator;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mLinearInterpolator:Landroid/view/animation/LinearInterpolator;
.line 81
new-instance v0, Landroid/view/animation/DecelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/DecelerateInterpolator;-><init>()V
iput-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mDecelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
const/4 v0, 0x0
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mHasCalculatedMillisPerPixel:Z
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
.line 94
invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p1
invoke-virtual {p1}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object p1
iput-object p1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mDisplayMetrics:Landroid/util/DisplayMetrics;
return-void
.end method
.method private clampApplyScroll(II)I
.locals 0
sub-int p2, p1, p2
mul-int/2addr p1, p2
if-gtz p1, :cond_0
const/4 p1, 0x0
return p1
:cond_0
return p2
.end method
.method private getSpeedPerPixel()F
.locals 1
iget-boolean v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mHasCalculatedMillisPerPixel:Z
if-nez v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mDisplayMetrics:Landroid/util/DisplayMetrics;
.line 171
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateSpeedPerPixel(Landroid/util/DisplayMetrics;)F
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mMillisPerPixel:F
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mHasCalculatedMillisPerPixel:Z
:cond_0
iget v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mMillisPerPixel:F
return v0
.end method
# virtual methods
.method public calculateDtToFit(IIIII)I
.locals 1
const/4 v0, -0x1
if-eq p5, v0, :cond_4
if-eqz p5, :cond_1
const/4 p1, 0x1
if-ne p5, p1, :cond_0
sub-int/2addr p4, p2
return p4
.line 296
:cond_0
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "snap preference should be one of the constants defined in SmoothScroller, starting with SNAP_"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
:cond_1
sub-int/2addr p3, p1
if-lez p3, :cond_2
return p3
:cond_2
sub-int/2addr p4, p2
if-gez p4, :cond_3
return p4
:cond_3
const/4 p1, 0x0
return p1
:cond_4
sub-int/2addr p3, p1
return p3
.end method
.method public calculateDxToMakeVisible(Landroid/view/View;I)I
.locals 10
.line 339
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
move-result-object v0
if-eqz v0, :cond_1
.line 340
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v1
if-nez v1, :cond_0
goto :goto_0
.line 344
:cond_0
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 345
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getDecoratedLeft(Landroid/view/View;)I
move-result v2
iget v3, v1, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I
sub-int v5, v2, v3
.line 346
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getDecoratedRight(Landroid/view/View;)I
move-result p1
iget v1, v1, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I
add-int v6, p1, v1
.line 347
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
move-result v7
.line 348
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getWidth()I
move-result p1
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingRight()I
move-result v0
sub-int v8, p1, v0
move-object v4, p0
move v9, p2
.line 349
invoke-virtual/range {v4 .. v9}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateDtToFit(IIIII)I
move-result p1
return p1
:cond_1
:goto_0
const/4 p1, 0x0
return p1
.end method
.method public calculateDyToMakeVisible(Landroid/view/View;I)I
.locals 10
.line 314
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
move-result-object v0
if-eqz v0, :cond_1
.line 315
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v1
if-nez v1, :cond_0
goto :goto_0
.line 319
:cond_0
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.line 320
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getDecoratedTop(Landroid/view/View;)I
move-result v2
iget v3, v1, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I
sub-int v5, v2, v3
.line 321
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getDecoratedBottom(Landroid/view/View;)I
move-result p1
iget v1, v1, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I
add-int v6, p1, v1
.line 322
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingTop()I
move-result v7
.line 323
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getHeight()I
move-result p1
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingBottom()I
move-result v0
sub-int v8, p1, v0
move-object v4, p0
move v9, p2
.line 324
invoke-virtual/range {v4 .. v9}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateDtToFit(IIIII)I
move-result p1
return p1
:cond_1
:goto_0
const/4 p1, 0x0
return p1
.end method
.method public calculateSpeedPerPixel(Landroid/util/DisplayMetrics;)F
.locals 1
.line 166
iget p1, p1, Landroid/util/DisplayMetrics;->densityDpi:I
int-to-float p1, p1
const/high16 v0, 0x41c80000 # 25.0f
div-float/2addr v0, p1
return v0
.end method
.method public calculateTimeForDeceleration(I)I
.locals 4
.line 191
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateTimeForScrolling(I)I
move-result p1
int-to-double v0, p1
const-wide v2, 0x3fd57a786c22680aL # 0.3356
div-double/2addr v0, v2
invoke-static {v0, v1}, Ljava/lang/Math;->ceil(D)D
move-result-wide v0
double-to-int p1, v0
return p1
.end method
.method public calculateTimeForScrolling(I)I
.locals 2
.line 205
invoke-static {p1}, Ljava/lang/Math;->abs(I)I
move-result p1
int-to-float p1, p1
invoke-direct {p0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->getSpeedPerPixel()F
move-result v0
mul-float/2addr p1, v0
float-to-double v0, p1
invoke-static {v0, v1}, Ljava/lang/Math;->ceil(D)D
move-result-wide v0
double-to-int p1, v0
return p1
.end method
.method public getHorizontalSnapPreference()I
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mTargetVector:Landroid/graphics/PointF;
if-eqz v0, :cond_2
.line 218
iget v0, v0, Landroid/graphics/PointF;->x:F
const/4 v1, 0x0
cmpl-float v2, v0, v1
if-nez v2, :cond_0
goto :goto_0
:cond_0
cmpl-float v0, v0, v1
if-lez v0, :cond_1
const/4 v0, 0x1
goto :goto_1
:cond_1
const/4 v0, -0x1
goto :goto_1
:cond_2
:goto_0
const/4 v0, 0x0
:goto_1
return v0
.end method
.method public getVerticalSnapPreference()I
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mTargetVector:Landroid/graphics/PointF;
if-eqz v0, :cond_2
.line 232
iget v0, v0, Landroid/graphics/PointF;->y:F
const/4 v1, 0x0
cmpl-float v2, v0, v1
if-nez v2, :cond_0
goto :goto_0
:cond_0
cmpl-float v0, v0, v1
if-lez v0, :cond_1
const/4 v0, 0x1
goto :goto_1
:cond_1
const/4 v0, -0x1
goto :goto_1
:cond_2
:goto_0
const/4 v0, 0x0
:goto_1
return v0
.end method
.method public onSeekTargetStep(IILandroidx/recyclerview/widget/RecyclerView$State;Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;)V
.locals 0
.line 127
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getChildCount()I
move-result p3
if-nez p3, :cond_0
.line 128
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->stop()V
return-void
:cond_0
iget p3, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
.line 137
invoke-direct {p0, p3, p1}, Landroidx/recyclerview/widget/LinearSmoothScroller;->clampApplyScroll(II)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
iget p1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
.line 138
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/LinearSmoothScroller;->clampApplyScroll(II)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
iget p2, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
if-nez p2, :cond_1
if-nez p1, :cond_1
.line 141
invoke-virtual {p0, p4}, Landroidx/recyclerview/widget/LinearSmoothScroller;->updateActionForInterimTarget(Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;)V
:cond_1
return-void
.end method
.method public onStart()V
.locals 0
return-void
.end method
.method public onStop()V
.locals 1
const/4 v0, 0x0
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
const/4 v0, 0x0
iput-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mTargetVector:Landroid/graphics/PointF;
return-void
.end method
.method public onTargetFound(Landroid/view/View;Landroidx/recyclerview/widget/RecyclerView$State;Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;)V
.locals 2
.line 110
invoke-virtual {p0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->getHorizontalSnapPreference()I
move-result p2
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateDxToMakeVisible(Landroid/view/View;I)I
move-result p2
.line 111
invoke-virtual {p0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->getVerticalSnapPreference()I
move-result v0
invoke-virtual {p0, p1, v0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateDyToMakeVisible(Landroid/view/View;I)I
move-result p1
mul-int v0, p2, p2
mul-int v1, p1, p1
add-int/2addr v0, v1
int-to-double v0, v0
.line 112
invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v0
double-to-int v0, v0
.line 113
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateTimeForDeceleration(I)I
move-result v0
if-lez v0, :cond_0
neg-int p2, p2
neg-int p1, p1
iget-object v1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mDecelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.line 115
invoke-virtual {p3, p2, p1, v0, v1}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;->update(IIILandroid/view/animation/Interpolator;)V
:cond_0
return-void
.end method
.method public updateActionForInterimTarget(Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;)V
.locals 4
.line 244
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getTargetPosition()I
move-result v0
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->computeScrollVectorForPosition(I)Landroid/graphics/PointF;
move-result-object v0
if-eqz v0, :cond_1
.line 245
iget v1, v0, Landroid/graphics/PointF;->x:F
const/4 v2, 0x0
cmpl-float v1, v1, v2
if-nez v1, :cond_0
iget v1, v0, Landroid/graphics/PointF;->y:F
cmpl-float v1, v1, v2
if-nez v1, :cond_0
goto :goto_0
.line 251
:cond_0
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->normalize(Landroid/graphics/PointF;)V
iput-object v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mTargetVector:Landroid/graphics/PointF;
.line 254
iget v1, v0, Landroid/graphics/PointF;->x:F
const v2, 0x461c4000 # 10000.0f
mul-float/2addr v1, v2
float-to-int v1, v1
iput v1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
.line 255
iget v0, v0, Landroid/graphics/PointF;->y:F
mul-float/2addr v0, v2
float-to-int v0, v0
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
const/16 v0, 0x2710
.line 256
invoke-virtual {p0, v0}, Landroidx/recyclerview/widget/LinearSmoothScroller;->calculateTimeForScrolling(I)I
move-result v0
iget v1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
int-to-float v1, v1
const v2, 0x3f99999a # 1.2f
mul-float/2addr v1, v2
float-to-int v1, v1
iget v3, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
int-to-float v3, v3
mul-float/2addr v3, v2
float-to-int v3, v3
int-to-float v0, v0
mul-float/2addr v0, v2
float-to-int v0, v0
iget-object v2, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mLinearInterpolator:Landroid/view/animation/LinearInterpolator;
.line 260
invoke-virtual {p1, v1, v3, v0, v2}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;->update(IIILandroid/view/animation/Interpolator;)V
return-void
.line 246
:cond_1
:goto_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getTargetPosition()I
move-result v0
.line 247
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;->jumpTo(I)V
.line 248
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->stop()V
return-void
.end method

View File

@@ -0,0 +1,692 @@
.class public Landroidx/recyclerview/widget/LinearSnapHelper;
.super Landroidx/recyclerview/widget/SnapHelper;
.source "SourceFile"
# static fields
.field private static final INVALID_DISTANCE:F = 1.0f
# instance fields
.field private mHorizontalHelper:Landroidx/recyclerview/widget/OrientationHelper;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
.field private mVerticalHelper:Landroidx/recyclerview/widget/OrientationHelper;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 0
.line 33
invoke-direct {p0}, Landroidx/recyclerview/widget/SnapHelper;-><init>()V
return-void
.end method
.method private computeDistancePerChild(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;)F
.locals 10
.line 226
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildCount()I
move-result v0
const/high16 v1, 0x3f800000 # 1.0f
if-nez v0, :cond_0
return v1
:cond_0
const/4 v2, 0x0
const v3, 0x7fffffff
const/high16 v4, -0x80000000
const/4 v5, 0x0
move v6, v5
move v5, v4
move v4, v3
move-object v3, v2
:goto_0
if-ge v6, v0, :cond_4
.line 232
invoke-virtual {p1, v6}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
move-result-object v7
.line 233
invoke-virtual {p1, v7}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPosition(Landroid/view/View;)I
move-result v8
const/4 v9, -0x1
if-ne v8, v9, :cond_1
goto :goto_1
:cond_1
if-ge v8, v4, :cond_2
move-object v2, v7
move v4, v8
:cond_2
if-le v8, v5, :cond_3
move-object v3, v7
move v5, v8
:cond_3
:goto_1
add-int/lit8 v6, v6, 0x1
goto :goto_0
:cond_4
if-eqz v2, :cond_7
if-nez v3, :cond_5
goto :goto_2
.line 249
:cond_5
invoke-virtual {p2, v2}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p1
.line 250
invoke-virtual {p2, v3}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result v0
.line 249
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
.line 251
invoke-virtual {p2, v2}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result v0
.line 252
invoke-virtual {p2, v3}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result p2
.line 251
invoke-static {v0, p2}, Ljava/lang/Math;->max(II)I
move-result p2
sub-int/2addr p2, p1
if-nez p2, :cond_6
return v1
:cond_6
int-to-float p1, p2
mul-float/2addr p1, v1
sub-int/2addr v5, v4
add-int/lit8 v5, v5, 0x1
int-to-float p2, v5
div-float/2addr p1, p2
return p1
:cond_7
:goto_2
return v1
.end method
.method private distanceToCenter(Landroid/view/View;Landroidx/recyclerview/widget/OrientationHelper;)I
.locals 1
.param p1 # Landroid/view/View;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 142
invoke-virtual {p2, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result v0
.line 143
invoke-virtual {p2, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
move-result p1
div-int/lit8 p1, p1, 0x2
add-int/2addr v0, p1
.line 144
invoke-virtual {p2}, Landroidx/recyclerview/widget/OrientationHelper;->getStartAfterPadding()I
move-result p1
invoke-virtual {p2}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpace()I
move-result p2
div-int/lit8 p2, p2, 0x2
add-int/2addr p1, p2
sub-int/2addr v0, p1
return v0
.end method
.method private estimateNextPositionDiffForFling(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;II)I
.locals 2
.line 161
invoke-virtual {p0, p3, p4}, Landroidx/recyclerview/widget/SnapHelper;->calculateScrollDistance(II)[I
move-result-object p3
.line 162
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/LinearSnapHelper;->computeDistancePerChild(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;)F
move-result p1
const/4 p2, 0x0
cmpg-float p2, p1, p2
const/4 p4, 0x0
if-gtz p2, :cond_0
return p4
.line 167
:cond_0
aget p2, p3, p4
invoke-static {p2}, Ljava/lang/Math;->abs(I)I
move-result p2
const/4 v0, 0x1
aget v1, p3, v0
invoke-static {v1}, Ljava/lang/Math;->abs(I)I
move-result v1
if-le p2, v1, :cond_1
aget p2, p3, p4
goto :goto_0
:cond_1
aget p2, p3, v0
:goto_0
int-to-float p2, p2
div-float/2addr p2, p1
.line 168
invoke-static {p2}, Ljava/lang/Math;->round(F)I
move-result p1
return p1
.end method
.method private findCenterView(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;)Landroid/view/View;
.locals 8
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 183
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildCount()I
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_0
return-object v1
.line 189
:cond_0
invoke-virtual {p2}, Landroidx/recyclerview/widget/OrientationHelper;->getStartAfterPadding()I
move-result v2
invoke-virtual {p2}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpace()I
move-result v3
div-int/lit8 v3, v3, 0x2
add-int/2addr v2, v3
const v3, 0x7fffffff
const/4 v4, 0x0
:goto_0
if-ge v4, v0, :cond_2
.line 193
invoke-virtual {p1, v4}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
move-result-object v5
.line 194
invoke-virtual {p2, v5}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result v6
.line 195
invoke-virtual {p2, v5}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
move-result v7
div-int/lit8 v7, v7, 0x2
add-int/2addr v6, v7
sub-int/2addr v6, v2
.line 196
invoke-static {v6}, Ljava/lang/Math;->abs(I)I
move-result v6
if-ge v6, v3, :cond_1
move-object v1, v5
move v3, v6
:cond_1
add-int/lit8 v4, v4, 0x1
goto :goto_0
:cond_2
return-object v1
.end method
.method private getHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/LinearSnapHelper;->mHorizontalHelper:Landroidx/recyclerview/widget/OrientationHelper;
if-eqz v0, :cond_0
.line 271
iget-object v0, v0, Landroidx/recyclerview/widget/OrientationHelper;->mLayoutManager:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
if-eq v0, p1, :cond_1
.line 272
:cond_0
invoke-static {p1}, Landroidx/recyclerview/widget/OrientationHelper;->createHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object p1
iput-object p1, p0, Landroidx/recyclerview/widget/LinearSnapHelper;->mHorizontalHelper:Landroidx/recyclerview/widget/OrientationHelper;
:cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/LinearSnapHelper;->mHorizontalHelper:Landroidx/recyclerview/widget/OrientationHelper;
return-object p1
.end method
.method private getVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
.locals 1
.param p1 # Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/LinearSnapHelper;->mVerticalHelper:Landroidx/recyclerview/widget/OrientationHelper;
if-eqz v0, :cond_0
.line 262
iget-object v0, v0, Landroidx/recyclerview/widget/OrientationHelper;->mLayoutManager:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
if-eq v0, p1, :cond_1
.line 263
:cond_0
invoke-static {p1}, Landroidx/recyclerview/widget/OrientationHelper;->createVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object p1
iput-object p1, p0, Landroidx/recyclerview/widget/LinearSnapHelper;->mVerticalHelper:Landroidx/recyclerview/widget/OrientationHelper;
:cond_1
iget-object p1, p0, Landroidx/recyclerview/widget/LinearSnapHelper;->mVerticalHelper:Landroidx/recyclerview/widget/OrientationHelper;
return-object p1
.end method
# virtual methods
.method public calculateDistanceToFinalSnap(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroid/view/View;)[I
.locals 4
.param p1 # Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/View;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
const/4 v0, 0x2
new-array v0, v0, [I
.line 47
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_0
.line 49
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v1
.line 48
invoke-direct {p0, p2, v1}, Landroidx/recyclerview/widget/LinearSnapHelper;->distanceToCenter(Landroid/view/View;Landroidx/recyclerview/widget/OrientationHelper;)I
move-result v1
aput v1, v0, v2
goto :goto_0
:cond_0
aput v2, v0, v2
.line 54
:goto_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v1
const/4 v3, 0x1
if-eqz v1, :cond_1
.line 56
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object p1
.line 55
invoke-direct {p0, p2, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->distanceToCenter(Landroid/view/View;Landroidx/recyclerview/widget/OrientationHelper;)I
move-result p1
aput p1, v0, v3
goto :goto_1
:cond_1
aput v2, v0, v3
:goto_1
return-object v0
.end method
.method public findSnapView(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroid/view/View;
.locals 1
.line 133
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v0
if-eqz v0, :cond_0
.line 134
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v0
invoke-direct {p0, p1, v0}, Landroidx/recyclerview/widget/LinearSnapHelper;->findCenterView(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;)Landroid/view/View;
move-result-object p1
return-object p1
.line 135
:cond_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v0
if-eqz v0, :cond_1
.line 136
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v0
invoke-direct {p0, p1, v0}, Landroidx/recyclerview/widget/LinearSnapHelper;->findCenterView(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;)Landroid/view/View;
move-result-object p1
return-object p1
:cond_1
const/4 p1, 0x0
return-object p1
.end method
.method public findTargetSnapPosition(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;II)I
.locals 8
.line 66
instance-of v0, p1, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$ScrollVectorProvider;
const/4 v1, -0x1
if-nez v0, :cond_0
return v1
.line 70
:cond_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getItemCount()I
move-result v0
if-nez v0, :cond_1
return v1
.line 75
:cond_1
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->findSnapView(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroid/view/View;
move-result-object v2
if-nez v2, :cond_2
return v1
.line 80
:cond_2
invoke-virtual {p1, v2}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPosition(Landroid/view/View;)I
move-result v2
if-ne v2, v1, :cond_3
return v1
.line 85
:cond_3
move-object v3, p1
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$ScrollVectorProvider;
add-int/lit8 v4, v0, -0x1
.line 90
invoke-interface {v3, v4}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$ScrollVectorProvider;->computeScrollVectorForPosition(I)Landroid/graphics/PointF;
move-result-object v3
if-nez v3, :cond_4
return v1
.line 97
:cond_4
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v5
const/4 v6, 0x0
const/4 v7, 0x0
if-eqz v5, :cond_5
.line 99
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v5
.line 98
invoke-direct {p0, p1, v5, p2, v7}, Landroidx/recyclerview/widget/LinearSnapHelper;->estimateNextPositionDiffForFling(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;II)I
move-result p2
.line 100
iget v5, v3, Landroid/graphics/PointF;->x:F
cmpg-float v5, v5, v6
if-gez v5, :cond_6
neg-int p2, p2
goto :goto_0
:cond_5
move p2, v7
.line 106
:cond_6
:goto_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v5
if-eqz v5, :cond_7
.line 108
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v5
.line 107
invoke-direct {p0, p1, v5, v7, p3}, Landroidx/recyclerview/widget/LinearSnapHelper;->estimateNextPositionDiffForFling(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;II)I
move-result p3
.line 109
iget v3, v3, Landroid/graphics/PointF;->y:F
cmpg-float v3, v3, v6
if-gez v3, :cond_8
neg-int p3, p3
goto :goto_1
:cond_7
move p3, v7
.line 116
:cond_8
:goto_1
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result p1
if-eqz p1, :cond_9
move p2, p3
:cond_9
if-nez p2, :cond_a
return v1
:cond_a
add-int/2addr v2, p2
if-gez v2, :cond_b
goto :goto_2
:cond_b
move v7, v2
:goto_2
if-lt v7, v0, :cond_c
goto :goto_3
:cond_c
move v4, v7
:goto_3
return v4
.end method

View File

@@ -0,0 +1,72 @@
.class Landroidx/recyclerview/widget/ListAdapter$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/ListAdapter;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroidx/recyclerview/widget/AsyncListDiffer$ListListener<",
"TT;>;"
}
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/ListAdapter;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/ListAdapter;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/ListAdapter$1;->this$0:Landroidx/recyclerview/widget/ListAdapter;
.line 98
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onCurrentListChanged(Ljava/util/List;Ljava/util/List;)V
.locals 1
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Ljava/util/List<",
"TT;>;)V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter$1;->this$0:Landroidx/recyclerview/widget/ListAdapter;
.line 102
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/ListAdapter;->onCurrentListChanged(Ljava/util/List;Ljava/util/List;)V
return-void
.end method

View File

@@ -0,0 +1,267 @@
.class public abstract Landroidx/recyclerview/widget/ListAdapter;
.super Landroidx/recyclerview/widget/RecyclerView$Adapter;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"VH:",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"TVH;>;"
}
.end annotation
# instance fields
.field final mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncListDiffer<",
"TT;>;"
}
.end annotation
.end field
.field private final mListener:Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncListDiffer$ListListener<",
"TT;>;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/AsyncDifferConfig;)V
.locals 3
.param p1 # Landroidx/recyclerview/widget/AsyncDifferConfig;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/AsyncDifferConfig<",
"TT;>;)V"
}
.end annotation
.line 114
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
.line 97
new-instance v0, Landroidx/recyclerview/widget/ListAdapter$1;
invoke-direct {v0, p0}, Landroidx/recyclerview/widget/ListAdapter$1;-><init>(Landroidx/recyclerview/widget/ListAdapter;)V
iput-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mListener:Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
.line 115
new-instance v1, Landroidx/recyclerview/widget/AsyncListDiffer;
new-instance v2, Landroidx/recyclerview/widget/AdapterListUpdateCallback;
invoke-direct {v2, p0}, Landroidx/recyclerview/widget/AdapterListUpdateCallback;-><init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
invoke-direct {v1, v2, p1}, Landroidx/recyclerview/widget/AsyncListDiffer;-><init>(Landroidx/recyclerview/widget/ListUpdateCallback;Landroidx/recyclerview/widget/AsyncDifferConfig;)V
iput-object v1, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 116
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->addListListener(Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;)V
return-void
.end method
.method public constructor <init>(Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
.locals 4
.param p1 # Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;)V"
}
.end annotation
.line 107
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
.line 97
new-instance v0, Landroidx/recyclerview/widget/ListAdapter$1;
invoke-direct {v0, p0}, Landroidx/recyclerview/widget/ListAdapter$1;-><init>(Landroidx/recyclerview/widget/ListAdapter;)V
iput-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mListener:Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
.line 108
new-instance v1, Landroidx/recyclerview/widget/AsyncListDiffer;
new-instance v2, Landroidx/recyclerview/widget/AdapterListUpdateCallback;
invoke-direct {v2, p0}, Landroidx/recyclerview/widget/AdapterListUpdateCallback;-><init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
new-instance v3, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
invoke-direct {v3, p1}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;-><init>(Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
.line 109
invoke-virtual {v3}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->build()Landroidx/recyclerview/widget/AsyncDifferConfig;
move-result-object p1
invoke-direct {v1, v2, p1}, Landroidx/recyclerview/widget/AsyncListDiffer;-><init>(Landroidx/recyclerview/widget/ListUpdateCallback;Landroidx/recyclerview/widget/AsyncDifferConfig;)V
iput-object v1, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 110
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->addListListener(Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;)V
return-void
.end method
# virtual methods
.method public getCurrentList()Ljava/util/List;
.locals 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 173
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->getCurrentList()Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public getItem(I)Ljava/lang/Object;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)TT;"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 150
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->getCurrentList()Ljava/util/List;
move-result-object v0
invoke-interface {v0, p1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public getItemCount()I
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 155
invoke-virtual {v0}, Landroidx/recyclerview/widget/AsyncListDiffer;->getCurrentList()Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
return v0
.end method
.method public onCurrentListChanged(Ljava/util/List;Ljava/util/List;)V
.locals 0
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Ljava/util/List;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Ljava/util/List<",
"TT;>;)V"
}
.end annotation
return-void
.end method
.method public submitList(Ljava/util/List;)V
.locals 1
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;)V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 128
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/AsyncListDiffer;->submitList(Ljava/util/List;)V
return-void
.end method
.method public submitList(Ljava/util/List;Ljava/lang/Runnable;)V
.locals 1
.param p1 # Ljava/util/List;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"TT;>;",
"Ljava/lang/Runnable;",
")V"
}
.end annotation
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.line 146
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/AsyncListDiffer;->submitList(Ljava/util/List;Ljava/lang/Runnable;)V
return-void
.end method

View File

@@ -0,0 +1,21 @@
.class public interface abstract Landroidx/recyclerview/widget/ListUpdateCallback;
.super Ljava/lang/Object;
.source "SourceFile"
# virtual methods
.method public abstract onChanged(IILjava/lang/Object;)V
.param p3 # Ljava/lang/Object;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.end method
.method public abstract onInserted(II)V
.end method
.method public abstract onMoved(II)V
.end method
.method public abstract onRemoved(II)V
.end method

View File

@@ -0,0 +1,148 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil$1$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/MessageThreadUtil$1;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/MessageThreadUtil$1;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
.line 58
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
.line 61
iget-object v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-virtual {v0}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->next()Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object v0
:goto_0
if-eqz v0, :cond_3
.line 63
iget v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
const/4 v2, 0x1
if-eq v1, v2, :cond_2
const/4 v2, 0x2
if-eq v1, v2, :cond_1
const/4 v2, 0x3
if-eq v1, v2, :cond_0
.line 76
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Unsupported message, what="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "ThreadUtil"
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_1
:cond_0
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
.line 73
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$1;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v2, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
invoke-interface {v1, v2, v0}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->removeTile(II)V
goto :goto_1
.line 69
:cond_1
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->data:Ljava/lang/Object;
check-cast v1, Landroidx/recyclerview/widget/TileList$Tile;
iget-object v2, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
.line 70
iget-object v2, v2, Landroidx/recyclerview/widget/MessageThreadUtil$1;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
invoke-interface {v2, v0, v1}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->addTile(ILandroidx/recyclerview/widget/TileList$Tile;)V
goto :goto_1
:cond_2
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
.line 65
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$1;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v2, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
invoke-interface {v1, v2, v0}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->updateItemCount(II)V
:goto_1
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$1;
.line 78
iget-object v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-virtual {v0}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->next()Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object v0
goto :goto_0
:cond_3
return-void
.end method

View File

@@ -0,0 +1,157 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/MessageThreadUtil;->getMainThreadProxy(Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;)Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
# static fields
.field static final ADD_TILE:I = 0x2
.field static final REMOVE_TILE:I = 0x3
.field static final UPDATE_ITEM_COUNT:I = 0x1
# instance fields
.field private final mMainThreadHandler:Landroid/os/Handler;
.field private mMainThreadRunnable:Ljava/lang/Runnable;
.field final mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.field final synthetic this$0:Landroidx/recyclerview/widget/MessageThreadUtil;
.field final synthetic val$callback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/MessageThreadUtil;Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->this$0:Landroidx/recyclerview/widget/MessageThreadUtil;
iput-object p2, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 31
new-instance p1, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-direct {p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.line 32
new-instance p1, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object p2
invoke-direct {p1, p2}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mMainThreadHandler:Landroid/os/Handler;
.line 58
new-instance p1, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;
invoke-direct {p1, p0}, Landroidx/recyclerview/widget/MessageThreadUtil$1$1;-><init>(Landroidx/recyclerview/widget/MessageThreadUtil$1;)V
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mMainThreadRunnable:Ljava/lang/Runnable;
return-void
.end method
.method private sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.line 54
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
iget-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mMainThreadHandler:Landroid/os/Handler;
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$1;->mMainThreadRunnable:Ljava/lang/Runnable;
.line 55
invoke-virtual {p1, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
# virtual methods
.method public addTile(ILandroidx/recyclerview/widget/TileList$Tile;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;)V"
}
.end annotation
const/4 v0, 0x2
.line 45
invoke-static {v0, p1, p2}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(IILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$1;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method
.method public removeTile(II)V
.locals 1
const/4 v0, 0x3
.line 50
invoke-static {v0, p1, p2}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(III)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$1;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method
.method public updateItemCount(II)V
.locals 1
const/4 v0, 0x1
.line 40
invoke-static {v0, p1, p2}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(III)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$1;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method

View File

@@ -0,0 +1,188 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil$2$1;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/MessageThreadUtil$2;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/MessageThreadUtil$2;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 136
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 8
:goto_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 140
iget-object v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-virtual {v0}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->next()Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object v0
if-nez v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 167
iget-object v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
return-void
.line 144
:cond_0
iget v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
const/4 v2, 0x1
if-eq v1, v2, :cond_4
const/4 v2, 0x3
const/4 v3, 0x2
if-eq v1, v3, :cond_3
if-eq v1, v2, :cond_2
const/4 v2, 0x4
if-eq v1, v2, :cond_1
.line 164
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Unsupported message, what="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "ThreadUtil"
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_0
.line 160
:cond_1
iget-object v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->data:Ljava/lang/Object;
check-cast v0, Landroidx/recyclerview/widget/TileList$Tile;
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 161
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
invoke-interface {v1, v0}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
goto :goto_0
:cond_2
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 156
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iget v2, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
invoke-interface {v1, v2, v0}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->loadTile(II)V
goto :goto_0
:cond_3
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 150
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-virtual {v1, v3}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->removeMessages(I)V
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 151
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-virtual {v1, v2}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->removeMessages(I)V
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 152
iget-object v2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iget v3, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
iget v4, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
iget v5, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg3:I
iget v6, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg4:I
iget v7, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg5:I
invoke-interface/range {v2 .. v7}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->updateRange(IIIII)V
goto :goto_0
:cond_4
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 146
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-virtual {v1, v2}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->removeMessages(I)V
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;->this$1:Landroidx/recyclerview/widget/MessageThreadUtil$2;
.line 147
iget-object v1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$2;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
invoke-interface {v1, v0}, Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;->refresh(I)V
goto/16 :goto_0
.end method

View File

@@ -0,0 +1,232 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil$2;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/recyclerview/widget/MessageThreadUtil;->getBackgroundProxy(Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;)Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
# static fields
.field static final LOAD_TILE:I = 0x3
.field static final RECYCLE_TILE:I = 0x4
.field static final REFRESH:I = 0x1
.field static final UPDATE_RANGE:I = 0x2
# instance fields
.field private mBackgroundRunnable:Ljava/lang/Runnable;
.field mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
.field private final mExecutor:Ljava/util/concurrent/Executor;
.field final mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.field final synthetic this$0:Landroidx/recyclerview/widget/MessageThreadUtil;
.field final synthetic val$callback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/MessageThreadUtil;Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->this$0:Landroidx/recyclerview/widget/MessageThreadUtil;
iput-object p2, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->val$callback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.line 88
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 89
new-instance p1, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
invoke-direct {p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.line 90
sget-object p1, Landroid/os/AsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mExecutor:Ljava/util/concurrent/Executor;
.line 91
new-instance p1, Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 p2, 0x0
invoke-direct {p1, p2}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 136
new-instance p1, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;
invoke-direct {p1, p0}, Landroidx/recyclerview/widget/MessageThreadUtil$2$1;-><init>(Landroidx/recyclerview/widget/MessageThreadUtil$2;)V
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mBackgroundRunnable:Ljava/lang/Runnable;
return-void
.end method
.method private maybeExecuteBackgroundRunnable()V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
const/4 v2, 0x1
.line 131
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mExecutor:Ljava/util/concurrent/Executor;
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mBackgroundRunnable:Ljava/lang/Runnable;
.line 132
invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
:cond_0
return-void
.end method
.method private sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.line 121
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.line 122
invoke-direct {p0}, Landroidx/recyclerview/widget/MessageThreadUtil$2;->maybeExecuteBackgroundRunnable()V
return-void
.end method
.method private sendMessageAtFrontOfQueue(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$2;->mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.line 126
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->sendMessageAtFrontOfQueue(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.line 127
invoke-direct {p0}, Landroidx/recyclerview/widget/MessageThreadUtil$2;->maybeExecuteBackgroundRunnable()V
return-void
.end method
# virtual methods
.method public loadTile(II)V
.locals 1
const/4 v0, 0x3
.line 112
invoke-static {v0, p1, p2}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(III)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$2;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method
.method public recycleTile(Landroidx/recyclerview/widget/TileList$Tile;)V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;)V"
}
.end annotation
const/4 v0, 0x4
const/4 v1, 0x0
.line 117
invoke-static {v0, v1, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(IILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$2;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method
.method public refresh(I)V
.locals 2
const/4 v0, 0x1
const/4 v1, 0x0
.line 100
invoke-static {v0, p1, v1}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(IILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$2;->sendMessageAtFrontOfQueue(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method
.method public updateRange(IIIII)V
.locals 7
const/4 v0, 0x2
const/4 v6, 0x0
move v1, p1
move v2, p2
move v3, p3
move v4, p4
move v5, p5
.line 106
invoke-static/range {v0 .. v6}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(IIIIIILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$2;->sendMessageAtFrontOfQueue(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
return-void
.end method

View File

@@ -0,0 +1,231 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/MessageThreadUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "MessageQueue"
.end annotation
# instance fields
.field private mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
# direct methods
.method public constructor <init>()V
.locals 0
.line 233
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public declared-synchronized next()Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.locals 2
monitor-enter p0
:try_start_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v0, :cond_0
.line 239
monitor-exit p0
const/4 v0, 0x0
return-object v0
.line 242
:cond_0
:try_start_1
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iput-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 243
monitor-exit p0
return-object v0
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized removeMessages(I)V
.locals 4
monitor-enter p0
:goto_0
:try_start_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-eqz v0, :cond_0
.line 264
iget v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
if-ne v1, p1, :cond_0
.line 266
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iput-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.line 267
invoke-virtual {v0}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->recycle()V
goto :goto_0
:catchall_0
move-exception p1
goto :goto_3
:cond_0
if-eqz v0, :cond_2
.line 271
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:goto_1
if-eqz v1, :cond_2
.line 273
iget-object v2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.line 274
iget v3, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
if-ne v3, p1, :cond_1
.line 275
iput-object v2, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.line 276
invoke-virtual {v1}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->recycle()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_2
:cond_1
move-object v0, v1
:goto_2
move-object v1, v2
goto :goto_1
.line 283
:cond_2
monitor-exit p0
return-void
:goto_3
monitor-exit p0
throw p1
.end method
.method public declared-synchronized sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.locals 2
monitor-enter p0
:try_start_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-nez v0, :cond_0
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 254
monitor-exit p0
return-void
:catchall_0
move-exception p1
goto :goto_1
.line 257
:cond_0
:goto_0
:try_start_1
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-eqz v1, :cond_1
move-object v0, v1
goto :goto_0
.line 260
:cond_1
iput-object p1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
.line 261
monitor-exit p0
return-void
:goto_1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized sendMessageAtFrontOfQueue(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
.locals 1
monitor-enter p0
:try_start_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.line 247
iput-object v0, p1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iput-object p1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 249
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method

View File

@@ -0,0 +1,245 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/MessageThreadUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "SyncQueueItem"
.end annotation
# static fields
.field private static sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.field private static final sPoolLock:Ljava/lang/Object;
# instance fields
.field public arg1:I
.field public arg2:I
.field public arg3:I
.field public arg4:I
.field public arg5:I
.field public data:Ljava/lang/Object;
.field next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.field public what:I
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 180
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPoolLock:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>()V
.locals 0
.line 177
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static obtainMessage(III)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.locals 7
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
move v0, p0
move v1, p1
move v2, p2
.line 225
invoke-static/range {v0 .. v6}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(IIIIIILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p0
return-object p0
.end method
.method public static obtainMessage(IIIIIILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.locals 3
sget-object v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPoolLock:Ljava/lang/Object;
.line 204
monitor-enter v0
:try_start_0
sget-object v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-nez v1, :cond_0
.line 207
new-instance v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
invoke-direct {v1}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;-><init>()V
goto :goto_0
:catchall_0
move-exception p0
goto :goto_1
.line 210
:cond_0
iget-object v2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
sput-object v2, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
const/4 v2, 0x0
.line 211
iput-object v2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.line 213
:goto_0
iput p0, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
.line 214
iput p1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
.line 215
iput p2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
.line 216
iput p3, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg3:I
.line 217
iput p4, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg4:I
.line 218
iput p5, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg5:I
.line 219
iput-object p6, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->data:Ljava/lang/Object;
.line 220
monitor-exit v0
return-object v1
.line 221
:goto_1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
.end method
.method public static obtainMessage(IILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.locals 7
const/4 v2, 0x0
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
move v0, p0
move v1, p1
move-object v6, p2
.line 229
invoke-static/range {v0 .. v6}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->obtainMessage(IIIIIILjava/lang/Object;)Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public recycle()V
.locals 2
const/4 v0, 0x0
iput-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
const/4 v1, 0x0
iput v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg5:I
iput v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg4:I
iput v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg3:I
iput v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
iput v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
iput v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
iput-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->data:Ljava/lang/Object;
sget-object v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPoolLock:Ljava/lang/Object;
.line 194
monitor-enter v0
:try_start_0
sget-object v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-eqz v1, :cond_0
iput-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
goto :goto_0
:catchall_0
move-exception v1
goto :goto_1
:cond_0
:goto_0
sput-object p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.line 199
monitor-exit v0
return-void
:goto_1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method

View File

@@ -0,0 +1,79 @@
.class Landroidx/recyclerview/widget/MessageThreadUtil;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroidx/recyclerview/widget/ThreadUtil;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;,
Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Landroidx/recyclerview/widget/ThreadUtil<",
"TT;>;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 26
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getBackgroundProxy(Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;)Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;)",
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
.line 88
new-instance v0, Landroidx/recyclerview/widget/MessageThreadUtil$2;
invoke-direct {v0, p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$2;-><init>(Landroidx/recyclerview/widget/MessageThreadUtil;Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;)V
return-object v0
.end method
.method public getMainThreadProxy(Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;)Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;)",
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
.line 30
new-instance v0, Landroidx/recyclerview/widget/MessageThreadUtil$1;
invoke-direct {v0, p0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$1;-><init>(Landroidx/recyclerview/widget/MessageThreadUtil;Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;)V
return-object v0
.end method

View File

@@ -0,0 +1,224 @@
.class Landroidx/recyclerview/widget/NestedAdapterWrapper$1;
.super Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/NestedAdapterWrapper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field final synthetic this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
.locals 0
iput-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 48
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;-><init>()V
return-void
.end method
# virtual methods
.method public onChanged()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 51
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result v1
iput v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 52
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {v1, v0}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
return-void
.end method
.method public onItemRangeChanged(II)V
.locals 3
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 57
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
const/4 v2, 0x0
invoke-interface {v1, v0, p1, p2, v2}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onItemRangeChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;IILjava/lang/Object;)V
return-void
.end method
.method public onItemRangeChanged(IILjava/lang/Object;)V
.locals 2
.param p3 # Ljava/lang/Object;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 68
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {v1, v0, p1, p2, p3}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onItemRangeChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;IILjava/lang/Object;)V
return-void
.end method
.method public onItemRangeInserted(II)V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 78
iget v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
add-int/2addr v1, p2
iput v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
.line 79
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {v1, v0, p1, p2}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onItemRangeInserted(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
iget-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 83
iget p2, p1, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
if-lez p2, :cond_0
iget-object p1, p1, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 84
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getStateRestorationPolicy()Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;
move-result-object p1
sget-object p2, Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;->PREVENT_WHEN_EMPTY:Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;
if-ne p1, p2, :cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 85
iget-object p2, p1, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {p2, p1}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onStateRestorationPolicyChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
:cond_0
return-void
.end method
.method public onItemRangeMoved(III)V
.locals 1
const/4 v0, 0x1
if-ne p3, v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
const-string p3, "moving more than 1 item is not supported in RecyclerView"
.line 105
invoke-static {v0, p3}, Landroidx/core/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
iget-object p3, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 107
iget-object v0, p3, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {v0, p3, p1, p2}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onItemRangeMoved(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
return-void
.end method
.method public onItemRangeRemoved(II)V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 91
iget v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
sub-int/2addr v1, p2
iput v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
.line 92
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {v1, v0, p1, p2}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onItemRangeRemoved(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
iget-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 97
iget p2, p1, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
const/4 v0, 0x1
if-ge p2, v0, :cond_0
iget-object p1, p1, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 98
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getStateRestorationPolicy()Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;
move-result-object p1
sget-object p2, Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;->PREVENT_WHEN_EMPTY:Landroidx/recyclerview/widget/RecyclerView$Adapter$StateRestorationPolicy;
if-ne p1, p2, :cond_0
iget-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 99
iget-object p2, p1, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {p2, p1}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onStateRestorationPolicyChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
:cond_0
return-void
.end method
.method public onStateRestorationPolicyChanged()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;->this$0:Landroidx/recyclerview/widget/NestedAdapterWrapper;
.line 116
iget-object v1, v0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
invoke-interface {v1, v0}, Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;->onStateRestorationPolicyChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
return-void
.end method

View File

@@ -0,0 +1,65 @@
.class interface abstract Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/NestedAdapterWrapper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x609
name = "Callback"
.end annotation
# virtual methods
.method public abstract onChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
.param p1 # Landroidx/recyclerview/widget/NestedAdapterWrapper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.end method
.method public abstract onItemRangeChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
.param p1 # Landroidx/recyclerview/widget/NestedAdapterWrapper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.end method
.method public abstract onItemRangeChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;IILjava/lang/Object;)V
.param p1 # Landroidx/recyclerview/widget/NestedAdapterWrapper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p4 # Ljava/lang/Object;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.end method
.method public abstract onItemRangeInserted(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
.param p1 # Landroidx/recyclerview/widget/NestedAdapterWrapper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.end method
.method public abstract onItemRangeMoved(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
.param p1 # Landroidx/recyclerview/widget/NestedAdapterWrapper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.end method
.method public abstract onItemRangeRemoved(Landroidx/recyclerview/widget/NestedAdapterWrapper;II)V
.param p1 # Landroidx/recyclerview/widget/NestedAdapterWrapper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.end method
.method public abstract onStateRestorationPolicyChanged(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
.end method

View File

@@ -0,0 +1,192 @@
.class Landroidx/recyclerview/widget/NestedAdapterWrapper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
}
.end annotation
# instance fields
.field public final adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field private mAdapterObserver:Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;
.field mCachedItemCount:I
.field final mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
.field private final mStableIdLookup:Landroidx/recyclerview/widget/StableIdStorage$StableIdLookup;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field private final mViewTypeLookup:Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;Landroidx/recyclerview/widget/ViewTypeStorage;Landroidx/recyclerview/widget/StableIdStorage$StableIdLookup;)V
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;",
"Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;",
"Landroidx/recyclerview/widget/ViewTypeStorage;",
"Landroidx/recyclerview/widget/StableIdStorage$StableIdLookup;",
")V"
}
.end annotation
.line 126
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 47
new-instance v0, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;
invoke-direct {v0, p0}, Landroidx/recyclerview/widget/NestedAdapterWrapper$1;-><init>(Landroidx/recyclerview/widget/NestedAdapterWrapper;)V
iput-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mAdapterObserver:Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;
iput-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
iput-object p2, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCallback:Landroidx/recyclerview/widget/NestedAdapterWrapper$Callback;
.line 129
invoke-interface {p3, p0}, Landroidx/recyclerview/widget/ViewTypeStorage;->createViewTypeWrapper(Landroidx/recyclerview/widget/NestedAdapterWrapper;)Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;
move-result-object p2
iput-object p2, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mViewTypeLookup:Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;
iput-object p4, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mStableIdLookup:Landroidx/recyclerview/widget/StableIdStorage$StableIdLookup;
.line 131
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemCount()I
move-result p2
iput p2, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
iget-object p2, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mAdapterObserver:Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;
.line 132
invoke-virtual {p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->registerAdapterDataObserver(Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;)V
return-void
.end method
# virtual methods
.method public dispose()V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
iget-object v1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mAdapterObserver:Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;
.line 137
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->unregisterAdapterDataObserver(Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;)V
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mViewTypeLookup:Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;
.line 138
invoke-interface {v0}, Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;->dispose()V
return-void
.end method
.method public getCachedItemCount()I
.locals 1
iget v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mCachedItemCount:I
return v0
.end method
.method public getItemId(I)J
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 161
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemId(I)J
move-result-wide v0
iget-object p1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mStableIdLookup:Landroidx/recyclerview/widget/StableIdStorage$StableIdLookup;
.line 162
invoke-interface {p1, v0, v1}, Landroidx/recyclerview/widget/StableIdStorage$StableIdLookup;->localToGlobal(J)J
move-result-wide v0
return-wide v0
.end method
.method public getItemViewType(I)I
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mViewTypeLookup:Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;
iget-object v1, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 146
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->getItemViewType(I)I
move-result p1
invoke-interface {v0, p1}, Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;->localToGlobal(I)I
move-result p1
return p1
.end method
.method public onBindViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 157
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->bindViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
return-void
.end method
.method public onCreateViewHolder(Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.locals 1
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->mViewTypeLookup:Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;
.line 152
invoke-interface {v0, p2}, Landroidx/recyclerview/widget/ViewTypeStorage$ViewTypeLookup;->globalToLocal(I)I
move-result p2
iget-object v0, p0, Landroidx/recyclerview/widget/NestedAdapterWrapper;->adapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
.line 153
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->onCreateViewHolder(Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object p1
return-object p1
.end method

Some files were not shown because too many files have changed in this diff Show More