Changes of com.discord v1144

This commit is contained in:
distok 2020-05-17 12:40:10 +00:00
parent 4746542b20
commit f52990c3c2
25752 changed files with 4382359 additions and 77 deletions

View file

@ -0,0 +1,70 @@
.class public final Landroidx/recyclerview/R$attr;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "attr"
.end annotation
# static fields
.field public static final alpha:I = 0x7f040036
.field public static final fastScrollEnabled:I = 0x7f0401da
.field public static final fastScrollHorizontalThumbDrawable:I = 0x7f0401db
.field public static final fastScrollHorizontalTrackDrawable:I = 0x7f0401dc
.field public static final fastScrollVerticalThumbDrawable:I = 0x7f0401dd
.field public static final fastScrollVerticalTrackDrawable:I = 0x7f0401de
.field public static final font:I = 0x7f0401ee
.field public static final fontProviderAuthority:I = 0x7f0401f0
.field public static final fontProviderCerts:I = 0x7f0401f1
.field public static final fontProviderFetchStrategy:I = 0x7f0401f2
.field public static final fontProviderFetchTimeout:I = 0x7f0401f3
.field public static final fontProviderPackage:I = 0x7f0401f4
.field public static final fontProviderQuery:I = 0x7f0401f5
.field public static final fontStyle:I = 0x7f0401f6
.field public static final fontVariationSettings:I = 0x7f0401f7
.field public static final fontWeight:I = 0x7f0401f8
.field public static final layoutManager:I = 0x7f0402d6
.field public static final recyclerViewStyle:I = 0x7f0403d5
.field public static final reverseLayout:I = 0x7f0403da
.field public static final spanCount:I = 0x7f040429
.field public static final stackFromEnd:I = 0x7f040430
.field public static final ttcIndex:I = 0x7f040504
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,34 @@
.class public final Landroidx/recyclerview/R$color;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "color"
.end annotation
# static fields
.field public static final notification_action_color_filter:I = 0x7f060137
.field public static final notification_icon_bg_color:I = 0x7f060138
.field public static final ripple_material_light:I = 0x7f0601bd
.field public static final secondary_text_default_material_light:I = 0x7f0601c1
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,82 @@
.class public final Landroidx/recyclerview/R$dimen;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "dimen"
.end annotation
# static fields
.field public static final compat_button_inset_horizontal_material:I = 0x7f070071
.field public static final compat_button_inset_vertical_material:I = 0x7f070072
.field public static final compat_button_padding_horizontal_material:I = 0x7f070073
.field public static final compat_button_padding_vertical_material:I = 0x7f070074
.field public static final compat_control_corner_material:I = 0x7f070075
.field public static final compat_notification_large_icon_max_height:I = 0x7f070076
.field public static final compat_notification_large_icon_max_width:I = 0x7f070077
.field public static final fastscroll_default_thickness:I = 0x7f0700bb
.field public static final fastscroll_margin:I = 0x7f0700bc
.field public static final fastscroll_minimum_range:I = 0x7f0700bd
.field public static final item_touch_helper_max_drag_scroll_per_frame:I = 0x7f0700d1
.field public static final item_touch_helper_swipe_escape_max_velocity:I = 0x7f0700d2
.field public static final item_touch_helper_swipe_escape_velocity:I = 0x7f0700d3
.field public static final notification_action_icon_size:I = 0x7f070173
.field public static final notification_action_text_size:I = 0x7f070174
.field public static final notification_big_circle_margin:I = 0x7f070175
.field public static final notification_content_margin_start:I = 0x7f070176
.field public static final notification_large_icon_height:I = 0x7f070177
.field public static final notification_large_icon_width:I = 0x7f070178
.field public static final notification_main_column_padding_top:I = 0x7f070179
.field public static final notification_media_narrow_margin:I = 0x7f07017a
.field public static final notification_right_icon_size:I = 0x7f07017b
.field public static final notification_right_side_padding_top:I = 0x7f07017c
.field public static final notification_small_icon_background_padding:I = 0x7f07017d
.field public static final notification_small_icon_size_as_large:I = 0x7f07017e
.field public static final notification_subtext_size:I = 0x7f07017f
.field public static final notification_top_pad:I = 0x7f070180
.field public static final notification_top_pad_large_text:I = 0x7f070181
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,50 @@
.class public final Landroidx/recyclerview/R$drawable;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "drawable"
.end annotation
# static fields
.field public static final notification_action_background:I = 0x7f080531
.field public static final notification_bg:I = 0x7f080532
.field public static final notification_bg_low:I = 0x7f080533
.field public static final notification_bg_low_normal:I = 0x7f080534
.field public static final notification_bg_low_pressed:I = 0x7f080535
.field public static final notification_bg_normal:I = 0x7f080536
.field public static final notification_bg_normal_pressed:I = 0x7f080537
.field public static final notification_icon_background:I = 0x7f080538
.field public static final notification_template_icon_bg:I = 0x7f080539
.field public static final notification_template_icon_low_bg:I = 0x7f08053a
.field public static final notification_tile_bg:I = 0x7f08053b
.field public static final notify_panel_notification_icon_bg:I = 0x7f08053c
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,162 @@
.class public final Landroidx/recyclerview/R$id;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "id"
.end annotation
# static fields
.field public static final accessibility_action_clickable_span:I = 0x7f0a0010
.field public static final accessibility_custom_action_0:I = 0x7f0a0011
.field public static final accessibility_custom_action_1:I = 0x7f0a0012
.field public static final accessibility_custom_action_10:I = 0x7f0a0013
.field public static final accessibility_custom_action_11:I = 0x7f0a0014
.field public static final accessibility_custom_action_12:I = 0x7f0a0015
.field public static final accessibility_custom_action_13:I = 0x7f0a0016
.field public static final accessibility_custom_action_14:I = 0x7f0a0017
.field public static final accessibility_custom_action_15:I = 0x7f0a0018
.field public static final accessibility_custom_action_16:I = 0x7f0a0019
.field public static final accessibility_custom_action_17:I = 0x7f0a001a
.field public static final accessibility_custom_action_18:I = 0x7f0a001b
.field public static final accessibility_custom_action_19:I = 0x7f0a001c
.field public static final accessibility_custom_action_2:I = 0x7f0a001d
.field public static final accessibility_custom_action_20:I = 0x7f0a001e
.field public static final accessibility_custom_action_21:I = 0x7f0a001f
.field public static final accessibility_custom_action_22:I = 0x7f0a0020
.field public static final accessibility_custom_action_23:I = 0x7f0a0021
.field public static final accessibility_custom_action_24:I = 0x7f0a0022
.field public static final accessibility_custom_action_25:I = 0x7f0a0023
.field public static final accessibility_custom_action_26:I = 0x7f0a0024
.field public static final accessibility_custom_action_27:I = 0x7f0a0025
.field public static final accessibility_custom_action_28:I = 0x7f0a0026
.field public static final accessibility_custom_action_29:I = 0x7f0a0027
.field public static final accessibility_custom_action_3:I = 0x7f0a0028
.field public static final accessibility_custom_action_30:I = 0x7f0a0029
.field public static final accessibility_custom_action_31:I = 0x7f0a002a
.field public static final accessibility_custom_action_4:I = 0x7f0a002b
.field public static final accessibility_custom_action_5:I = 0x7f0a002c
.field public static final accessibility_custom_action_6:I = 0x7f0a002d
.field public static final accessibility_custom_action_7:I = 0x7f0a002e
.field public static final accessibility_custom_action_8:I = 0x7f0a002f
.field public static final accessibility_custom_action_9:I = 0x7f0a0030
.field public static final action_container:I = 0x7f0a0040
.field public static final action_divider:I = 0x7f0a0042
.field public static final action_image:I = 0x7f0a0043
.field public static final action_text:I = 0x7f0a0049
.field public static final actions:I = 0x7f0a004a
.field public static final async:I = 0x7f0a0096
.field public static final blocking:I = 0x7f0a00f1
.field public static final chronometer:I = 0x7f0a0251
.field public static final dialog_button:I = 0x7f0a02a1
.field public static final forever:I = 0x7f0a0372
.field public static final icon:I = 0x7f0a044d
.field public static final icon_group:I = 0x7f0a044f
.field public static final info:I = 0x7f0a046b
.field public static final italic:I = 0x7f0a049d
.field public static final item_touch_helper_previous_elevation:I = 0x7f0a04db
.field public static final line1:I = 0x7f0a04eb
.field public static final line3:I = 0x7f0a04ec
.field public static final normal:I = 0x7f0a05a1
.field public static final notification_background:I = 0x7f0a05ab
.field public static final notification_main_column:I = 0x7f0a05ac
.field public static final notification_main_column_container:I = 0x7f0a05ad
.field public static final right_icon:I = 0x7f0a06f6
.field public static final right_side:I = 0x7f0a06f7
.field public static final tag_accessibility_actions:I = 0x7f0a0900
.field public static final tag_accessibility_clickable_spans:I = 0x7f0a0901
.field public static final tag_accessibility_heading:I = 0x7f0a0902
.field public static final tag_accessibility_pane_title:I = 0x7f0a0903
.field public static final tag_screen_reader_focusable:I = 0x7f0a0904
.field public static final tag_transition_group:I = 0x7f0a0905
.field public static final tag_unhandled_key_event_manager:I = 0x7f0a0906
.field public static final tag_unhandled_key_listeners:I = 0x7f0a0907
.field public static final text:I = 0x7f0a090f
.field public static final text2:I = 0x7f0a0910
.field public static final time:I = 0x7f0a091f
.field public static final title:I = 0x7f0a0920
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,28 @@
.class public final Landroidx/recyclerview/R$integer;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "integer"
.end annotation
# static fields
.field public static final status_bar_notification_info_maxnum:I = 0x7f0b0018
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,40 @@
.class public final Landroidx/recyclerview/R$layout;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "layout"
.end annotation
# static fields
.field public static final custom_dialog:I = 0x7f0d0026
.field public static final notification_action:I = 0x7f0d007c
.field public static final notification_action_tombstone:I = 0x7f0d007d
.field public static final notification_template_custom_big:I = 0x7f0d0085
.field public static final notification_template_icon_group:I = 0x7f0d0086
.field public static final notification_template_part_chronometer:I = 0x7f0d008a
.field public static final notification_template_part_time:I = 0x7f0d008b
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,28 @@
.class public final Landroidx/recyclerview/R$string;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "string"
.end annotation
# static fields
.field public static final status_bar_notification_info_overflow:I = 0x7f121378
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,40 @@
.class public final Landroidx/recyclerview/R$style;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "style"
.end annotation
# static fields
.field public static final TextAppearance_Compat_Notification:I = 0x7f130213
.field public static final TextAppearance_Compat_Notification_Info:I = 0x7f130214
.field public static final TextAppearance_Compat_Notification_Line2:I = 0x7f130216
.field public static final TextAppearance_Compat_Notification_Time:I = 0x7f130219
.field public static final TextAppearance_Compat_Notification_Title:I = 0x7f13021b
.field public static final Widget_Compat_NotificationActionContainer:I = 0x7f1303c3
.field public static final Widget_Compat_NotificationActionText:I = 0x7f1303c4
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,249 @@
.class public final Landroidx/recyclerview/R$styleable;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/R;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "styleable"
.end annotation
# static fields
.field public static final ColorStateListItem:[I
.field public static final ColorStateListItem_alpha:I = 0x2
.field public static final ColorStateListItem_android_alpha:I = 0x1
.field public static final ColorStateListItem_android_color:I = 0x0
.field public static final FontFamily:[I
.field public static final FontFamilyFont:[I
.field public static final FontFamilyFont_android_font:I = 0x0
.field public static final FontFamilyFont_android_fontStyle:I = 0x2
.field public static final FontFamilyFont_android_fontVariationSettings:I = 0x4
.field public static final FontFamilyFont_android_fontWeight:I = 0x1
.field public static final FontFamilyFont_android_ttcIndex:I = 0x3
.field public static final FontFamilyFont_font:I = 0x5
.field public static final FontFamilyFont_fontStyle:I = 0x6
.field public static final FontFamilyFont_fontVariationSettings:I = 0x7
.field public static final FontFamilyFont_fontWeight:I = 0x8
.field public static final FontFamilyFont_ttcIndex:I = 0x9
.field public static final FontFamily_fontProviderAuthority:I = 0x0
.field public static final FontFamily_fontProviderCerts:I = 0x1
.field public static final FontFamily_fontProviderFetchStrategy:I = 0x2
.field public static final FontFamily_fontProviderFetchTimeout:I = 0x3
.field public static final FontFamily_fontProviderPackage:I = 0x4
.field public static final FontFamily_fontProviderQuery:I = 0x5
.field public static final GradientColor:[I
.field public static final GradientColorItem:[I
.field public static final GradientColorItem_android_color:I = 0x0
.field public static final GradientColorItem_android_offset:I = 0x1
.field public static final GradientColor_android_centerColor:I = 0x7
.field public static final GradientColor_android_centerX:I = 0x3
.field public static final GradientColor_android_centerY:I = 0x4
.field public static final GradientColor_android_endColor:I = 0x1
.field public static final GradientColor_android_endX:I = 0xa
.field public static final GradientColor_android_endY:I = 0xb
.field public static final GradientColor_android_gradientRadius:I = 0x5
.field public static final GradientColor_android_startColor:I = 0x0
.field public static final GradientColor_android_startX:I = 0x8
.field public static final GradientColor_android_startY:I = 0x9
.field public static final GradientColor_android_tileMode:I = 0x6
.field public static final GradientColor_android_type:I = 0x2
.field public static final RecyclerView:[I
.field public static final RecyclerView_android_clipToPadding:I = 0x1
.field public static final RecyclerView_android_descendantFocusability:I = 0x2
.field public static final RecyclerView_android_orientation:I = 0x0
.field public static final RecyclerView_fastScrollEnabled:I = 0x3
.field public static final RecyclerView_fastScrollHorizontalThumbDrawable:I = 0x4
.field public static final RecyclerView_fastScrollHorizontalTrackDrawable:I = 0x5
.field public static final RecyclerView_fastScrollVerticalThumbDrawable:I = 0x6
.field public static final RecyclerView_fastScrollVerticalTrackDrawable:I = 0x7
.field public static final RecyclerView_layoutManager:I = 0x8
.field public static final RecyclerView_reverseLayout:I = 0x9
.field public static final RecyclerView_spanCount:I = 0xa
.field public static final RecyclerView_stackFromEnd:I = 0xb
# direct methods
.method public static constructor <clinit>()V
.locals 2
const/4 v0, 0x3
new-array v0, v0, [I
fill-array-data v0, :array_0
sput-object v0, Landroidx/recyclerview/R$styleable;->ColorStateListItem:[I
const/4 v0, 0x6
new-array v0, v0, [I
fill-array-data v0, :array_1
sput-object v0, Landroidx/recyclerview/R$styleable;->FontFamily:[I
const/16 v0, 0xa
new-array v0, v0, [I
fill-array-data v0, :array_2
sput-object v0, Landroidx/recyclerview/R$styleable;->FontFamilyFont:[I
const/16 v0, 0xc
new-array v1, v0, [I
fill-array-data v1, :array_3
sput-object v1, Landroidx/recyclerview/R$styleable;->GradientColor:[I
const/4 v1, 0x2
new-array v1, v1, [I
fill-array-data v1, :array_4
sput-object v1, Landroidx/recyclerview/R$styleable;->GradientColorItem:[I
new-array v0, v0, [I
fill-array-data v0, :array_5
sput-object v0, Landroidx/recyclerview/R$styleable;->RecyclerView:[I
return-void
:array_0
.array-data 4
0x10101a5
0x101031f
0x7f040036
.end array-data
:array_1
.array-data 4
0x7f0401f0
0x7f0401f1
0x7f0401f2
0x7f0401f3
0x7f0401f4
0x7f0401f5
.end array-data
:array_2
.array-data 4
0x1010532
0x1010533
0x101053f
0x101056f
0x1010570
0x7f0401ee
0x7f0401f6
0x7f0401f7
0x7f0401f8
0x7f040504
.end array-data
:array_3
.array-data 4
0x101019d
0x101019e
0x10101a1
0x10101a2
0x10101a3
0x10101a4
0x1010201
0x101020b
0x1010510
0x1010511
0x1010512
0x1010513
.end array-data
:array_4
.array-data 4
0x10101a5
0x1010514
.end array-data
:array_5
.array-data 4
0x10100c4
0x10100eb
0x10100f1
0x7f0401da
0x7f0401db
0x7f0401dc
0x7f0401dd
0x7f0401de
0x7f0402d6
0x7f0403da
0x7f040429
0x7f040430
.end array-data
.end method
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,30 @@
.class public final Landroidx/recyclerview/R;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/R$styleable;,
Landroidx/recyclerview/R$style;,
Landroidx/recyclerview/R$string;,
Landroidx/recyclerview/R$layout;,
Landroidx/recyclerview/R$integer;,
Landroidx/recyclerview/R$id;,
Landroidx/recyclerview/R$drawable;,
Landroidx/recyclerview/R$dimen;,
Landroidx/recyclerview/R$color;,
Landroidx/recyclerview/R$attr;
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,40 @@
.class public interface abstract Landroidx/recyclerview/widget/AdapterHelper$Callback;
.super Ljava/lang/Object;
.source "AdapterHelper.java"
# 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,298 @@
.class public Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;
.super Ljava/lang/Object;
.source "AdapterHelper.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/AdapterHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "UpdateOp"
.end annotation
# static fields
.field public static final ADD:I = 0x1
.field public static final MOVE:I = 0x8
.field public static final POOL_SIZE:I = 0x1e
.field public static final REMOVE:I = 0x2
.field public static final UPDATE:I = 0x4
# instance fields
.field public cmd:I
.field public itemCount:I
.field public payload:Ljava/lang/Object;
.field public positionStart:I
# direct methods
.method public constructor <init>(IIILjava/lang/Object;)V
.locals 0
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
:cond_0
const/4 v1, 0x0
if-eqz p1, :cond_8
const-class v2, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
if-eq v2, v3, :cond_1
goto :goto_0
:cond_1
check-cast p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;
iget v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->cmd:I
if-eq v2, v3, :cond_2
return v1
:cond_2
const/16 v3, 0x8
if-ne v2, v3, :cond_3
iget v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
iget v3, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
sub-int/2addr v2, v3
invoke-static {v2}, Ljava/lang/Math;->abs(I)I
move-result v2
if-ne v2, v0, :cond_3
iget v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
if-ne v2, v3, :cond_3
iget v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
if-ne v2, v3, :cond_3
return v0
:cond_3
iget v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->itemCount:I
if-eq v2, v3, :cond_4
return v1
:cond_4
iget v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
iget v3, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->positionStart:I
if-eq v2, v3, :cond_5
return v1
:cond_5
iget-object v2, p0, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
if-eqz v2, :cond_6
iget-object p1, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
invoke-virtual {v2, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p1
if-nez p1, :cond_7
return v1
:cond_6
iget-object p1, p1, Landroidx/recyclerview/widget/AdapterHelper$UpdateOp;->payload:Ljava/lang/Object;
if-eqz p1, :cond_7
return v1
:cond_7
return v0
:cond_8
:goto_0
return v1
.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
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;
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,71 @@
.class public final Landroidx/recyclerview/widget/AdapterListUpdateCallback;
.super Ljava/lang/Object;
.source "AdapterListUpdateCallback.java"
# interfaces
.implements Landroidx/recyclerview/widget/ListUpdateCallback;
# instance fields
.field public 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
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;
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;
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;
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;
invoke-virtual {v0, p1, p2}, Landroidx/recyclerview/widget/RecyclerView$Adapter;->notifyItemRangeRemoved(II)V
return-void
.end method

View file

@ -0,0 +1,200 @@
.class public final Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
.super Ljava/lang/Object;
.source "AsyncDifferConfig.java"
# 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 public static sDiffExecutor:Ljava/util/concurrent/Executor;
.field public static final sExecutorLock:Ljava/lang/Object;
# instance fields
.field public mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
.field public final mDiffCallback:Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/DiffUtil$ItemCallback<",
"TT;>;"
}
.end annotation
.end field
.field public mMainThreadExecutor:Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 1
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
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;
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
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;
:cond_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_0
:catchall_0
move-exception v1
:try_start_1
monitor-exit v0
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
throw v1
:cond_1
:goto_0
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,127 @@
.class public final Landroidx/recyclerview/widget/AsyncDifferConfig;
.super Ljava/lang/Object;
.source "AsyncDifferConfig.java"
# 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 public final mBackgroundThreadExecutor:Ljava/util/concurrent/Executor;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field public 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 public 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
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,220 @@
.class public Landroidx/recyclerview/widget/AsyncListDiffer$1$1;
.super Landroidx/recyclerview/widget/DiffUtil$Callback;
.source "AsyncListDiffer.java"
# 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 public 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;
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;
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;
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;
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
: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;
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;
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;
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;
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;
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;
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
: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;
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;
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,64 @@
.class public Landroidx/recyclerview/widget/AsyncListDiffer$1$2;
.super Ljava/lang/Object;
.source "AsyncListDiffer.java"
# 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 public final synthetic this$1:Landroidx/recyclerview/widget/AsyncListDiffer$1;
.field public 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;
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;
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
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,75 @@
.class public Landroidx/recyclerview/widget/AsyncListDiffer$1;
.super Ljava/lang/Object;
.source "AsyncListDiffer.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/AsyncListDiffer;
.field public final synthetic val$commitCallback:Ljava/lang/Runnable;
.field public final synthetic val$newList:Ljava/util/List;
.field public final synthetic val$oldList:Ljava/util/List;
.field public 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;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 3
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;
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 "AsyncListDiffer.java"
# 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,57 @@
.class public Landroidx/recyclerview/widget/AsyncListDiffer$MainThreadExecutor;
.super Ljava/lang/Object;
.source "AsyncListDiffer.java"
# 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 public final mHandler:Landroid/os/Handler;
# direct methods
.method public constructor <init>()V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method

View file

@ -0,0 +1,480 @@
.class public Landroidx/recyclerview/widget/AsyncListDiffer;
.super Ljava/lang/Object;
.source "AsyncListDiffer.java"
# 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 public static final sMainThreadExecutor:Ljava/util/concurrent/Executor;
# instance fields
.field public final mConfig:Landroidx/recyclerview/widget/AsyncDifferConfig;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncDifferConfig<",
"TT;>;"
}
.end annotation
.end field
.field public 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 public 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 public mMainThreadExecutor:Ljava/util/concurrent/Executor;
.field public mMaxScheduledGeneration:I
.field public 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 public final mUpdateCallback:Landroidx/recyclerview/widget/ListUpdateCallback;
# direct methods
.method public static constructor <clinit>()V
.locals 1
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
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
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;
invoke-virtual {p2}, Landroidx/recyclerview/widget/AsyncDifferConfig;->getMainThreadExecutor()Ljava/util/concurrent/Executor;
move-result-object p1
if-eqz p1, :cond_0
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
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
invoke-virtual {p1}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->build()Landroidx/recyclerview/widget/AsyncDifferConfig;
move-result-object p1
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;
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;
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
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;
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;
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;
invoke-virtual {p2, p1}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;->dispatchUpdatesTo(Landroidx/recyclerview/widget/ListUpdateCallback;)V
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;
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
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
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
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;
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;
invoke-interface {v2, v1, p1}, Landroidx/recyclerview/widget/ListUpdateCallback;->onRemoved(II)V
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;
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;
invoke-interface {p1}, Ljava/util/List;->size()I
move-result p1
invoke-interface {v2, v1, p1}, Landroidx/recyclerview/widget/ListUpdateCallback;->onInserted(II)V
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;
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,312 @@
.class public Landroidx/recyclerview/widget/AsyncListUtil$1;
.super Ljava/lang/Object;
.source "AsyncListUtil.java"
# 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 public 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;
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;
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;
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;
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;
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
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;
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;
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
const-string v0, "duplicate tile @"
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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;
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
: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;
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;
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
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;
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;
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
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;
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
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;
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
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;
iput p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
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;
iget p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
iput p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mDisplayedGeneration:I
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
iput-boolean p2, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mAllowScrollHints:Z
invoke-virtual {p1}, Landroidx/recyclerview/widget/AsyncListUtil;->updateRange()V
return-void
.end method

View file

@ -0,0 +1,501 @@
.class public Landroidx/recyclerview/widget/AsyncListUtil$2;
.super Ljava/lang/Object;
.source "AsyncListUtil.java"
# 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 public mFirstRequiredTileStart:I
.field public mGeneration:I
.field public mItemCount:I
.field public mLastRequiredTileStart:I
.field public final mLoadedTiles:Landroid/util/SparseBooleanArray;
.field public mRecycledRoot:Landroidx/recyclerview/widget/TileList$Tile;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/TileList$Tile<",
"TT;>;"
}
.end annotation
.end field
.field public 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;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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
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
: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;
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;
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;
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;
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
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;
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
: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
: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;
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;
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 1
const-string v0, "[BKGR] "
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "AsyncListUtil"
invoke-static {p2, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method private removeTile(I)V
.locals 2
iget-object v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLoadedTiles:Landroid/util/SparseBooleanArray;
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;
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;
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;
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
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$2;->isTileLoaded(I)Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
invoke-direct {p0}, Landroidx/recyclerview/widget/AsyncListUtil$2;->acquireTile()Landroidx/recyclerview/widget/TileList$Tile;
move-result-object v0
iput p1, v0, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
iget p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mItemCount:I
iget v2, v0, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
sub-int/2addr v1, v2
invoke-static {p1, v1}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, v0, Landroidx/recyclerview/widget/TileList$Tile;->mItemCount:I
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
iget-object v1, v0, Landroidx/recyclerview/widget/TileList$Tile;->mItems:[Ljava/lang/Object;
iget v2, v0, Landroidx/recyclerview/widget/TileList$Tile;->mStartPosition:I
iget v3, v0, Landroidx/recyclerview/widget/TileList$Tile;->mItemCount:I
invoke-virtual {p1, v1, v2, v3}, Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;->fillData([Ljava/lang/Object;II)V
invoke-direct {p0, p2}, Landroidx/recyclerview/widget/AsyncListUtil$2;->flushTileCache(I)V
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;
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;
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;
invoke-virtual {p1}, Landroid/util/SparseBooleanArray;->clear()V
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
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 p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
iget-object p1, p1, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
iget v0, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mGeneration:I
iget v1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mItemCount:I
invoke-interface {p1, v0, v1}, Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;->updateItemCount(II)V
return-void
.end method
.method public updateRange(IIIII)V
.locals 0
if-le p1, p2, :cond_0
return-void
:cond_0
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/AsyncListUtil$2;->getTileStart(I)I
move-result p1
invoke-direct {p0, p2}, Landroidx/recyclerview/widget/AsyncListUtil$2;->getTileStart(I)I
move-result p2
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
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 p3, 0x0
const/4 p4, 0x1
if-ne p5, p4, :cond_1
iget p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mFirstRequiredTileStart:I
invoke-direct {p0, p1, p2, p5, p4}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
iget-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->this$0:Landroidx/recyclerview/widget/AsyncListUtil;
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, p3}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
goto :goto_0
:cond_1
iget p2, p0, Landroidx/recyclerview/widget/AsyncListUtil$2;->mLastRequiredTileStart:I
invoke-direct {p0, p1, p2, p5, p3}, 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;
iget p3, p3, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
sub-int/2addr p1, p3
invoke-direct {p0, p2, p1, p5, p4}, Landroidx/recyclerview/widget/AsyncListUtil$2;->requestTiles(IIIZ)V
:goto_0
return-void
.end method

View file

@ -0,0 +1,83 @@
.class public abstract Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
.super Ljava/lang/Object;
.source "AsyncListUtil.java"
# 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
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,115 @@
.class public abstract Landroidx/recyclerview/widget/AsyncListUtil$ViewCallback;
.super Ljava/lang/Object;
.source "AsyncListUtil.java"
# 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
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
aget v1, p1, v0
const/4 v2, 0x0
aget v3, p1, v2
sub-int/2addr v1, v3
add-int/2addr v1, v0
div-int/lit8 v3, v1, 0x2
aget v4, p1, v2
if-ne p3, v0, :cond_0
move v5, v1
goto :goto_0
:cond_0
move v5, v3
:goto_0
sub-int/2addr v4, v5
aput v4, p2, v2
aget p1, p1, v0
const/4 v2, 0x2
if-ne p3, v2, :cond_1
goto :goto_1
:cond_1
move v1, v3
:goto_1
add-int/2addr p1, v1
aput p1, 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,567 @@
.class public Landroidx/recyclerview/widget/AsyncListUtil;
.super Ljava/lang/Object;
.source "AsyncListUtil.java"
# 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 public static final DEBUG:Z = false
.field public static final TAG:Ljava/lang/String; = "AsyncListUtil"
# instance fields
.field public mAllowScrollHints:Z
.field public final mBackgroundCallback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
.end field
.field public final mBackgroundProxy:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback<",
"TT;>;"
}
.end annotation
.end field
.field public final mDataCallback:Landroidx/recyclerview/widget/AsyncListUtil$DataCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncListUtil$DataCallback<",
"TT;>;"
}
.end annotation
.end field
.field public mDisplayedGeneration:I
.field public mItemCount:I
.field public final mMainThreadCallback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
.end field
.field public final mMainThreadProxy:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback<",
"TT;>;"
}
.end annotation
.end field
.field public final mMissingPositions:Landroid/util/SparseIntArray;
.field public final mPrevRange:[I
.field public mRequestedGeneration:I
.field public mScrollHint:I
.field public final mTClass:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"TT;>;"
}
.end annotation
.end field
.field public final mTileList:Landroidx/recyclerview/widget/TileList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/TileList<",
"TT;>;"
}
.end annotation
.end field
.field public final mTileSize:I
.field public final mTmpRange:[I
.field public final mTmpRangeExtended:[I
.field public 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
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
iget v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mDisplayedGeneration:I
iput v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mRequestedGeneration:I
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;
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;
new-instance v0, Landroidx/recyclerview/widget/AsyncListUtil$2;
invoke-direct {v0, p0}, Landroidx/recyclerview/widget/AsyncListUtil$2;-><init>(Landroidx/recyclerview/widget/AsyncListUtil;)V
iput-object v0, 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;
new-instance p1, Landroidx/recyclerview/widget/TileList;
iget p2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileSize:I
invoke-direct {p1, p2}, Landroidx/recyclerview/widget/TileList;-><init>(I)V
iput-object p1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTileList:Landroidx/recyclerview/widget/TileList;
new-instance p1, Landroidx/recyclerview/widget/MessageThreadUtil;
invoke-direct {p1}, Landroidx/recyclerview/widget/MessageThreadUtil;-><init>()V
iget-object p2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mMainThreadCallback:Landroidx/recyclerview/widget/ThreadUtil$MainThreadCallback;
invoke-interface {p1, p2}, 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;
iget-object p2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mBackgroundCallback:Landroidx/recyclerview/widget/ThreadUtil$BackgroundCallback;
invoke-interface {p1, p2}, 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;
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;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/TileList;->getItemAt(I)Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_0
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
invoke-virtual {v1, p1, v2}, Landroid/util/SparseIntArray;->put(II)V
:cond_0
return-object v0
: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 1
const-string v0, "[MAIN] "
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "AsyncListUtil"
invoke-static {p2, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method public onRangeChanged()V
.locals 1
invoke-direct {p0}, Landroidx/recyclerview/widget/AsyncListUtil;->isRefreshPending()Z
move-result v0
if-eqz v0, :cond_0
return-void
: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;
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
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
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
aget v2, v0, v1
const/4 v3, 0x1
aget v4, v0, v3
if-gt v2, v4, :cond_7
aget v2, v0, v1
if-gez v2, :cond_0
goto/16 :goto_2
:cond_0
aget v2, v0, v3
iget v4, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
if-lt v2, v4, :cond_1
return-void
:cond_1
iget-boolean v2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mAllowScrollHints:Z
if-nez v2, :cond_2
iput v1, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
goto :goto_1
:cond_2
aget v2, v0, v1
iget-object v4, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mPrevRange:[I
aget v5, v4, v3
if-gt v2, v5, :cond_5
aget v2, v4, v1
aget v5, v0, v3
if-le v2, v5, :cond_3
goto :goto_0
:cond_3
aget v2, v0, v1
aget v5, v4, v1
if-ge v2, v5, :cond_4
iput v3, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mScrollHint:I
goto :goto_1
:cond_4
aget v0, v0, v1
aget v2, v4, v1
if-le v0, v2, :cond_6
const/4 v0, 0x2
iput v0, 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 v0, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mPrevRange:[I
iget-object v2, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mTmpRange:[I
aget v4, v2, v1
aput v4, v0, v1
aget v4, v2, v3
aput v4, v0, v3
iget-object v0, 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
invoke-virtual {v0, v2, 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
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
aget v2, v2, v3
aget v4, v0, v3
iget v5, p0, Landroidx/recyclerview/widget/AsyncListUtil;->mItemCount:I
sub-int/2addr v5, v3
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
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,282 @@
.class public Landroidx/recyclerview/widget/BatchingListUpdateCallback;
.super Ljava/lang/Object;
.source "BatchingListUpdateCallback.java"
# interfaces
.implements Landroidx/recyclerview/widget/ListUpdateCallback;
# static fields
.field public static final TYPE_ADD:I = 0x1
.field public static final TYPE_CHANGE:I = 0x3
.field public static final TYPE_NONE:I = 0x0
.field public static final TYPE_REMOVE:I = 0x2
# instance fields
.field public mLastEventCount:I
.field public mLastEventPayload:Ljava/lang/Object;
.field public mLastEventPosition:I
.field public mLastEventType:I
.field public 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
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;
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
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
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
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
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
: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
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
iput p1, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mLastEventPosition:I
return-void
: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
invoke-virtual {p0}, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->dispatchLastEvent()V
iget-object v0, p0, Landroidx/recyclerview/widget/BatchingListUpdateCallback;->mWrapped:Landroidx/recyclerview/widget/ListUpdateCallback;
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
: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,492 @@
.class public Landroidx/recyclerview/widget/ChildHelper$Bucket;
.super Ljava/lang/Object;
.source "ChildHelper.java"
# 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 public static final BITS_PER_WORD:I = 0x40
.field public static final LAST_BIT:J = -0x8000000000000000L
# instance fields
.field public mData:J
.field public mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
# direct methods
.method public constructor <init>()V
.locals 2
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
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
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
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
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
invoke-static {v0, v1}, Ljava/lang/Long;->bitCount(J)I
move-result p1
return p1
:cond_2
sub-int/2addr p1, v1
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 v0, p1
return v0
.end method
.method public get(I)Z
.locals 4
const/16 v0, 0x40
if-lt p1, v0, :cond_0
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
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 10
const/16 v0, 0x40
if-lt p1, v0, :cond_0
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
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 v0, v2
const-wide/16 v2, 0x0
const/4 v4, 0x1
const/4 v5, 0x0
cmp-long v6, v0, v2
if-eqz v6, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
const-wide/16 v1, 0x1
shl-long v6, v1, p1
sub-long/2addr v6, v1
iget-wide v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
and-long v8, v1, v6
not-long v6, v6
and-long/2addr v1, v6
shl-long/2addr v1, v4
or-long/2addr v1, v8
iput-wide v1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
if-eqz p2, :cond_2
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
goto :goto_1
:cond_2
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->clear(I)V
:goto_1
if-nez v0, :cond_3
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-eqz p1, :cond_4
: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;
invoke-virtual {p1, v5, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
:cond_4
:goto_2
return-void
.end method
.method public remove(I)Z
.locals 11
const/16 v0, 0x40
if-lt p1, v0, :cond_0
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
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/2addr v4, v2
const-wide/16 v6, 0x0
const/4 p1, 0x1
const/4 v8, 0x0
cmp-long v9, v4, v6
if-eqz v9, :cond_1
const/4 v4, 0x1
goto :goto_0
:cond_1
const/4 v4, 0x0
:goto_0
iget-wide v5, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
not-long v9, v2
and-long/2addr v5, v9
iput-wide v5, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
sub-long/2addr v2, v0
iget-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
and-long v5, v0, v2
not-long v2, v2
and-long/2addr v0, v2
invoke-static {v0, v1, p1}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v0
or-long/2addr v0, v5
iput-wide v0, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mData:J
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
if-eqz p1, :cond_3
invoke-virtual {p1, v8}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result p1
if-eqz p1, :cond_2
const/16 p1, 0x3f
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
:cond_2
iget-object p1, p0, Landroidx/recyclerview/widget/ChildHelper$Bucket;->mNext:Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-virtual {p1, v8}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
:cond_3
return v4
.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
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
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
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
invoke-static {v0, v1}, Ljava/lang/Long;->toBinaryString(J)Ljava/lang/String;
move-result-object v0
goto :goto_0
: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 public interface abstract Landroidx/recyclerview/widget/ChildHelper$Callback;
.super Ljava/lang/Object;
.source "ChildHelper.java"
# 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,729 @@
.class public Landroidx/recyclerview/widget/ChildHelper;
.super Ljava/lang/Object;
.source "ChildHelper.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/ChildHelper$Callback;,
Landroidx/recyclerview/widget/ChildHelper$Bucket;
}
.end annotation
# static fields
.field public static final DEBUG:Z = false
.field public static final TAG:Ljava/lang/String; = "ChildrenHelper"
# instance fields
.field public final mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
.field public final mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
.field public 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
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/recyclerview/widget/ChildHelper;->mCallback:Landroidx/recyclerview/widget/ChildHelper$Callback;
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;
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;
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;
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;
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;
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;
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;
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;
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;
invoke-interface {p2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result p2
goto :goto_0
: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;
invoke-virtual {v0, p2, p3}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
if-eqz p3, :cond_1
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;
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
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;
invoke-interface {p2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildCount()I
move-result p2
goto :goto_0
: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;
invoke-virtual {v0, p2, p4}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->insert(IZ)V
if-eqz p4, :cond_1
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;
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
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;
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;
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;
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;
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;
invoke-interface {v3, v2}, Landroidx/recyclerview/widget/ChildHelper$Callback;->getChildViewHolder(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v3
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getLayoutPosition()I
move-result v4
if-ne v4, p1, :cond_0
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v4
if-nez v4, :cond_0
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
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;
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;
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;
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;
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;
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;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->set(I)V
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->hideViewInternal(Landroid/view/View;)V
return-void
: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;
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;
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;
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;
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;
invoke-virtual {v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->reset()V
iget-object v0, p0, Landroidx/recyclerview/widget/ChildHelper;->mHiddenViews:Ljava/util/List;
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;
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;
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;
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;
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;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
move-result v1
if-eqz v1, :cond_1
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;
invoke-interface {p1, v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->removeViewAt(I)V
return-void
.end method
.method public removeViewAt(I)V
.locals 2
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;
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;
invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
move-result v1
if-eqz v1, :cond_1
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;
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;
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, v2, :cond_0
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
return v1
:cond_0
iget-object v2, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-virtual {v2, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->get(I)Z
move-result v2
if-eqz v2, :cond_1
iget-object v2, p0, Landroidx/recyclerview/widget/ChildHelper;->mBucket:Landroidx/recyclerview/widget/ChildHelper$Bucket;
invoke-virtual {v2, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->remove(I)Z
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;
invoke-interface {p1, v0}, Landroidx/recyclerview/widget/ChildHelper$Callback;->removeViewAt(I)V
return v1
:cond_1
const/4 p1, 0x0
return p1
.end method
.method public toString()Ljava/lang/String;
.locals 2
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;
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;
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;
invoke-virtual {v1, v0}, Landroidx/recyclerview/widget/ChildHelper$Bucket;->clear(I)V
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/ChildHelper;->unhideViewInternal(Landroid/view/View;)Z
return-void
: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
: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,93 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$1;
.super Ljava/lang/Object;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public 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;
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;
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;
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;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$1;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
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,83 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$2;
.super Ljava/lang/Object;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public 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;
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;
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;
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;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$2;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
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,83 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$3;
.super Ljava/lang/Object;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public 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;
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;
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;
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;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
iget-object v0, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$3;->this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
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,92 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$4;
.super Landroid/animation/AnimatorListenerAdapter;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public final synthetic val$animation:Landroid/view/ViewPropertyAnimator;
.field public final synthetic val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public 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;
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
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
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;
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;
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;
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;
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchRemoveStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method

View file

@ -0,0 +1,98 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$5;
.super Landroid/animation/AnimatorListenerAdapter;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public final synthetic val$animation:Landroid/view/ViewPropertyAnimator;
.field public final synthetic val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public 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;
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
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
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;
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;
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;
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;
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchAddStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method

View file

@ -0,0 +1,120 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$6;
.super Landroid/animation/AnimatorListenerAdapter;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public final synthetic val$animation:Landroid/view/ViewPropertyAnimator;
.field public final synthetic val$deltaX:I
.field public final synthetic val$deltaY:I
.field public final synthetic val$holder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public 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;
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;
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;
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
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;
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;
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;
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;
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/SimpleItemAnimator;->dispatchMoveStarting(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
return-void
.end method

View file

@ -0,0 +1,112 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$7;
.super Landroid/animation/AnimatorListenerAdapter;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public final synthetic val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.field public final synthetic val$oldViewAnim:Landroid/view/ViewPropertyAnimator;
.field public 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;
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
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
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
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$7;->val$view:Landroid/view/View;
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;
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;
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;
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;
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,112 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$8;
.super Landroid/animation/AnimatorListenerAdapter;
.source "DefaultItemAnimator.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/DefaultItemAnimator;
.field public final synthetic val$changeInfo:Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.field public final synthetic val$newView:Landroid/view/View;
.field public 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;
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
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
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
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
iget-object p1, p0, Landroidx/recyclerview/widget/DefaultItemAnimator$8;->val$newView:Landroid/view/View;
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;
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;
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;
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;
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,120 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$ChangeInfo;
.super Ljava/lang/Object;
.source "DefaultItemAnimator.java"
# 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 public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V
.locals 0
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
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 3
const-string v0, "ChangeInfo{oldHolder="
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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
const/16 v2, 0x7d
invoke-static {v0, v1, v2}, Lf/e/b/a/a;->a(Ljava/lang/StringBuilder;IC)Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,46 @@
.class public Landroidx/recyclerview/widget/DefaultItemAnimator$MoveInfo;
.super Ljava/lang/Object;
.source "DefaultItemAnimator.java"
# 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
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,73 @@
.class public final Landroidx/recyclerview/widget/DiffUtil$1;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# interfaces
.implements Ljava/util/Comparator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/DiffUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/Comparator<",
"Landroidx/recyclerview/widget/DiffUtil$Snake;",
">;"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public compare(Landroidx/recyclerview/widget/DiffUtil$Snake;Landroidx/recyclerview/widget/DiffUtil$Snake;)I
.locals 2
iget v0, p1, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v1, p2, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
sub-int/2addr v0, v1
if-nez v0, :cond_0
iget p1, p1, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
iget p2, p2, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
sub-int v0, p1, p2
:cond_0
return v0
.end method
.method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I
.locals 0
check-cast p1, Landroidx/recyclerview/widget/DiffUtil$Snake;
check-cast p2, Landroidx/recyclerview/widget/DiffUtil$Snake;
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/DiffUtil$1;->compare(Landroidx/recyclerview/widget/DiffUtil$Snake;Landroidx/recyclerview/widget/DiffUtil$Snake;)I
move-result p1
return p1
.end method

View file

@ -0,0 +1,48 @@
.class public abstract Landroidx/recyclerview/widget/DiffUtil$Callback;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# 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
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

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,92 @@
.class public abstract Landroidx/recyclerview/widget/DiffUtil$ItemCallback;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# 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
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,38 @@
.class public Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# 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 public currentPos:I
.field public posInOwnerList:I
.field public removal:Z
# direct methods
.method public constructor <init>(IIZ)V
.locals 0
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,50 @@
.class public Landroidx/recyclerview/widget/DiffUtil$Range;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# 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 public newListEnd:I
.field public newListStart:I
.field public oldListEnd:I
.field public oldListStart:I
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public constructor <init>(IIII)V
.locals 0
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

View file

@ -0,0 +1,36 @@
.class public Landroidx/recyclerview/widget/DiffUtil$Snake;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# 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 removal:Z
.field public reverse:Z
.field public size:I
.field public x:I
.field public y:I
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method

View file

@ -0,0 +1,757 @@
.class public Landroidx/recyclerview/widget/DiffUtil;
.super Ljava/lang/Object;
.source "DiffUtil.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/recyclerview/widget/DiffUtil$PostponedUpdate;,
Landroidx/recyclerview/widget/DiffUtil$DiffResult;,
Landroidx/recyclerview/widget/DiffUtil$Range;,
Landroidx/recyclerview/widget/DiffUtil$Snake;,
Landroidx/recyclerview/widget/DiffUtil$ItemCallback;,
Landroidx/recyclerview/widget/DiffUtil$Callback;
}
.end annotation
# static fields
.field public static final SNAKE_COMPARATOR:Ljava/util/Comparator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Comparator<",
"Landroidx/recyclerview/widget/DiffUtil$Snake;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 1
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;->SNAKE_COMPARATOR:Ljava/util/Comparator;
return-void
.end method
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.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
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 15
.param p0 # Landroidx/recyclerview/widget/DiffUtil$Callback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getOldListSize()I
move-result v0
invoke-virtual {p0}, Landroidx/recyclerview/widget/DiffUtil$Callback;->getNewListSize()I
move-result v1
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
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 v3, v0, v1
sub-int/2addr v0, v1
invoke-static {v0}, Ljava/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, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
:goto_0
invoke-interface {v2}, Ljava/util/List;->isEmpty()Z
move-result v5
if-nez v5, :cond_7
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
move-object v14, v5
check-cast v14, Landroidx/recyclerview/widget/DiffUtil$Range;
iget v6, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iget v7, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iget v8, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
iget v9, v14, Landroidx/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}, Landroidx/recyclerview/widget/DiffUtil;->diffPartial(Landroidx/recyclerview/widget/DiffUtil$Callback;IIII[I[II)Landroidx/recyclerview/widget/DiffUtil$Snake;
move-result-object v5
if-eqz v5, :cond_6
iget v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->size:I
if-lez v6, :cond_0
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_0
iget v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v7, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
add-int/2addr v6, v7
iput v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
iget v7, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
add-int/2addr v6, v7
iput v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
invoke-interface {v3}, Ljava/util/List;->isEmpty()Z
move-result v6
if-eqz v6, :cond_1
new-instance v6, Landroidx/recyclerview/widget/DiffUtil$Range;
invoke-direct {v6}, Landroidx/recyclerview/widget/DiffUtil$Range;-><init>()V
goto :goto_1
:cond_1
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v6
add-int/lit8 v6, v6, -0x1
invoke-interface {v3, v6}, Ljava/util/List;->remove(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroidx/recyclerview/widget/DiffUtil$Range;
:goto_1
iget v7, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iget v7, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
iget-boolean v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
if-eqz v7, :cond_2
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
goto :goto_2
:cond_2
iget-boolean v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->removal:Z
if-eqz v7, :cond_3
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
add-int/lit8 v7, v7, -0x1
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
goto :goto_2
:cond_3
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListEnd:I
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
add-int/lit8 v7, v7, -0x1
iput v7, v6, Landroidx/recyclerview/widget/DiffUtil$Range;->newListEnd:I
:goto_2
invoke-interface {v2, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
iget-boolean v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
if-eqz v6, :cond_5
iget-boolean v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->removal:Z
if-eqz v6, :cond_4
iget v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->size:I
add-int/2addr v6, v7
add-int/lit8 v6, v6, 0x1
iput v6, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iget v5, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
add-int/2addr v5, v7
iput v5, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
goto :goto_3
:cond_4
iget v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->size:I
add-int/2addr v6, v7
iput v6, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iget v5, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
add-int/2addr v5, v7
add-int/lit8 v5, v5, 0x1
iput v5, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
goto :goto_3
:cond_5
iget v6, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v7, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->size:I
add-int/2addr v6, v7
iput v6, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->oldListStart:I
iget v5, v5, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
add-int/2addr v5, v7
iput v5, v14, Landroidx/recyclerview/widget/DiffUtil$Range;->newListStart:I
:goto_3
invoke-interface {v2, v14}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto/16 :goto_0
:cond_6
invoke-interface {v3, v14}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto/16 :goto_0
:cond_7
sget-object v0, Landroidx/recyclerview/widget/DiffUtil;->SNAKE_COMPARATOR:Ljava/util/Comparator;
invoke-static {v4, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
new-instance v0, Landroidx/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}, Landroidx/recyclerview/widget/DiffUtil$DiffResult;-><init>(Landroidx/recyclerview/widget/DiffUtil$Callback;Ljava/util/List;[I[IZ)V
return-object v0
.end method
.method public static diffPartial(Landroidx/recyclerview/widget/DiffUtil$Callback;IIII[I[II)Landroidx/recyclerview/widget/DiffUtil$Snake;
.locals 19
move-object/from16 v0, p0
move-object/from16 v1, p5
move-object/from16 v2, p6
sub-int v3, p2, p1
sub-int v4, p4, p3
const/4 v5, 0x1
if-lt v3, v5, :cond_f
if-ge v4, v5, :cond_0
goto/16 :goto_a
:cond_0
sub-int v6, v3, v4
add-int v7, v3, v4
add-int/2addr v7, v5
div-int/lit8 v7, v7, 0x2
sub-int v8, p7, v7
sub-int/2addr v8, v5
add-int v9, p7, v7
add-int/2addr v9, v5
const/4 v10, 0x0
invoke-static {v1, v8, v9, v10}, Ljava/util/Arrays;->fill([IIII)V
add-int/2addr v8, v6
add-int/2addr v9, v6
invoke-static {v2, v8, v9, v3}, Ljava/util/Arrays;->fill([IIII)V
rem-int/lit8 v8, v6, 0x2
if-eqz v8, :cond_1
const/4 v8, 0x1
goto :goto_0
:cond_1
const/4 v8, 0x0
:goto_0
const/4 v9, 0x0
:goto_1
if-gt v9, v7, :cond_e
neg-int v11, v9
move v12, v11
:goto_2
if-gt v12, v9, :cond_6
if-eq v12, v11, :cond_3
if-eq v12, v9, :cond_2
add-int v13, p7, v12
add-int/lit8 v14, v13, -0x1
aget v14, v1, v14
add-int/2addr v13, v5
aget v13, v1, v13
if-ge v14, v13, :cond_2
goto :goto_3
:cond_2
add-int v13, p7, v12
sub-int/2addr v13, v5
aget v13, v1, v13
add-int/2addr v13, v5
const/4 v14, 0x1
goto :goto_4
:cond_3
:goto_3
add-int v13, p7, v12
add-int/2addr v13, v5
aget v13, v1, v13
const/4 v14, 0x0
:goto_4
sub-int v15, v13, v12
:goto_5
if-ge v13, v3, :cond_4
if-ge v15, v4, :cond_4
add-int v10, p1, v13
add-int v5, p3, v15
invoke-virtual {v0, v10, v5}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areItemsTheSame(II)Z
move-result v5
if-eqz v5, :cond_4
add-int/lit8 v13, v13, 0x1
add-int/lit8 v15, v15, 0x1
const/4 v5, 0x1
const/4 v10, 0x0
goto :goto_5
:cond_4
add-int v5, p7, v12
aput v13, v1, v5
if-eqz v8, :cond_5
sub-int v10, v6, v9
const/4 v13, 0x1
add-int/2addr v10, v13
if-lt v12, v10, :cond_5
add-int v10, v6, v9
sub-int/2addr v10, v13
if-gt v12, v10, :cond_5
aget v10, v1, v5
aget v13, v2, v5
if-lt v10, v13, :cond_5
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$Snake;
invoke-direct {v0}, Landroidx/recyclerview/widget/DiffUtil$Snake;-><init>()V
aget v3, v2, v5
iput v3, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v3, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
sub-int/2addr v3, v12
iput v3, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
aget v1, v1, v5
aget v2, v2, v5
sub-int/2addr v1, v2
iput v1, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->size:I
iput-boolean v14, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->removal:Z
const/4 v5, 0x0
iput-boolean v5, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
return-object v0
:cond_5
const/4 v5, 0x0
add-int/lit8 v12, v12, 0x2
const/4 v5, 0x1
const/4 v10, 0x0
goto :goto_2
:cond_6
const/4 v5, 0x0
move v10, v11
:goto_6
if-gt v10, v9, :cond_d
add-int v12, v10, v6
add-int v13, v9, v6
if-eq v12, v13, :cond_9
add-int v13, v11, v6
if-eq v12, v13, :cond_7
add-int v13, p7, v12
add-int/lit8 v14, v13, -0x1
aget v14, v2, v14
const/4 v15, 0x1
add-int/2addr v13, v15
aget v13, v2, v13
if-ge v14, v13, :cond_8
goto :goto_7
:cond_7
const/4 v15, 0x1
:cond_8
add-int v13, p7, v12
add-int/2addr v13, v15
aget v13, v2, v13
sub-int/2addr v13, v15
const/4 v14, 0x1
goto :goto_8
:cond_9
const/4 v15, 0x1
:goto_7
add-int v13, p7, v12
sub-int/2addr v13, v15
aget v13, v2, v13
const/4 v14, 0x0
:goto_8
sub-int v16, v13, v12
:goto_9
if-lez v13, :cond_a
if-lez v16, :cond_a
add-int v17, p1, v13
add-int/lit8 v5, v17, -0x1
add-int v17, p3, v16
move/from16 v18, v3
add-int/lit8 v3, v17, -0x1
invoke-virtual {v0, v5, v3}, Landroidx/recyclerview/widget/DiffUtil$Callback;->areItemsTheSame(II)Z
move-result v3
if-eqz v3, :cond_b
add-int/lit8 v13, v13, -0x1
add-int/lit8 v16, v16, -0x1
move/from16 v3, v18
const/4 v5, 0x0
const/4 v15, 0x1
goto :goto_9
:cond_a
move/from16 v18, v3
:cond_b
add-int v3, p7, v12
aput v13, v2, v3
if-nez v8, :cond_c
if-lt v12, v11, :cond_c
if-gt v12, v9, :cond_c
aget v5, v1, v3
aget v13, v2, v3
if-lt v5, v13, :cond_c
new-instance v0, Landroidx/recyclerview/widget/DiffUtil$Snake;
invoke-direct {v0}, Landroidx/recyclerview/widget/DiffUtil$Snake;-><init>()V
aget v4, v2, v3
iput v4, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
iget v4, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->x:I
sub-int/2addr v4, v12
iput v4, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->y:I
aget v1, v1, v3
aget v2, v2, v3
sub-int/2addr v1, v2
iput v1, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->size:I
iput-boolean v14, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->removal:Z
const/4 v3, 0x1
iput-boolean v3, v0, Landroidx/recyclerview/widget/DiffUtil$Snake;->reverse:Z
return-object v0
:cond_c
const/4 v3, 0x1
add-int/lit8 v10, v10, 0x2
move/from16 v3, v18
const/4 v5, 0x0
goto :goto_6
:cond_d
move/from16 v18, v3
const/4 v3, 0x1
add-int/lit8 v9, v9, 0x1
move/from16 v3, v18
const/4 v5, 0x1
const/4 v10, 0x0
goto/16 :goto_1
:cond_e
new-instance v0, Ljava/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}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_f
:goto_a
const/4 v0, 0x0
return-object v0
.end method

View file

@ -0,0 +1,439 @@
.class public Landroidx/recyclerview/widget/DividerItemDecoration;
.super Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;
.source "DividerItemDecoration.java"
# static fields
.field public static final ATTRS:[I
.field public static final HORIZONTAL:I = 0x0
.field public static final TAG:Ljava/lang/String; = "DividerItem"
.field public static final VERTICAL:I = 0x1
# instance fields
.field public final mBounds:Landroid/graphics/Rect;
.field public mDivider:Landroid/graphics/drawable/Drawable;
.field public mOrientation:I
# direct methods
.method public static constructor <clinit>()V
.locals 3
const/4 v0, 0x1
new-array v0, v0, [I
const/4 v1, 0x0
const v2, 0x1010214
aput v2, v0, v1
sput-object v0, Landroidx/recyclerview/widget/DividerItemDecoration;->ATTRS:[I
return-void
.end method
.method public constructor <init>(Landroid/content/Context;I)V
.locals 2
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;-><init>()V
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
invoke-virtual {p1, v0}, Landroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
move-result-object p1
const/4 v0, 0x0
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;
iget-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()"
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:cond_0
invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V
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
invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingTop()I
move-result v0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getHeight()I
move-result v2
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingBottom()I
move-result v3
sub-int/2addr v2, v3
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingLeft()I
move-result v3
invoke-virtual {p2}, Landroid/view/ViewGroup;->getWidth()I
move-result v4
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingRight()I
move-result v5
sub-int/2addr v4, v5
invoke-virtual {p1, v3, v0, v4, v2}, Landroid/graphics/Canvas;->clipRect(IIII)Z
goto :goto_0
:cond_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getHeight()I
move-result v2
const/4 v0, 0x0
:goto_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getChildCount()I
move-result v3
:goto_1
if-ge v1, v3, :cond_1
invoke-virtual {p2, v1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v4
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;
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 v4, v5
iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
invoke-virtual {v5}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
move-result v5
sub-int v5, v4, v5
iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
invoke-virtual {v6, v5, v0, v4, v2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
add-int/lit8 v1, v1, 0x1
goto :goto_1
: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
invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I
invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView;->getClipToPadding()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingLeft()I
move-result v0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getWidth()I
move-result v2
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingRight()I
move-result v3
sub-int/2addr v2, v3
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingTop()I
move-result v3
invoke-virtual {p2}, Landroid/view/ViewGroup;->getHeight()I
move-result v4
invoke-virtual {p2}, Landroid/view/ViewGroup;->getPaddingBottom()I
move-result v5
sub-int/2addr v4, v5
invoke-virtual {p1, v0, v3, v2, v4}, Landroid/graphics/Canvas;->clipRect(IIII)Z
goto :goto_0
:cond_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getWidth()I
move-result v2
const/4 v0, 0x0
:goto_0
invoke-virtual {p2}, Landroid/view/ViewGroup;->getChildCount()I
move-result v3
:goto_1
if-ge v1, v3, :cond_1
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;
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;
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 v4, v5
iget-object v5, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
invoke-virtual {v5}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
move-result v5
sub-int v5, v4, v5
iget-object v6, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
invoke-virtual {v6, v0, v5, v2, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
iget-object v4, p0, Landroidx/recyclerview/widget/DividerItemDecoration;->mDivider:Landroid/graphics/drawable/Drawable;
invoke-virtual {v4, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
add-int/lit8 v1, v1, 0x1
goto :goto_1
: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
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
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
: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
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
invoke-direct {p0, p1, p2}, Landroidx/recyclerview/widget/DividerItemDecoration;->drawVertical(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;)V
goto :goto_0
: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
: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
: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,47 @@
.class public Landroidx/recyclerview/widget/FastScroller$1;
.super Ljava/lang/Object;
.source "FastScroller.java"
# 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 public 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;
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
invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/FastScroller;->hide(I)V
return-void
.end method

View file

@ -0,0 +1,50 @@
.class public Landroidx/recyclerview/widget/FastScroller$2;
.super Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;
.source "FastScroller.java"
# 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 public 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;
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;
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->computeHorizontalScrollOffset()I
move-result p3
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->computeVerticalScrollOffset()I
move-result p1
invoke-virtual {p2, p3, p1}, Landroidx/recyclerview/widget/FastScroller;->updateScrollPosition(II)V
return-void
.end method

View file

@ -0,0 +1,103 @@
.class public Landroidx/recyclerview/widget/FastScroller$AnimatorListener;
.super Landroid/animation/AnimatorListenerAdapter;
.source "FastScroller.java"
# 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 public mCanceled:Z
.field public 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;
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;
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;
iput v0, p1, Landroidx/recyclerview/widget/FastScroller;->mAnimationState:I
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
iput v0, p1, Landroidx/recyclerview/widget/FastScroller;->mAnimationState:I
invoke-virtual {p1}, Landroidx/recyclerview/widget/FastScroller;->requestRedraw()V
:goto_0
return-void
.end method

View file

@ -0,0 +1,73 @@
.class public Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;
.super Ljava/lang/Object;
.source "FastScroller.java"
# 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 public 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;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public onAnimationUpdate(Landroid/animation/ValueAnimator;)V
.locals 1
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 p1, p1, v0
float-to-int p1, p1
iget-object v0, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;->this$0:Landroidx/recyclerview/widget/FastScroller;
iget-object v0, v0, Landroidx/recyclerview/widget/FastScroller;->mVerticalThumbDrawable:Landroid/graphics/drawable/StateListDrawable;
invoke-virtual {v0, p1}, Landroid/graphics/drawable/StateListDrawable;->setAlpha(I)V
iget-object v0, p0, Landroidx/recyclerview/widget/FastScroller$AnimatorUpdater;->this$0:Landroidx/recyclerview/widget/FastScroller;
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;
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,139 @@
.class public final Landroidx/recyclerview/widget/GapWorker$1;
.super Ljava/lang/Object;
.source "GapWorker.java"
# interfaces
.implements Ljava/util/Comparator;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/recyclerview/widget/GapWorker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
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
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 5
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
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
iget-object v3, p2, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
if-nez v3, :cond_1
const/4 v3, 0x1
goto :goto_1
:cond_1
const/4 v3, 0x0
:goto_1
const/4 v4, -0x1
if-eq v0, v3, :cond_3
iget-object p1, p1, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
if-nez p1, :cond_2
goto :goto_2
:cond_2
const/4 v2, -0x1
:goto_2
return v2
: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
const/4 v2, -0x1
:cond_4
return v2
: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
: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
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,281 @@
.class public Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
.super Ljava/lang/Object;
.source "GapWorker.java"
# 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 public mCount:I
.field public mPrefetchArray:[I
.field public mPrefetchDx:I
.field public mPrefetchDy:I
# direct methods
.method public constructor <init>()V
.locals 0
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 v0, v0, 0x2
iget-object v1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
if-nez v1, :cond_0
const/4 v1, 0x4
new-array v1, v1, [I
iput-object v1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
iget-object v1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
const/4 v2, -0x1
invoke-static {v1, v2}, Ljava/util/Arrays;->fill([II)V
goto :goto_0
:cond_0
array-length v2, v1
if-lt v0, v2, :cond_1
mul-int/lit8 v2, v0, 0x2
new-array v2, v2, [I
iput-object v2, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
iget-object v2, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
array-length v3, v1
const/4 v4, 0x0
invoke-static {v1, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
:cond_1
:goto_0
iget-object v1, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
aput p1, v1, v0
add-int/lit8 v0, v0, 0x1
aput p2, v1, v0
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
: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
: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
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
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([II)V
:cond_0
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mLayout:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
iget-object v1, p1, Landroidx/recyclerview/widget/RecyclerView;->mAdapter:Landroidx/recyclerview/widget/RecyclerView$Adapter;
if-eqz v1, :cond_3
if-eqz v0, :cond_3
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->isItemPrefetchEnabled()Z
move-result v1
if-eqz v1, :cond_3
if-eqz p2, :cond_1
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
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
: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
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
iget v2, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxCountObserved:I
if-le v1, v2, :cond_3
iput v1, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxCountObserved:I
iput-boolean p2, v0, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->mPrefetchMaxObservedInInitialPrefetch:Z
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
const/4 v2, 0x0
:goto_0
if-ge v2, v0, :cond_1
iget-object v3, p0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
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,58 @@
.class public Landroidx/recyclerview/widget/GapWorker$Task;
.super Ljava/lang/Object;
.source "GapWorker.java"
# 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
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,756 @@
.class public final Landroidx/recyclerview/widget/GapWorker;
.super Ljava/lang/Object;
.source "GapWorker.java"
# 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 public static final sGapWorker:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal<",
"Landroidx/recyclerview/widget/GapWorker;",
">;"
}
.end annotation
.end field
.field public 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 public mFrameIntervalNs:J
.field public mPostTimeNs:J
.field public mRecyclerViews:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/recyclerview/widget/RecyclerView;",
">;"
}
.end annotation
.end field
.field public 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 public static constructor <clinit>()V
.locals 1
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;
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
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
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 11
iget-object v0, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_0
if-ge v2, v0, :cond_1
iget-object v4, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v4}, Landroid/view/ViewGroup;->getWindowVisibility()I
move-result v5
if-nez v5, :cond_0
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
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;
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->ensureCapacity(I)V
const/4 v2, 0x0
const/4 v3, 0x0
:goto_1
if-ge v2, v0, :cond_6
iget-object v4, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v4}, Landroid/view/ViewGroup;->getWindowVisibility()I
move-result v5
if-eqz v5, :cond_2
goto :goto_5
:cond_2
iget-object v5, v4, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
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
invoke-static {v7}, Ljava/lang/Math;->abs(I)I
move-result v7
add-int/2addr v7, v6
move v6, v3
const/4 v3, 0x0
:goto_2
iget v8, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
mul-int/lit8 v8, v8, 0x2
if-ge v3, v8, :cond_5
iget-object v8, p0, Landroidx/recyclerview/widget/GapWorker;->mTasks:Ljava/util/ArrayList;
invoke-virtual {v8}, Ljava/util/ArrayList;->size()I
move-result v8
if-lt v6, v8, :cond_3
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;
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;
invoke-virtual {v8, v6}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Landroidx/recyclerview/widget/GapWorker$Task;
:goto_3
iget-object v9, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
add-int/lit8 v10, v3, 0x1
aget v9, v9, v10
if-gt v9, v7, :cond_4
const/4 v10, 0x1
goto :goto_4
:cond_4
const/4 v10, 0x0
:goto_4
iput-boolean v10, v8, Landroidx/recyclerview/widget/GapWorker$Task;->immediate:Z
iput v7, v8, Landroidx/recyclerview/widget/GapWorker$Task;->viewVelocity:I
iput v9, v8, Landroidx/recyclerview/widget/GapWorker$Task;->distanceToItem:I
iput-object v4, v8, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
iget-object v9, v5, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
aget v9, v9, v3
iput v9, v8, Landroidx/recyclerview/widget/GapWorker$Task;->position:I
add-int/lit8 v6, v6, 0x1
add-int/lit8 v3, v3, 0x2
goto :goto_2
:cond_5
move v3, v6
: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;
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
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
: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
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mNestedRecyclerView:Ljava/lang/ref/WeakReference;
if-eqz v0, :cond_1
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isBound()Z
move-result v0
if-eqz v0, :cond_1
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->isInvalid()Z
move-result v0
if-nez v0, :cond_1
iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->mNestedRecyclerView:Ljava/lang/ref/WeakReference;
invoke-virtual {p1}, Ljava/lang/ref/WeakReference;->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;
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;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/recyclerview/widget/GapWorker$Task;
iget-object v2, v1, Landroidx/recyclerview/widget/GapWorker$Task;->view:Landroidx/recyclerview/widget/RecyclerView;
if-nez v2, :cond_0
goto :goto_1
:cond_0
invoke-direct {p0, v1, p1, p2}, Landroidx/recyclerview/widget/GapWorker;->flushTaskWithDeadline(Landroidx/recyclerview/widget/GapWorker$Task;J)V
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
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
const/4 v2, 0x0
:goto_0
if-ge v2, v0, :cond_1
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
invoke-static {v3}, Landroidx/recyclerview/widget/RecyclerView;->getChildViewHolderInt(Landroid/view/View;)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
move-result-object v3
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
: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;
invoke-virtual {v0}, Landroidx/recyclerview/widget/ChildHelper;->getUnfilteredChildCount()I
move-result v0
if-eqz v0, :cond_1
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->removeAndRecycleViews()V
:cond_1
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mPrefetchRegistry:Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
const/4 v1, 0x1
invoke-virtual {v0, p1, v1}, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->collectPrefetchPositionsFromView(Landroidx/recyclerview/widget/RecyclerView;Z)V
iget v1, v0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
if-eqz v1, :cond_3
:try_start_0
const-string v1, "RV Nested Prefetch"
invoke-static {v1}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V
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
:goto_0
iget v2, v0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mCount:I
mul-int/lit8 v2, v2, 0x2
if-ge v1, v2, :cond_2
iget-object v2, v0, Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;->mPrefetchArray:[I
aget v2, v2, v1
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
:cond_2
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
goto :goto_1
:catchall_0
move-exception p1
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
throw p1
:cond_3
:goto_1
return-void
.end method
.method private prefetchPositionWithDeadline(Landroidx/recyclerview/widget/RecyclerView;IJ)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.locals 2
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
:cond_0
iget-object v0, p1, Landroidx/recyclerview/widget/RecyclerView;->mRecycler:Landroidx/recyclerview/widget/RecyclerView$Recycler;
const/4 v1, 0x0
:try_start_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->onEnterLayoutOrScroll()V
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
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
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
: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
:cond_2
:goto_0
invoke-virtual {p1, v1}, Landroidx/recyclerview/widget/RecyclerView;->onExitLayoutOrScroll(Z)V
return-object p2
:catchall_0
move-exception p2
invoke-virtual {p1, v1}, Landroidx/recyclerview/widget/RecyclerView;->onExitLayoutOrScroll(Z)V
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;
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 5
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 v4, v0, v2
if-nez v4, :cond_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getNanoTime()J
move-result-wide v0
iput-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
invoke-virtual {p1, p0}, Landroid/view/ViewGroup;->post(Ljava/lang/Runnable;)Z
: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
invoke-direct {p0}, Landroidx/recyclerview/widget/GapWorker;->buildTaskList()V
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;
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"
invoke-static {v2}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V
iget-object v2, p0, Landroidx/recyclerview/widget/GapWorker;->mRecyclerViews:Ljava/util/ArrayList;
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
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;
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;
invoke-virtual {v6, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v6}, Landroid/view/ViewGroup;->getWindowVisibility()I
move-result v7
if-nez v7, :cond_1
invoke-virtual {v6}, Landroid/view/ViewGroup;->getDrawingTime()J
move-result-wide v6
invoke-static {v6, v7, v4, v5}, Ljava/lang/Math;->max(JJ)J
move-result-wide v4
:cond_1
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_2
cmp-long v2, v4, v0
if-nez v2, :cond_3
goto :goto_0
: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
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
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
return-void
:catchall_0
move-exception v2
iput-wide v0, p0, Landroidx/recyclerview/widget/GapWorker;->mPostTimeNs:J
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
throw v2
.end method

View file

@ -0,0 +1,42 @@
.class public final Landroidx/recyclerview/widget/GridLayoutManager$DefaultSpanSizeLookup;
.super Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;
.source "GridLayoutManager.java"
# 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
invoke-direct {p0}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;-><init>()V
return-void
.end method
# virtual methods
.method public getSpanIndex(II)I
.locals 0
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,124 @@
.class public Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;
.super Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
.source "GridLayoutManager.java"
# 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 public mSpanIndex:I
.field public mSpanSize:I
# direct methods
.method public constructor <init>(II)V
.locals 0
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
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
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
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
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,442 @@
.class public abstract Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;
.super Ljava/lang/Object;
.source "GridLayoutManager.java"
# 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 public mCacheSpanGroupIndices:Z
.field public mCacheSpanIndices:Z
.field public final mSpanGroupIndexCache:Landroid/util/SparseIntArray;
.field public final mSpanIndexCache:Landroid/util/SparseIntArray;
# direct methods
.method public constructor <init>()V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
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
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
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
invoke-virtual {p0}, Landroid/util/SparseIntArray;->size()I
move-result p1
if-ge v1, p1, :cond_2
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
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
invoke-virtual {v0, p1, v1}, Landroid/util/SparseIntArray;->get(II)I
move-result v0
if-eq v0, v1, :cond_1
return v0
: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;
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
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
invoke-virtual {v0, p1, v1}, Landroid/util/SparseIntArray;->get(II)I
move-result v0
if-eq v0, v1, :cond_1
return v0
: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;
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;
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;
invoke-virtual {v2, v0}, Landroid/util/SparseIntArray;->get(I)I
move-result v2
add-int/lit8 v3, v0, 0x1
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 v0, v4
if-ne v0, p2, :cond_1
add-int/lit8 v0, v2, 0x1
move v2, v0
const/4 v0, 0x0
goto :goto_0
:cond_0
const/4 v0, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
:cond_1
:goto_0
invoke-virtual {p0, p1}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v4
:goto_1
if-ge v3, p1, :cond_4
invoke-virtual {p0, v3}, Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
move-result v5
add-int/2addr v0, v5
if-ne v0, p2, :cond_2
add-int/lit8 v2, v2, 0x1
const/4 v0, 0x0
goto :goto_2
:cond_2
if-le v0, p2, :cond_3
add-int/lit8 v2, v2, 0x1
move v0, v5
:cond_3
:goto_2
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_4
add-int/2addr v0, v4
if-le v0, p2, :cond_5
add-int/lit8 v2, v2, 0x1
:cond_5
return v2
.end method
.method public getSpanIndex(II)I
.locals 5
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;
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;
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
const/4 v2, 0x0
const/4 v3, 0x0
:goto_0
if-ge v2, p1, :cond_4
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
const/4 v3, 0x0
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;
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;
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;
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;
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,77 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$1;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 public 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;
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;
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;
iget-object v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz v1, :cond_0
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;
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/ViewGroup;->removeCallbacks(Ljava/lang/Runnable;)Z
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$1;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
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,430 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$2;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 public 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;
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;
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
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;
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;
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;
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;
invoke-virtual {p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->obtainVelocityTracker()V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
iget-object v2, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-nez v2, :cond_4
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;
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
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
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;
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;
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;
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;
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;
iget v2, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
if-eq v2, v3, :cond_4
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;
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;
iput v3, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
const/4 v2, 0x0
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;
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz p1, :cond_5
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;
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
if-eqz p1, :cond_6
goto :goto_2
:cond_6
const/4 v0, 0x0
: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
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;
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;
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz p1, :cond_0
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;
iget p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
const/4 v0, -0x1
if-ne p1, v0, :cond_1
return-void
: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;
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;
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;
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
:cond_4
invoke-virtual {p2}, Landroid/view/MotionEvent;->getActionIndex()I
move-result p1
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;
iget v1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
if-ne v0, v1, :cond_9
if-nez p1, :cond_5
const/4 v4, 0x1
:cond_5
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
invoke-virtual {p2, v4}, Landroid/view/MotionEvent;->getPointerId(I)I
move-result v1
iput v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
iget-object v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
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
:cond_6
iget-object p1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker;
if-eqz p1, :cond_8
invoke-virtual {p1}, Landroid/view/VelocityTracker;->clear()V
goto :goto_0
:cond_7
if-ltz v1, :cond_9
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;
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;
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/ViewGroup;->removeCallbacks(Ljava/lang/Runnable;)Z
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$2;->this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
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;
iget-object p1, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {p1}, Landroid/view/ViewGroup;->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
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;
iput v0, p1, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
:cond_9
:goto_1
return-void
.end method

View file

@ -0,0 +1,133 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$3;
.super Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.source "ItemTouchHelper.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.field public final synthetic val$prevSelected:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public 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
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
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;
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;
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;
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;
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
invoke-virtual {p1, v1}, Landroidx/recyclerview/widget/ItemTouchHelper;->removeChildDrawingOrderCallbackIfNecessary(Landroid/view/View;)V
:cond_3
return-void
.end method

View file

@ -0,0 +1,127 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$4;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 public final synthetic this$0:Landroidx/recyclerview/widget/ItemTouchHelper;
.field public final synthetic val$anim:Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.field public 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
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;
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;
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getAdapterPosition()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;
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
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;
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;
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;
iget-object v0, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mRecyclerView:Landroidx/recyclerview/widget/RecyclerView;
invoke-virtual {v0, p0}, Landroid/view/ViewGroup;->post(Ljava/lang/Runnable;)Z
:cond_2
:goto_0
return-void
.end method

View file

@ -0,0 +1,82 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$5;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 public 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;
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;
iget-object v1, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mOverdrawChild:Landroid/view/View;
if-nez v1, :cond_0
return p2
:cond_0
iget v2, v0, Landroidx/recyclerview/widget/ItemTouchHelper;->mOverdrawChildPosition:I
const/4 v3, -0x1
if-ne v2, v3, :cond_1
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;
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,43 @@
.class public final Landroidx/recyclerview/widget/ItemTouchHelper$Callback$1;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 = 0x9
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
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 v0, v0, p1
mul-float v0, v0, p1
mul-float v0, v0, p1
return v0
.end method

View file

@ -0,0 +1,49 @@
.class public final Landroidx/recyclerview/widget/ItemTouchHelper$Callback$2;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 = 0x9
name = null
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
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 v1, v1, p1
mul-float v1, v1, p1
mul-float v1, 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,153 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;
.super Landroid/view/GestureDetector$SimpleOnGestureListener;
.source "ItemTouchHelper.java"
# 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 public mShouldReactToLongPress:Z
.field public 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;
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;
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;
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;
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
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;
iget v2, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mActivePointerId:I
if-ne v1, v2, :cond_2
invoke-virtual {p1, v2}, Landroid/view/MotionEvent;->findPointerIndex(I)I
move-result v1
invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->getX(I)F
move-result v2
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;
iput v2, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchX:F
iput p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mInitialTouchY:F
const/4 p1, 0x0
iput p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mDy:F
iput p1, v1, Landroidx/recyclerview/widget/ItemTouchHelper;->mDx:F
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
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,49 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation$1;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# 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 public 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;
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;
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,272 @@
.class public Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;
.super Ljava/lang/Object;
.source "ItemTouchHelper.java"
# interfaces
.implements Landroid/animation/Animator$AnimatorListener;
# annotations
.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 public final mActionState:I
.field public final mAnimationType:I
.field public mEnded:Z
.field public mFraction:F
.field public mIsPendingCleanup:Z
.field public mOverridden:Z
.field public final mStartDx:F
.field public final mStartDy:F
.field public final mTargetX:F
.field public final mTargetY:F
.field public final mValueAnimator:Landroid/animation/ValueAnimator;
.field public final mViewHolder:Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
.field public mX:F
.field public mY:F
# direct methods
.method public constructor <init>(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;IIFFFF)V
.locals 1
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
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;
iget-object p2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
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
iget-object p2, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
invoke-virtual {p2, p1}, Landroid/animation/ValueAnimator;->setTarget(Ljava/lang/Object;)V
iget-object p1, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {p1, p0}, Landroid/animation/ValueAnimator;->addListener(Landroid/animation/Animator$AnimatorListener;)V
const/4 p1, 0x0
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;
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
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;
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;
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
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;
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;
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
invoke-static {v1, v0, v2, v0}, Lf/e/b/a/a;->a(FFFF)F
move-result v0
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;
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
invoke-static {v1, v0, v2, v0}, Lf/e/b/a/a;->a(FFFF)F
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/ItemTouchHelper$RecoverAnimation;->mY:F
:goto_1
return-void
.end method

View file

@ -0,0 +1,110 @@
.class public abstract Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;
.super Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
.source "ItemTouchHelper.java"
# 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 public mDefaultDragDirs:I
.field public mDefaultSwipeDirs:I
# direct methods
.method public constructor <init>(II)V
.locals 0
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
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->getDragDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
move-result v0
invoke-virtual {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
move-result p1
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 "ItemTouchHelper.java"
# 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 "ItemTouchUIUtil.java"
# 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,173 @@
.class public Landroidx/recyclerview/widget/ItemTouchUIUtilImpl;
.super Ljava/lang/Object;
.source "ItemTouchUIUtilImpl.java"
# interfaces
.implements Landroidx/recyclerview/widget/ItemTouchUIUtil;
# static fields
.field public static final INSTANCE:Landroidx/recyclerview/widget/ItemTouchUIUtil;
# direct methods
.method public static constructor <clinit>()V
.locals 1
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
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static findMaxElevation(Landroidx/recyclerview/widget/RecyclerView;Landroid/view/View;)F
.locals 5
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
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
: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, Landroid/os/Build$VERSION;->SDK_INT:I
sget v0, Landroidx/recyclerview/R$id;->item_touch_helper_previous_elevation:I
invoke-virtual {p1, v0}, Landroid/view/View;->getTag(I)Ljava/lang/Object;
move-result-object v0
instance-of v1, v0, Ljava/lang/Float;
if-eqz v1, :cond_0
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
invoke-virtual {p1, v0, v1}, Landroid/view/View;->setTag(ILjava/lang/Object;)V
const/4 v0, 0x0
invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V
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
sget p1, Landroid/os/Build$VERSION;->SDK_INT:I
if-eqz p7, :cond_0
sget p1, Landroidx/recyclerview/R$id;->item_touch_helper_previous_elevation:I
invoke-virtual {p3, p1}, Landroid/view/View;->getTag(I)Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_0
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
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
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
invoke-virtual {p3, p2, p1}, Landroid/view/View;->setTag(ILjava/lang/Object;)V
:cond_0
invoke-virtual {p3, p4}, Landroid/view/View;->setTranslationX(F)V
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,161 @@
.class public Landroidx/recyclerview/widget/LayoutState;
.super Ljava/lang/Object;
.source "LayoutState.java"
# static fields
.field public static final INVALID_LAYOUT:I = -0x80000000
.field public static final ITEM_DIRECTION_HEAD:I = -0x1
.field public static final ITEM_DIRECTION_TAIL:I = 0x1
.field public static final LAYOUT_END:I = 0x1
.field public static final LAYOUT_START:I = -0x1
# instance fields
.field public mAvailable:I
.field public mCurrentPosition:I
.field public mEndLine:I
.field public mInfinite:Z
.field public mItemDirection:I
.field public mLayoutDirection:I
.field public mRecycle:Z
.field public mStartLine:I
.field public mStopInFocusable:Z
# direct methods
.method public constructor <init>()V
.locals 1
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
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
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 3
const-string v0, "LayoutState{mAvailable="
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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
const/16 v2, 0x7d
invoke-static {v0, v1, v2}, Lf/e/b/a/a;->a(Ljava/lang/StringBuilder;IC)Ljava/lang/String;
move-result-object v0
return-object v0
.end method

View file

@ -0,0 +1,394 @@
.class public Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;
.super Ljava/lang/Object;
.source "LinearLayoutManager.java"
# 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 public mCoordinate:I
.field public mLayoutFromEnd:Z
.field public mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
.field public mPosition:I
.field public mValid:Z
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
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;
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;
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;
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpaceChange()I
move-result v0
add-int/2addr v0, p1
iput v0, 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;
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;
invoke-virtual {v0}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpaceChange()I
move-result v0
if-ltz v0, :cond_0
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;
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;
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;
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;
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;
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;
invoke-virtual {v3, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p1
sub-int/2addr p1, v0
invoke-static {p1, v1}, Ljava/lang/Math;->min(II)I
move-result p1
add-int/2addr p1, v0
sub-int/2addr v2, p1
if-gez v2, :cond_2
iget p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
neg-int v0, v2
invoke-static {p2, v0}, Ljava/lang/Math;->min(II)I
move-result p2
add-int/2addr p2, p1
iput p2, 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;
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;
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;
invoke-virtual {v3, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
move-result v3
add-int/2addr v3, p2
iget-object p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
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;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result p1
sub-int/2addr p2, p1
iget-object p1, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mOrientationHelper:Landroidx/recyclerview/widget/OrientationHelper;
invoke-virtual {p1}, Landroidx/recyclerview/widget/OrientationHelper;->getEndAfterPadding()I
move-result p1
invoke-static {v1, p2}, Ljava/lang/Math;->min(II)I
move-result p2
sub-int/2addr p1, p2
sub-int/2addr p1, v3
if-gez p1, :cond_2
iget p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->mCoordinate:I
neg-int p1, p1
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
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object p1
check-cast p1, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
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
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
const-string v0, "AnchorInfo{mPosition="
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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,52 @@
.class public Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;
.super Ljava/lang/Object;
.source "LinearLayoutManager.java"
# 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
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,394 @@
.class public Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;
.super Ljava/lang/Object;
.source "LinearLayoutManager.java"
# 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 public static final INVALID_LAYOUT:I = -0x80000000
.field public static final ITEM_DIRECTION_HEAD:I = -0x1
.field public static final ITEM_DIRECTION_TAIL:I = 0x1
.field public static final LAYOUT_END:I = 0x1
.field public static final LAYOUT_START:I = -0x1
.field public static final SCROLLING_OFFSET_NaN:I = -0x80000000
.field public static final TAG:Ljava/lang/String; = "LLM#LayoutState"
# instance fields
.field public mAvailable:I
.field public mCurrentPosition:I
.field public mExtraFillSpace:I
.field public mInfinite:Z
.field public mIsPreLayout:Z
.field public mItemDirection:I
.field public mLastScrollDelta:I
.field public mLayoutDirection:I
.field public mNoRecycleSpace:I
.field public mOffset:I
.field public mRecycle:Z
.field public mScrapList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
">;"
}
.end annotation
.end field
.field public mScrollingOffset:I
# direct methods
.method public constructor <init>()V
.locals 1
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;
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;
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;
invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v3
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
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
invoke-virtual {v3}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
move-result v3
if-ne v4, v3, :cond_1
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
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
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
: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;
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
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
const-string v0, "avail:"
invoke-static {v0}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "LLM#LayoutState"
invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
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
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
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;
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;
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;
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
invoke-virtual {v5}, Landroidx/recyclerview/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
move-result v6
if-eqz v6, :cond_0
goto :goto_1
: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 v5, 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,76 @@
.class public final Landroidx/recyclerview/widget/LinearLayoutManager$SavedState$1;
.super Ljava/lang/Object;
.source "LinearLayoutManager.java"
# 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 = 0x9
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
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
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
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
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
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,183 @@
.class public Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;
.super Ljava/lang/Object;
.source "LinearLayoutManager.java"
# 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 public mAnchorLayoutFromEnd:Z
.field public mAnchorOffset:I
.field public mAnchorPosition:I
# direct methods
.method public static constructor <clinit>()V
.locals 1
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
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public constructor <init>(Landroid/os/Parcel;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
move-result v0
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
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
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iget v0, p1, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorPosition:I
iget v0, p1, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
iput v0, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
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
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorOffset:I
invoke-virtual {p1, p2}, Landroid/os/Parcel;->writeInt(I)V
iget-boolean p2, p0, Landroidx/recyclerview/widget/LinearLayoutManager$SavedState;->mAnchorLayoutFromEnd:Z
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,672 @@
.class public Landroidx/recyclerview/widget/LinearSmoothScroller;
.super Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;
.source "LinearSmoothScroller.java"
# static fields
.field public static final DEBUG:Z = false
.field public 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 public static final TARGET_SEEK_EXTRA_SCROLL_RATIO:F = 1.2f
.field public static final TARGET_SEEK_SCROLL_DISTANCE_PX:I = 0x2710
# instance fields
.field public final mDecelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.field public final mDisplayMetrics:Landroid/util/DisplayMetrics;
.field public mHasCalculatedMillisPerPixel:Z
.field public mInterimTargetDx:I
.field public mInterimTargetDy:I
.field public final mLinearInterpolator:Landroid/view/animation/LinearInterpolator;
.field public mMillisPerPixel:F
.field public mTargetVector:Landroid/graphics/PointF;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;-><init>()V
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;
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
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 p1, 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;
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
: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
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
move-result-object v0
if-eqz v0, :cond_1
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v1
if-nez v1, :cond_0
goto :goto_0
: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;
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
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
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
move-result v7
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
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
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
move-result-object v0
if-eqz v0, :cond_1
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v1
if-nez v1, :cond_0
goto :goto_0
: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;
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
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
invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingTop()I
move-result v7
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
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
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
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
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 p1, 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
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
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
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getChildCount()I
move-result p3
if-nez p3, :cond_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->stop()V
return-void
:cond_0
iget p3, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
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
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 p1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
if-nez p1, :cond_1
iget p1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
if-nez p1, :cond_1
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
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
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 v1, v0
int-to-double v0, v1
invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v0
double-to-int v0, v0
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;
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
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
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
: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;
iget v1, v0, Landroid/graphics/PointF;->x:F
const v2, 0x461c4000 # 10000.0f
mul-float v1, v1, v2
float-to-int v1, v1
iput v1, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDx:I
iget v0, v0, Landroid/graphics/PointF;->y:F
mul-float v0, v0, v2
float-to-int v0, v0
iput v0, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
const/16 v0, 0x2710
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 v1, v1, v2
float-to-int v1, v1
iget v3, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mInterimTargetDy:I
int-to-float v3, v3
mul-float v3, v3, v2
float-to-int v3, v3
int-to-float v0, v0
mul-float v0, v0, v2
float-to-int v0, v0
iget-object v2, p0, Landroidx/recyclerview/widget/LinearSmoothScroller;->mLinearInterpolator:Landroid/view/animation/LinearInterpolator;
invoke-virtual {p1, v1, v3, v0, v2}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;->update(IIILandroid/view/animation/Interpolator;)V
return-void
:cond_1
:goto_0
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->getTargetPosition()I
move-result v0
invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$Action;->jumpTo(I)V
invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller;->stop()V
return-void
.end method

View file

@ -0,0 +1,636 @@
.class public Landroidx/recyclerview/widget/LinearSnapHelper;
.super Landroidx/recyclerview/widget/SnapHelper;
.source "LinearSnapHelper.java"
# static fields
.field public static final INVALID_DISTANCE:F = 1.0f
# instance fields
.field public mHorizontalHelper:Landroidx/recyclerview/widget/OrientationHelper;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
.field public mVerticalHelper:Landroidx/recyclerview/widget/OrientationHelper;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 0
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
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/4 v3, 0x0
const v4, 0x7fffffff
const/high16 v5, -0x80000000
move-object v4, v3
const v5, 0x7fffffff
const/high16 v6, -0x80000000
:goto_0
if-ge v2, v0, :cond_4
invoke-virtual {p1, v2}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
move-result-object v7
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, v5, :cond_2
move-object v3, v7
move v5, v8
:cond_2
if-le v8, v6, :cond_3
move-object v4, v7
move v6, v8
:cond_3
:goto_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_4
if-eqz v3, :cond_7
if-nez v4, :cond_5
goto :goto_2
:cond_5
invoke-virtual {p2, v3}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p1
invoke-virtual {p2, v4}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result v0
invoke-static {p1, v0}, Ljava/lang/Math;->min(II)I
move-result p1
invoke-virtual {p2, v3}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result v0
invoke-virtual {p2, v4}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
move-result p2
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 p1, p1, v1
sub-int/2addr v6, v5
add-int/lit8 v6, v6, 0x1
int-to-float p2, v6
div-float/2addr p1, p2
return p1
:cond_7
:goto_2
return v1
.end method
.method private distanceToCenter(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroid/view/View;Landroidx/recyclerview/widget/OrientationHelper;)I
.locals 0
.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
invoke-virtual {p3, p2}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result p1
invoke-virtual {p3, p2}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
move-result p2
div-int/lit8 p2, p2, 0x2
add-int/2addr p2, p1
invoke-virtual {p3}, Landroidx/recyclerview/widget/OrientationHelper;->getStartAfterPadding()I
move-result p1
invoke-virtual {p3}, Landroidx/recyclerview/widget/OrientationHelper;->getTotalSpace()I
move-result p3
div-int/lit8 p3, p3, 0x2
add-int/2addr p3, p1
sub-int/2addr p2, p3
return p2
.end method
.method private estimateNextPositionDiffForFling(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroidx/recyclerview/widget/OrientationHelper;II)I
.locals 2
invoke-virtual {p0, p3, p4}, Landroidx/recyclerview/widget/SnapHelper;->calculateScrollDistance(II)[I
move-result-object p3
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
const/4 p4, 0x0
cmpg-float p4, p1, p4
if-gtz p4, :cond_0
return p2
:cond_0
aget p4, p3, p2
invoke-static {p4}, Ljava/lang/Math;->abs(I)I
move-result p4
const/4 v0, 0x1
aget v1, p3, v0
invoke-static {v1}, Ljava/lang/Math;->abs(I)I
move-result v1
if-le p4, v1, :cond_1
aget p2, p3, p2
goto :goto_0
:cond_1
aget p2, p3, v0
:goto_0
int-to-float p2, p2
div-float/2addr p2, p1
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
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
: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 v3, v2
const v2, 0x7fffffff
const/4 v4, 0x0
:goto_0
if-ge v4, v0, :cond_2
invoke-virtual {p1, v4}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
move-result-object v5
invoke-virtual {p2, v5}, Landroidx/recyclerview/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
move-result v6
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 v7, v6
sub-int/2addr v7, v3
invoke-static {v7}, Ljava/lang/Math;->abs(I)I
move-result v6
if-ge v6, v2, :cond_1
move-object v1, v5
move v2, 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
iget-object v0, v0, Landroidx/recyclerview/widget/OrientationHelper;->mLayoutManager:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
if-eq v0, p1, :cond_1
: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
iget-object v0, v0, Landroidx/recyclerview/widget/OrientationHelper;->mLayoutManager:Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
if-eq v0, p1, :cond_1
: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
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_0
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v1
invoke-direct {p0, p1, p2, v1}, Landroidx/recyclerview/widget/LinearSnapHelper;->distanceToCenter(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;Landroid/view/View;Landroidx/recyclerview/widget/OrientationHelper;)I
move-result v1
aput v1, v0, v2
goto :goto_0
:cond_0
aput v2, v0, v2
:goto_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v1
const/4 v3, 0x1
if-eqz v1, :cond_1
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v1
invoke-direct {p0, p1, p2, v1}, Landroidx/recyclerview/widget/LinearSnapHelper;->distanceToCenter(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;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
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v0
if-eqz v0, :cond_0
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
:cond_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollHorizontally()Z
move-result v0
if-eqz v0, :cond_1
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
instance-of v0, p1, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$ScrollVectorProvider;
const/4 v1, -0x1
if-nez v0, :cond_0
return v1
:cond_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->getItemCount()I
move-result v0
if-nez v0, :cond_1
return v1
: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
: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
:cond_3
move-object v3, p1
check-cast v3, Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$ScrollVectorProvider;
add-int/lit8 v4, v0, -0x1
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
: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
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getHorizontalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v5
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
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
const/4 p2, 0x0
:cond_6
:goto_0
invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->canScrollVertically()Z
move-result v5
if-eqz v5, :cond_7
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/LinearSnapHelper;->getVerticalHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)Landroidx/recyclerview/widget/OrientationHelper;
move-result-object v5
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
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
const/4 p3, 0x0
: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
const/4 v2, 0x0
:cond_b
if-lt v2, v0, :cond_c
move v2, v4
:cond_c
return v2
.end method

View file

@ -0,0 +1,70 @@
.class public Landroidx/recyclerview/widget/ListAdapter$1;
.super Ljava/lang/Object;
.source "ListAdapter.java"
# 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 public 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;
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;
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,261 @@
.class public abstract Landroidx/recyclerview/widget/ListAdapter;
.super Landroidx/recyclerview/widget/RecyclerView$Adapter;
.source "ListAdapter.java"
# 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 public final mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/recyclerview/widget/AsyncListDiffer<",
"TT;>;"
}
.end annotation
.end field
.field public 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 2
.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
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
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;
new-instance v0, Landroidx/recyclerview/widget/AsyncListDiffer;
new-instance v1, Landroidx/recyclerview/widget/AdapterListUpdateCallback;
invoke-direct {v1, p0}, Landroidx/recyclerview/widget/AdapterListUpdateCallback;-><init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
invoke-direct {v0, v1, p1}, Landroidx/recyclerview/widget/AsyncListDiffer;-><init>(Landroidx/recyclerview/widget/ListUpdateCallback;Landroidx/recyclerview/widget/AsyncDifferConfig;)V
iput-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object p1, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mListener:Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
invoke-virtual {p1, 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 3
.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
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
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;
new-instance v0, Landroidx/recyclerview/widget/AsyncListDiffer;
new-instance v1, Landroidx/recyclerview/widget/AdapterListUpdateCallback;
invoke-direct {v1, p0}, Landroidx/recyclerview/widget/AdapterListUpdateCallback;-><init>(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
new-instance v2, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;
invoke-direct {v2, p1}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;-><init>(Landroidx/recyclerview/widget/DiffUtil$ItemCallback;)V
invoke-virtual {v2}, Landroidx/recyclerview/widget/AsyncDifferConfig$Builder;->build()Landroidx/recyclerview/widget/AsyncDifferConfig;
move-result-object p1
invoke-direct {v0, v1, p1}, Landroidx/recyclerview/widget/AsyncListDiffer;-><init>(Landroidx/recyclerview/widget/ListUpdateCallback;Landroidx/recyclerview/widget/AsyncDifferConfig;)V
iput-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object p1, p0, Landroidx/recyclerview/widget/ListAdapter;->mDiffer:Landroidx/recyclerview/widget/AsyncListDiffer;
iget-object v0, p0, Landroidx/recyclerview/widget/ListAdapter;->mListener:Landroidx/recyclerview/widget/AsyncListDiffer$ListListener;
invoke-virtual {p1, 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;
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;
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;
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;
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;
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 "ListUpdateCallback.java"
# 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,137 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil$1$1;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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 public 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;
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;
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
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
const-string v1, "Unsupported message, what="
invoke-static {v1}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
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;
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
: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;
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;
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;
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,148 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil$1;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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 public static final ADD_TILE:I = 0x2
.field public static final REMOVE_TILE:I = 0x3
.field public static final UPDATE_ITEM_COUNT:I = 0x1
# instance fields
.field public final mMainThreadHandler:Landroid/os/Handler;
.field public mMainThreadRunnable:Ljava/lang/Runnable;
.field public final mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.field public final synthetic this$0:Landroidx/recyclerview/widget/MessageThreadUtil;
.field public 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;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
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;
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;
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;
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
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
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
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,173 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil$2$1;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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 public 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;
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;
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;
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
: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
const-string v1, "Unsupported message, what="
invoke-static {v1}, Lf/e/b/a/a;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
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
: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;
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;
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;
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;
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;
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;
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;
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 :goto_0
.end method

View file

@ -0,0 +1,217 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil$2;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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 public static final LOAD_TILE:I = 0x3
.field public static final RECYCLE_TILE:I = 0x4
.field public static final REFRESH:I = 0x1
.field public static final UPDATE_RANGE:I = 0x2
# instance fields
.field public mBackgroundRunnable:Ljava/lang/Runnable;
.field public mBackgroundRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
.field public final mExecutor:Ljava/util/concurrent/Executor;
.field public final mQueue:Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.field public final synthetic this$0:Landroidx/recyclerview/widget/MessageThreadUtil;
.field public 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;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
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;
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;
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;
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
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;
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;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->sendMessage(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
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;
invoke-virtual {v0, p1}, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->sendMessageAtFrontOfQueue(Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;)V
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
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
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
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
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,222 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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 public mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
# direct methods
.method public constructor <init>()V
.locals 0
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
const/4 v0, 0x0
monitor-exit p0
return-object v0
:cond_0
:try_start_1
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget-object v1, v1, 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
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
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
if-ne v0, p1, :cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget-object v1, v1, 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;
invoke-virtual {v0}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->recycle()V
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-eqz v0, :cond_2
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:goto_1
if-eqz v1, :cond_2
iget-object v2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget v3, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
if-ne v3, p1, :cond_1
iput-object v2, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
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
:cond_2
monitor-exit p0
return-void
:catchall_0
move-exception p1
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
monitor-exit p0
return-void
:cond_0
:try_start_1
iget-object v0, p0, Landroidx/recyclerview/widget/MessageThreadUtil$MessageQueue;->mRoot:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:goto_0
iget-object v1, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
if-eqz v1, :cond_1
iget-object v0, v0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
goto :goto_0
: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
monitor-exit p0
return-void
:catchall_0
move-exception p1
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;
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
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method

View file

@ -0,0 +1,223 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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 public static sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.field public 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 public next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
.field public what:I
# direct methods
.method public static constructor <clinit>()V
.locals 1
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
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
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;
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
new-instance v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
invoke-direct {v1}, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;-><init>()V
goto :goto_0
:cond_0
sget-object v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
sget-object v2, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iget-object v2, v2, 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
iput-object v2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:goto_0
iput p0, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->what:I
iput p1, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg1:I
iput p2, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg2:I
iput p3, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg3:I
iput p4, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg4:I
iput p5, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->arg5:I
iput-object p6, v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->data:Ljava/lang/Object;
monitor-exit v0
return-object v1
:catchall_0
move-exception p0
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
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;
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
sget-object v1, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
iput-object v1, p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->next:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
:cond_0
sput-object p0, Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;->sPool:Landroidx/recyclerview/widget/MessageThreadUtil$SyncQueueItem;
monitor-exit v0
return-void
:catchall_0
move-exception v1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method

View file

@ -0,0 +1,76 @@
.class public Landroidx/recyclerview/widget/MessageThreadUtil;
.super Ljava/lang/Object;
.source "MessageThreadUtil.java"
# 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
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
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
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

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