2019-02-04 20:08:30 +00:00
.class public L androidx/recyclerview/widget/DiffUtil ;
.super L java/lang/Object ;
2019-02-04 20:29:01 +00:00
.source "DiffUtil.java"
2019-02-04 20:08:30 +00:00
# annotations
.annotation system L dalvik/annotation/MemberClasses ;
value = {
L androidx/recyclerview/widget/DiffUtil$PostponedUpdate ;,
L androidx/recyclerview/widget/DiffUtil$DiffResult ;,
L androidx/recyclerview/widget/DiffUtil$Range ;,
L androidx/recyclerview/widget/DiffUtil$Snake ;,
L androidx/recyclerview/widget/DiffUtil$ItemCallback ;,
L androidx/recyclerview/widget/DiffUtil$Callback ;
}
.end annotation
# static fields
.field private static final SNAKE_COMPARATOR : L java/util/Comparator ;
.annotation system L dalvik/annotation/Signature ;
value = {
"Ljava/util/Comparator<" ,
"Landroidx/recyclerview/widget/DiffUtil$Snake;" ,
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit> ( ) V
.locals 1
new-instance v0 , L androidx/recyclerview/widget/DiffUtil$1 ;
invoke-direct { v0 } , L androidx/recyclerview/widget/DiffUtil$1 ;-> <init> ( ) V
sput-object v0 , L androidx/recyclerview/widget/DiffUtil ;-> SNAKE_COMPARATOR : L java/util/Comparator ;
return-void
.end method
.method private constructor <init> ( ) V
.locals 0
invoke-direct { p0 } , L java/lang/Object ;-> <init> ( ) V
return-void
.end method
.method public static calculateDiff ( L androidx/recyclerview/widget/DiffUtil$Callback ;) L androidx/recyclerview/widget/DiffUtil$DiffResult ;
.locals 1
. param p0 # Landroidx/recyclerview/widget/DiffUtil$Callback;
.annotation build L androidx/annotation/NonNull ;
.end annotation
. end param
.annotation build L androidx/annotation/NonNull ;
.end annotation
const/4 v0 , 0x1
invoke-static { p0 , v0 } , L androidx/recyclerview/widget/DiffUtil ;-> calculateDiff ( L androidx/recyclerview/widget/DiffUtil$Callback ;Z ) L androidx/recyclerview/widget/DiffUtil$DiffResult ;
move-result-object p0
return-object p0
.end method
.method public static calculateDiff ( L androidx/recyclerview/widget/DiffUtil$Callback ;Z ) L androidx/recyclerview/widget/DiffUtil$DiffResult ;
.locals 15
. param p0 # Landroidx/recyclerview/widget/DiffUtil$Callback;
.annotation build L androidx/annotation/NonNull ;
.end annotation
. end param
.annotation build L androidx/annotation/NonNull ;
.end annotation
invoke-virtual { p0 } , L androidx/recyclerview/widget/DiffUtil$Callback ;-> getOldListSize ( ) I
move-result v0
invoke-virtual { p0 } , L androidx/recyclerview/widget/DiffUtil$Callback ;-> getNewListSize ( ) I
move-result v1
new-instance v4 , L java/util/ArrayList ;
invoke-direct { v4 } , L java/util/ArrayList ;-> <init> ( ) V
new-instance v2 , L java/util/ArrayList ;
invoke-direct { v2 } , L java/util/ArrayList ;-> <init> ( ) V
new-instance v3 , L androidx/recyclerview/widget/DiffUtil$Range ;
const/4 v5 , 0x0
invoke-direct { v3 , v5 , v0 , v5 , v1 } , L androidx/recyclerview/widget/DiffUtil$Range ;-> <init> ( IIII ) V
invoke-interface { v2 , v3 } , L java/util/List ;-> add ( L java/lang/Object ;) Z
add-int v3 , v0 , v1
sub-int/2addr v0 , v1
invoke-static { v0 } , L java/lang/Math ;-> abs ( I ) I
move-result v0
add-int/2addr v0 , v3
mul-int/lit8 v1 , v0 , 0x2
new-array v13 , v1 , [I
new-array v1 , v1 , [I
new-instance v3 , L java/util/ArrayList ;
invoke-direct { v3 } , L java/util/ArrayList ;-> <init> ( ) V
:goto_0
invoke-interface { v2 } , L java/util/List ;-> isEmpty ( ) Z
move-result v5
if-nez v5 , :cond_7
invoke-interface { v2 } , L java/util/List ;-> size ( ) I
move-result v5
add-int/lit8 v5 , v5 , - 0x1
invoke-interface { v2 , v5 } , L java/util/List ;-> remove ( I ) L java/lang/Object ;
move-result-object v5
move-object v14 , v5
check-cast v14 , L androidx/recyclerview/widget/DiffUtil$Range ;
iget v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
iget v7 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListEnd : I
iget v8 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
iget v9 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListEnd : I
move-object v5 , p0
move-object v10 , v13
move-object v11 , v1
move v12 , v0
invoke-static/range { v5 . . v12 } , L androidx/recyclerview/widget/DiffUtil ;-> diffPartial ( L androidx/recyclerview/widget/DiffUtil$Callback ;IIII[I[II ) L androidx/recyclerview/widget/DiffUtil$Snake ;
move-result-object v5
if-eqz v5 , :cond_6
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
if-lez v6 , :cond_0
invoke-interface { v4 , v5 } , L java/util/List ;-> add ( L java/lang/Object ;) Z
:cond_0
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iget v7 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
add-int/2addr v6 , v7
iput v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
iget v7 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
add-int/2addr v6 , v7
iput v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
invoke-interface { v3 } , L java/util/List ;-> isEmpty ( ) Z
move-result v6
if-eqz v6 , :cond_1
new-instance v6 , L androidx/recyclerview/widget/DiffUtil$Range ;
invoke-direct { v6 } , L androidx/recyclerview/widget/DiffUtil$Range ;-> <init> ( ) V
goto :goto_1
:cond_1
invoke-interface { v3 } , L java/util/List ;-> size ( ) I
move-result v6
add-int/lit8 v6 , v6 , - 0x1
invoke-interface { v3 , v6 } , L java/util/List ;-> remove ( I ) L java/lang/Object ;
move-result-object v6
check-cast v6 , L androidx/recyclerview/widget/DiffUtil$Range ;
:goto_1
iget v7 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
iget v7 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
iget-boolean v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> reverse : Z
if-eqz v7 , :cond_2
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListEnd : I
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListEnd : I
2019-02-04 20:29:01 +00:00
goto :goto_2
2019-02-04 20:08:30 +00:00
:cond_2
iget-boolean v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> removal : Z
if-eqz v7 , :cond_3
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
add-int/lit8 v7 , v7 , - 0x1
2019-02-04 20:29:01 +00:00
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListEnd : I
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListEnd : I
2019-02-04 20:08:30 +00:00
goto :goto_2
:cond_3
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListEnd : I
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
add-int/lit8 v7 , v7 , - 0x1
2019-02-04 20:29:01 +00:00
iput v7 , v6 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListEnd : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
:goto_2
2019-02-04 20:08:30 +00:00
invoke-interface { v2 , v6 } , L java/util/List ;-> add ( L java/lang/Object ;) Z
iget-boolean v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> reverse : Z
if-eqz v6 , :cond_5
iget-boolean v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> removal : Z
if-eqz v6 , :cond_4
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
add-int/2addr v6 , v7
add-int/lit8 v6 , v6 , 0x1
2019-02-04 20:29:01 +00:00
iput v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
iget v5 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
add-int/2addr v6 , v5
iput v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
goto :goto_3
2019-02-04 20:08:30 +00:00
:cond_4
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
add-int/2addr v6 , v7
iput v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
iget v5 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
add-int/2addr v6 , v5
add-int/lit8 v6 , v6 , 0x1
2019-02-04 20:29:01 +00:00
iput v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
goto :goto_3
2019-02-04 20:08:30 +00:00
:cond_5
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
iget v7 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
add-int/2addr v6 , v7
iput v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> oldListStart : I
iget v6 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
iget v5 , v5 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
add-int/2addr v6 , v5
iput v6 , v14 , L androidx/recyclerview/widget/DiffUtil$Range ;-> newListStart : I
2019-02-04 20:29:01 +00:00
:goto_3
2019-02-04 20:08:30 +00:00
invoke-interface { v2 , v14 } , L java/util/List ;-> add ( L java/lang/Object ;) Z
goto/16 :goto_0
:cond_6
invoke-interface { v3 , v14 } , L java/util/List ;-> add ( L java/lang/Object ;) Z
goto/16 :goto_0
:cond_7
sget-object v0 , L androidx/recyclerview/widget/DiffUtil ;-> SNAKE_COMPARATOR : L java/util/Comparator ;
invoke-static { v4 , v0 } , L java/util/Collections ;-> sort ( L java/util/List ;L java/util/Comparator ;) V
new-instance v0 , L androidx/recyclerview/widget/DiffUtil$DiffResult ;
move-object v2 , v0
move-object v3 , p0
move-object v5 , v13
move-object v6 , v1
move/from16 v7 , p1
invoke-direct/range { v2 . . v7 } , L androidx/recyclerview/widget/DiffUtil$DiffResult ;-> <init> ( L androidx/recyclerview/widget/DiffUtil$Callback ;L java/util/List ;[I[IZ ) V
return-object v0
.end method
.method private static diffPartial ( L androidx/recyclerview/widget/DiffUtil$Callback ;IIII[I[II ) L androidx/recyclerview/widget/DiffUtil$Snake ;
2019-02-04 20:29:01 +00:00
.locals 19
2019-02-04 20:08:30 +00:00
move-object/from16 v0 , p0
2019-02-04 20:29:01 +00:00
move-object/from16 v1 , p5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move-object/from16 v2 , p6
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int v3 , p2 , p1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int v4 , p4 , p3
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-lez v3 , :cond_f
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-gtz v4 , :cond_0
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
goto/16 :goto_a
2019-02-04 20:08:30 +00:00
:cond_0
2019-02-04 20:29:01 +00:00
sub-int v5 , v3 , v4
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v6 , v3 , v4
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v7 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v6 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
div-int/lit8 v6 , v6 , 0x2
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int v8 , p7 , v6
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v8 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v9 , p7 , v6
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v9 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v10 , 0x0
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
invoke-static { v1 , v8 , v9 , v10 } , L java/util/Arrays ;-> fill ( [IIII ) V
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v8 , v5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v9 , v5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
invoke-static { v2 , v8 , v9 , v3 } , L java/util/Arrays ;-> fill ( [IIII ) V
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
rem-int/lit8 v8 , v5 , 0x2
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-eqz v8 , :cond_1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v8 , 0x1
2019-02-04 20:08:30 +00:00
goto :goto_0
:cond_1
2019-02-04 20:29:01 +00:00
const/4 v8 , 0x0
2019-02-04 20:08:30 +00:00
:goto_0
2019-02-04 20:29:01 +00:00
const/4 v9 , 0x0
2019-02-04 20:08:30 +00:00
:goto_1
2019-05-03 18:53:54 +00:00
if-gt v9 , v6 , :cond_e
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
neg-int v11 , v9
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move v12 , v11
2019-02-04 20:08:30 +00:00
:goto_2
2019-05-03 18:53:54 +00:00
if-gt v12 , v9 , :cond_6
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-eq v12 , v11 , :cond_3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-eq v12 , v9 , :cond_2
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v13 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v14 , v13 , - 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v14 , v1 , v14
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v13 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v1 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-ge v14 , v13 , :cond_2
2019-02-04 20:08:30 +00:00
goto :goto_3
:cond_2
2019-02-04 20:29:01 +00:00
add-int v13 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v13 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v1 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v13 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v14 , 0x1
2019-02-04 20:08:30 +00:00
goto :goto_4
:cond_3
:goto_3
2019-02-04 20:29:01 +00:00
add-int v13 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v13 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v1 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v14 , 0x0
2019-02-04 20:08:30 +00:00
:goto_4
2019-02-04 20:29:01 +00:00
sub-int v15 , v13 , v12
2019-02-04 20:08:30 +00:00
:goto_5
2019-02-04 20:29:01 +00:00
if-ge v13 , v3 , :cond_4
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-ge v15 , v4 , :cond_4
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v10 , p1 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v7 , p3 , v15
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
invoke-virtual { v0 , v10 , v7 } , L androidx/recyclerview/widget/DiffUtil$Callback ;-> areItemsTheSame ( II ) Z
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move-result v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-eqz v7 , :cond_4
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v13 , v13 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v15 , v15 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v7 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v10 , 0x0
2019-02-04 20:08:30 +00:00
goto :goto_5
:cond_4
2019-02-04 20:29:01 +00:00
add-int v7 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aput v13 , v1 , v7
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-eqz v8 , :cond_5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int v10 , v5 , v9
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v13 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v10 , v13
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-lt v12 , v10 , :cond_5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v10 , v5 , v9
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v10 , v13
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-gt v12 , v10 , :cond_5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v10 , v1 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v2 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
if-lt v10 , v13 , :cond_5
2019-02-04 20:08:30 +00:00
new-instance v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;
invoke-direct { v0 } , L androidx/recyclerview/widget/DiffUtil$Snake ;-> <init> ( ) V
2019-02-04 20:29:01 +00:00
aget v3 , v2 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput v3 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iget v3 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v3 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput v3 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v1 , v1 , v7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v2 , v2 , v7
2019-02-04 20:08:30 +00:00
sub-int/2addr v1 , v2
iput v1 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
2019-02-04 20:29:01 +00:00
iput-boolean v14 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> removal : Z
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v7 , 0x0
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput-boolean v7 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> reverse : Z
2019-02-04 20:08:30 +00:00
return-object v0
2019-02-04 20:29:01 +00:00
:cond_5
const/4 v7 , 0x0
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v12 , v12 , 0x2
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v7 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v10 , 0x0
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
goto :goto_2
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_6
2019-02-04 20:29:01 +00:00
const/4 v7 , 0x0
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move v10 , v11
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:goto_6
if-gt v10 , v9 , :cond_d
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v12 , v10 , v5
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v13 , v9 , v5
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-eq v12 , v13 , :cond_9
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v13 , v11 , v5
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-eq v12 , v13 , :cond_7
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v13 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v14 , v13 , - 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v14 , v2 , v14
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v15 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v13 , v15
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v2 , v13
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-ge v14 , v13 , :cond_8
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
goto :goto_7
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_7
2019-02-04 20:29:01 +00:00
const/4 v15 , 0x1
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_8
2019-02-04 20:29:01 +00:00
add-int v13 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/2addr v13 , v15
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v2 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v13 , v15
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v14 , 0x1
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
goto :goto_8
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_9
2019-02-04 20:29:01 +00:00
const/4 v15 , 0x1
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:goto_7
2019-02-04 20:29:01 +00:00
add-int v13 , p7 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v13 , v15
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v2 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v14 , 0x0
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:goto_8
2019-02-04 20:29:01 +00:00
sub-int v16 , v13 , v12
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:goto_9
if-lez v13 , :cond_a
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-lez v16 , :cond_a
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v17 , p1 , v13
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v7 , v17 , - 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int v17 , p3 , v16
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move/from16 v18 , v3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v3 , v17 , - 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
invoke-virtual { v0 , v7 , v3 } , L androidx/recyclerview/widget/DiffUtil$Callback ;-> areItemsTheSame ( II ) Z
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move-result v3
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-eqz v3 , :cond_b
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v13 , v13 , - 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v16 , v16 , - 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move/from16 v3 , v18
const/4 v7 , 0x0
const/4 v15 , 0x1
2019-05-03 18:53:54 +00:00
goto :goto_9
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_a
2019-02-04 20:29:01 +00:00
move/from16 v18 , v3
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_b
2019-02-04 20:29:01 +00:00
add-int v3 , p7 , v12
aput v13 , v2 , v3
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-nez v8 , :cond_c
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-lt v12 , v11 , :cond_c
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-gt v12 , v9 , :cond_c
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v7 , v1 , v3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v13 , v2 , v3
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
if-lt v7 , v13 , :cond_c
2019-02-04 20:08:30 +00:00
new-instance v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;
invoke-direct { v0 } , L androidx/recyclerview/widget/DiffUtil$Snake ;-> <init> ( ) V
2019-02-04 20:29:01 +00:00
aget v4 , v2 , v3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput v4 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iget v4 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> x : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v4 , v12
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput v4 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> y : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v1 , v1 , v3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
aget v2 , v2 , v3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
sub-int/2addr v1 , v2
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput v1 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> size : I
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput-boolean v14 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> removal : Z
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v3 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
iput-boolean v3 , v0 , L androidx/recyclerview/widget/DiffUtil$Snake ;-> reverse : Z
2019-02-04 20:08:30 +00:00
return-object v0
2019-05-03 18:53:54 +00:00
:cond_c
2019-02-04 20:29:01 +00:00
const/4 v3 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v10 , v10 , 0x2
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move/from16 v3 , v18
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v7 , 0x0
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
goto :goto_6
2019-02-04 20:08:30 +00:00
2019-05-03 18:53:54 +00:00
:cond_d
2019-02-04 20:29:01 +00:00
move/from16 v18 , v3
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
const/4 v3 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
add-int/lit8 v9 , v9 , 0x1
2019-02-04 20:08:30 +00:00
2019-02-04 20:29:01 +00:00
move/from16 v3 , v18
const/4 v7 , 0x1
const/4 v10 , 0x0
2019-02-04 20:08:30 +00:00
goto/16 :goto_1
2019-05-03 18:53:54 +00:00
:cond_e
2019-02-04 20:08:30 +00:00
new-instance v0 , L java/lang/IllegalStateException ;
const-string v1 , "DiffUtil hit an unexpected case while trying to calculate the optimal path. Please make sure your data is not changing during the diff calculation."
invoke-direct { v0 , v1 } , L java/lang/IllegalStateException ;-> <init> ( L java/lang/String ;) V
throw v0
2019-05-03 18:53:54 +00:00
:cond_f
:goto_a
2019-02-04 20:08:30 +00:00
const/4 v0 , 0x0
return-object v0
.end method