GridLayoutManager.smali 79 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971
  1. .class public Landroid/support/v7/widget/GridLayoutManager;
  2. .super Landroid/support/v7/widget/LinearLayoutManager;
  3. .source ""
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Landroid/support/v7/widget/GridLayoutManager$LayoutParams;,
  8. Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;,
  9. Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  10. }
  11. .end annotation
  12. # static fields
  13. .field private static final DEBUG:Z = false
  14. .field public static final DEFAULT_SPAN_COUNT:I = -0x1
  15. .field private static final TAG:Ljava/lang/String; = "GridLayoutManager"
  16. # instance fields
  17. .field mCachedBorders:[I
  18. .field final mDecorInsets:Landroid/graphics/Rect;
  19. .field mPendingSpanCountChange:Z
  20. .field final mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  21. .field final mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  22. .field mSet:[Landroid/view/View;
  23. .field mSpanCount:I
  24. .field mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  25. # direct methods
  26. .method public constructor <init>(Landroid/content/Context;I)V
  27. .locals 0
  28. invoke-direct {p0, p1}, Landroid/support/v7/widget/LinearLayoutManager;-><init>(Landroid/content/Context;)V
  29. const/4 p1, 0x0
  30. iput-boolean p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPendingSpanCountChange:Z
  31. const/4 p1, -0x1
  32. iput p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  33. new-instance p1, Landroid/util/SparseIntArray;
  34. invoke-direct {p1}, Landroid/util/SparseIntArray;-><init>()V
  35. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  36. new-instance p1, Landroid/util/SparseIntArray;
  37. invoke-direct {p1}, Landroid/util/SparseIntArray;-><init>()V
  38. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  39. new-instance p1, Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;
  40. invoke-direct {p1}, Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;-><init>()V
  41. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  42. new-instance p1, Landroid/graphics/Rect;
  43. invoke-direct {p1}, Landroid/graphics/Rect;-><init>()V
  44. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mDecorInsets:Landroid/graphics/Rect;
  45. invoke-virtual {p0, p2}, Landroid/support/v7/widget/GridLayoutManager;->setSpanCount(I)V
  46. return-void
  47. .end method
  48. .method public constructor <init>(Landroid/content/Context;IIZ)V
  49. .locals 0
  50. invoke-direct {p0, p1, p3, p4}, Landroid/support/v7/widget/LinearLayoutManager;-><init>(Landroid/content/Context;IZ)V
  51. const/4 p1, 0x0
  52. iput-boolean p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPendingSpanCountChange:Z
  53. const/4 p1, -0x1
  54. iput p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  55. new-instance p1, Landroid/util/SparseIntArray;
  56. invoke-direct {p1}, Landroid/util/SparseIntArray;-><init>()V
  57. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  58. new-instance p1, Landroid/util/SparseIntArray;
  59. invoke-direct {p1}, Landroid/util/SparseIntArray;-><init>()V
  60. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  61. new-instance p1, Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;
  62. invoke-direct {p1}, Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;-><init>()V
  63. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  64. new-instance p1, Landroid/graphics/Rect;
  65. invoke-direct {p1}, Landroid/graphics/Rect;-><init>()V
  66. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mDecorInsets:Landroid/graphics/Rect;
  67. invoke-virtual {p0, p2}, Landroid/support/v7/widget/GridLayoutManager;->setSpanCount(I)V
  68. return-void
  69. .end method
  70. .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
  71. .locals 1
  72. invoke-direct {p0, p1, p2, p3, p4}, Landroid/support/v7/widget/LinearLayoutManager;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
  73. const/4 v0, 0x0
  74. iput-boolean v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPendingSpanCountChange:Z
  75. const/4 v0, -0x1
  76. iput v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  77. new-instance v0, Landroid/util/SparseIntArray;
  78. invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
  79. iput-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  80. new-instance v0, Landroid/util/SparseIntArray;
  81. invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
  82. iput-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  83. new-instance v0, Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;
  84. invoke-direct {v0}, Landroid/support/v7/widget/GridLayoutManager$DefaultSpanSizeLookup;-><init>()V
  85. iput-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  86. new-instance v0, Landroid/graphics/Rect;
  87. invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
  88. iput-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mDecorInsets:Landroid/graphics/Rect;
  89. invoke-static {p1, p2, p3, p4}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getProperties(Landroid/content/Context;Landroid/util/AttributeSet;II)Landroid/support/v7/widget/RecyclerView$LayoutManager$Properties;
  90. move-result-object p1
  91. iget p1, p1, Landroid/support/v7/widget/RecyclerView$LayoutManager$Properties;->spanCount:I
  92. invoke-virtual {p0, p1}, Landroid/support/v7/widget/GridLayoutManager;->setSpanCount(I)V
  93. return-void
  94. .end method
  95. .method private assignSpans(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;IIZ)V
  96. .locals 6
  97. const/4 p4, 0x0
  98. const/4 v0, -0x1
  99. const/4 v1, 0x1
  100. if-eqz p5, :cond_0
  101. move p5, p3
  102. const/4 p3, 0x0
  103. const/4 v2, 0x1
  104. goto :goto_0
  105. :cond_0
  106. add-int/lit8 p3, p3, -0x1
  107. const/4 p5, -0x1
  108. const/4 v2, -0x1
  109. :goto_0
  110. iget v3, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  111. if-ne v3, v1, :cond_1
  112. invoke-virtual {p0}, Landroid/support/v7/widget/LinearLayoutManager;->isLayoutRTL()Z
  113. move-result v3
  114. if-eqz v3, :cond_1
  115. iget p4, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  116. sub-int/2addr p4, v1
  117. move v3, p4
  118. const/4 p4, -0x1
  119. goto :goto_1
  120. :cond_1
  121. const/4 p4, 0x1
  122. const/4 v3, 0x0
  123. :goto_1
  124. if-eq p3, p5, :cond_3
  125. iget-object v4, p0, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  126. aget-object v4, v4, p3
  127. invoke-virtual {v4}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  128. move-result-object v5
  129. check-cast v5, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  130. invoke-virtual {p0, v4}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPosition(Landroid/view/View;)I
  131. move-result v4
  132. invoke-direct {p0, p1, p2, v4}, Landroid/support/v7/widget/GridLayoutManager;->getSpanSize(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  133. move-result v4
  134. invoke-static {v5, v4}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$102(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;I)I
  135. if-ne p4, v0, :cond_2
  136. invoke-static {v5}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  137. move-result v4
  138. if-le v4, v1, :cond_2
  139. invoke-static {v5}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  140. move-result v4
  141. sub-int/2addr v4, v1
  142. sub-int v4, v3, v4
  143. invoke-static {v5, v4}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$002(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;I)I
  144. goto :goto_2
  145. :cond_2
  146. invoke-static {v5, v3}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$002(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;I)I
  147. :goto_2
  148. invoke-static {v5}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  149. move-result v4
  150. mul-int v4, v4, p4
  151. add-int/2addr v3, v4
  152. add-int/2addr p3, v2
  153. goto :goto_1
  154. :cond_3
  155. return-void
  156. .end method
  157. .method private cachePreLayoutSpanMapping()V
  158. .locals 6
  159. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I
  160. move-result v0
  161. const/4 v1, 0x0
  162. :goto_0
  163. if-ge v1, v0, :cond_0
  164. invoke-virtual {p0, v1}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
  165. move-result-object v2
  166. invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  167. move-result-object v2
  168. check-cast v2, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  169. invoke-virtual {v2}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
  170. move-result v3
  171. iget-object v4, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  172. invoke-virtual {v2}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanSize()I
  173. move-result v5
  174. invoke-virtual {v4, v3, v5}, Landroid/util/SparseIntArray;->put(II)V
  175. iget-object v4, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  176. invoke-virtual {v2}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanIndex()I
  177. move-result v2
  178. invoke-virtual {v4, v3, v2}, Landroid/util/SparseIntArray;->put(II)V
  179. add-int/lit8 v1, v1, 0x1
  180. goto :goto_0
  181. :cond_0
  182. return-void
  183. .end method
  184. .method private calculateItemBorders(I)V
  185. .locals 2
  186. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  187. iget v1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  188. invoke-static {v0, v1, p1}, Landroid/support/v7/widget/GridLayoutManager;->calculateItemBorders([III)[I
  189. move-result-object p1
  190. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  191. return-void
  192. .end method
  193. .method static calculateItemBorders([III)[I
  194. .locals 5
  195. const/4 v0, 0x1
  196. if-eqz p0, :cond_0
  197. array-length v1, p0
  198. add-int/lit8 v2, p1, 0x1
  199. if-ne v1, v2, :cond_0
  200. array-length v1, p0
  201. sub-int/2addr v1, v0
  202. aget v1, p0, v1
  203. if-eq v1, p2, :cond_1
  204. :cond_0
  205. add-int/lit8 p0, p1, 0x1
  206. new-array p0, p0, [I
  207. :cond_1
  208. const/4 v1, 0x0
  209. aput v1, p0, v1
  210. div-int v2, p2, p1
  211. rem-int/2addr p2, p1
  212. const/4 v3, 0x0
  213. :goto_0
  214. if-gt v0, p1, :cond_3
  215. add-int/2addr v1, p2
  216. if-lez v1, :cond_2
  217. sub-int v4, p1, v1
  218. if-ge v4, p2, :cond_2
  219. add-int/lit8 v4, v2, 0x1
  220. sub-int/2addr v1, p1
  221. goto :goto_1
  222. :cond_2
  223. move v4, v2
  224. :goto_1
  225. add-int/2addr v3, v4
  226. aput v3, p0, v0
  227. add-int/lit8 v0, v0, 0x1
  228. goto :goto_0
  229. :cond_3
  230. return-object p0
  231. .end method
  232. .method private clearPreLayoutSpanMappingCache()V
  233. .locals 1
  234. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  235. invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
  236. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  237. invoke-virtual {v0}, Landroid/util/SparseIntArray;->clear()V
  238. return-void
  239. .end method
  240. .method private ensureAnchorIsInCorrectSpan(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;I)V
  241. .locals 4
  242. const/4 v0, 0x1
  243. if-ne p4, v0, :cond_0
  244. const/4 p4, 0x1
  245. goto :goto_0
  246. :cond_0
  247. const/4 p4, 0x0
  248. :goto_0
  249. iget v1, p3, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
  250. invoke-direct {p0, p1, p2, v1}, Landroid/support/v7/widget/GridLayoutManager;->getSpanIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  251. move-result v1
  252. if-eqz p4, :cond_1
  253. :goto_1
  254. if-lez v1, :cond_3
  255. iget p4, p3, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
  256. if-lez p4, :cond_3
  257. add-int/lit8 p4, p4, -0x1
  258. iput p4, p3, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
  259. iget p4, p3, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
  260. invoke-direct {p0, p1, p2, p4}, Landroid/support/v7/widget/GridLayoutManager;->getSpanIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  261. move-result v1
  262. goto :goto_1
  263. :cond_1
  264. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  265. move-result p4
  266. sub-int/2addr p4, v0
  267. iget v0, p3, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
  268. :goto_2
  269. if-ge v0, p4, :cond_2
  270. add-int/lit8 v2, v0, 0x1
  271. invoke-direct {p0, p1, p2, v2}, Landroid/support/v7/widget/GridLayoutManager;->getSpanIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  272. move-result v3
  273. if-le v3, v1, :cond_2
  274. move v0, v2
  275. move v1, v3
  276. goto :goto_2
  277. :cond_2
  278. iput v0, p3, Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;->mPosition:I
  279. :cond_3
  280. return-void
  281. .end method
  282. .method private ensureViewSet()V
  283. .locals 2
  284. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  285. if-eqz v0, :cond_0
  286. array-length v0, v0
  287. iget v1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  288. if-eq v0, v1, :cond_1
  289. :cond_0
  290. iget v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  291. new-array v0, v0, [Landroid/view/View;
  292. iput-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  293. :cond_1
  294. return-void
  295. .end method
  296. .method private getSpanGroupIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  297. .locals 0
  298. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->isPreLayout()Z
  299. move-result p2
  300. if-nez p2, :cond_0
  301. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  302. iget p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  303. invoke-virtual {p1, p3, p2}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->getSpanGroupIndex(II)I
  304. move-result p1
  305. return p1
  306. :cond_0
  307. invoke-virtual {p1, p3}, Landroid/support/v7/widget/RecyclerView$Recycler;->convertPreLayoutPositionToPostLayout(I)I
  308. move-result p1
  309. const/4 p2, -0x1
  310. if-ne p1, p2, :cond_1
  311. new-instance p1, Ljava/lang/StringBuilder;
  312. invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
  313. const-string p2, "Cannot find span size for pre layout position. "
  314. invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  315. invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  316. invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  317. move-result-object p1
  318. const-string p2, "GridLayoutManager"
  319. invoke-static {p2, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
  320. const/4 p1, 0x0
  321. return p1
  322. :cond_1
  323. iget-object p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  324. iget p3, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  325. invoke-virtual {p2, p1, p3}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->getSpanGroupIndex(II)I
  326. move-result p1
  327. return p1
  328. .end method
  329. .method private getSpanIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  330. .locals 1
  331. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->isPreLayout()Z
  332. move-result p2
  333. if-nez p2, :cond_0
  334. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  335. iget p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  336. invoke-virtual {p1, p3, p2}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->getCachedSpanIndex(II)I
  337. move-result p1
  338. return p1
  339. :cond_0
  340. iget-object p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanIndexCache:Landroid/util/SparseIntArray;
  341. const/4 v0, -0x1
  342. invoke-virtual {p2, p3, v0}, Landroid/util/SparseIntArray;->get(II)I
  343. move-result p2
  344. if-eq p2, v0, :cond_1
  345. return p2
  346. :cond_1
  347. invoke-virtual {p1, p3}, Landroid/support/v7/widget/RecyclerView$Recycler;->convertPreLayoutPositionToPostLayout(I)I
  348. move-result p1
  349. if-ne p1, v0, :cond_2
  350. new-instance p1, Ljava/lang/StringBuilder;
  351. invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
  352. const-string p2, "Cannot find span size for pre layout position. It is not cached, not in the adapter. Pos:"
  353. invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  354. invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  355. invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  356. move-result-object p1
  357. const-string p2, "GridLayoutManager"
  358. invoke-static {p2, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
  359. const/4 p1, 0x0
  360. return p1
  361. :cond_2
  362. iget-object p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  363. iget p3, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  364. invoke-virtual {p2, p1, p3}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->getCachedSpanIndex(II)I
  365. move-result p1
  366. return p1
  367. .end method
  368. .method private getSpanSize(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  369. .locals 1
  370. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->isPreLayout()Z
  371. move-result p2
  372. if-nez p2, :cond_0
  373. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  374. invoke-virtual {p1, p3}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
  375. move-result p1
  376. return p1
  377. :cond_0
  378. iget-object p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mPreLayoutSpanSizeCache:Landroid/util/SparseIntArray;
  379. const/4 v0, -0x1
  380. invoke-virtual {p2, p3, v0}, Landroid/util/SparseIntArray;->get(II)I
  381. move-result p2
  382. if-eq p2, v0, :cond_1
  383. return p2
  384. :cond_1
  385. invoke-virtual {p1, p3}, Landroid/support/v7/widget/RecyclerView$Recycler;->convertPreLayoutPositionToPostLayout(I)I
  386. move-result p1
  387. if-ne p1, v0, :cond_2
  388. new-instance p1, Ljava/lang/StringBuilder;
  389. invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
  390. const-string p2, "Cannot find span size for pre layout position. It is not cached, not in the adapter. Pos:"
  391. invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  392. invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  393. invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  394. move-result-object p1
  395. const-string p2, "GridLayoutManager"
  396. invoke-static {p2, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
  397. const/4 p1, 0x1
  398. return p1
  399. :cond_2
  400. iget-object p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  401. invoke-virtual {p2, p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->getSpanSize(I)I
  402. move-result p1
  403. return p1
  404. .end method
  405. .method private guessMeasurement(FI)V
  406. .locals 1
  407. iget v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  408. int-to-float v0, v0
  409. mul-float p1, p1, v0
  410. invoke-static {p1}, Ljava/lang/Math;->round(F)I
  411. move-result p1
  412. invoke-static {p1, p2}, Ljava/lang/Math;->max(II)I
  413. move-result p1
  414. invoke-direct {p0, p1}, Landroid/support/v7/widget/GridLayoutManager;->calculateItemBorders(I)V
  415. return-void
  416. .end method
  417. .method private measureChildWithDecorationsAndMargin(Landroid/view/View;IIZZ)V
  418. .locals 4
  419. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mDecorInsets:Landroid/graphics/Rect;
  420. invoke-virtual {p0, p1, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->calculateItemDecorationsForChild(Landroid/view/View;Landroid/graphics/Rect;)V
  421. invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  422. move-result-object v0
  423. check-cast v0, Landroid/support/v7/widget/RecyclerView$LayoutParams;
  424. if-nez p4, :cond_0
  425. iget v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  426. const/4 v2, 0x1
  427. if-ne v1, v2, :cond_1
  428. :cond_0
  429. iget v1, v0, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I
  430. iget-object v2, p0, Landroid/support/v7/widget/GridLayoutManager;->mDecorInsets:Landroid/graphics/Rect;
  431. iget v3, v2, Landroid/graphics/Rect;->left:I
  432. add-int/2addr v1, v3
  433. iget v3, v0, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I
  434. iget v2, v2, Landroid/graphics/Rect;->right:I
  435. add-int/2addr v3, v2
  436. invoke-direct {p0, p2, v1, v3}, Landroid/support/v7/widget/GridLayoutManager;->updateSpecWithExtra(III)I
  437. move-result p2
  438. :cond_1
  439. if-nez p4, :cond_2
  440. iget p4, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  441. if-nez p4, :cond_3
  442. :cond_2
  443. iget p4, v0, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I
  444. iget-object v1, p0, Landroid/support/v7/widget/GridLayoutManager;->mDecorInsets:Landroid/graphics/Rect;
  445. iget v2, v1, Landroid/graphics/Rect;->top:I
  446. add-int/2addr p4, v2
  447. iget v2, v0, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I
  448. iget v1, v1, Landroid/graphics/Rect;->bottom:I
  449. add-int/2addr v2, v1
  450. invoke-direct {p0, p3, p4, v2}, Landroid/support/v7/widget/GridLayoutManager;->updateSpecWithExtra(III)I
  451. move-result p3
  452. :cond_3
  453. if-eqz p5, :cond_4
  454. invoke-virtual {p0, p1, p2, p3, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->shouldReMeasureChild(Landroid/view/View;IILandroid/support/v7/widget/RecyclerView$LayoutParams;)Z
  455. move-result p4
  456. goto :goto_0
  457. :cond_4
  458. invoke-virtual {p0, p1, p2, p3, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->shouldMeasureChild(Landroid/view/View;IILandroid/support/v7/widget/RecyclerView$LayoutParams;)Z
  459. move-result p4
  460. :goto_0
  461. if-eqz p4, :cond_5
  462. invoke-virtual {p1, p2, p3}, Landroid/view/View;->measure(II)V
  463. :cond_5
  464. return-void
  465. .end method
  466. .method private updateMeasurements()V
  467. .locals 2
  468. invoke-virtual {p0}, Landroid/support/v7/widget/LinearLayoutManager;->getOrientation()I
  469. move-result v0
  470. const/4 v1, 0x1
  471. if-ne v0, v1, :cond_0
  472. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getWidth()I
  473. move-result v0
  474. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingRight()I
  475. move-result v1
  476. sub-int/2addr v0, v1
  477. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
  478. move-result v1
  479. goto :goto_0
  480. :cond_0
  481. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getHeight()I
  482. move-result v0
  483. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingBottom()I
  484. move-result v1
  485. sub-int/2addr v0, v1
  486. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingTop()I
  487. move-result v1
  488. :goto_0
  489. sub-int/2addr v0, v1
  490. invoke-direct {p0, v0}, Landroid/support/v7/widget/GridLayoutManager;->calculateItemBorders(I)V
  491. return-void
  492. .end method
  493. .method private updateSpecWithExtra(III)I
  494. .locals 2
  495. if-nez p2, :cond_0
  496. if-nez p3, :cond_0
  497. return p1
  498. :cond_0
  499. invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
  500. move-result v0
  501. const/high16 v1, -0x80000000
  502. if-eq v0, v1, :cond_2
  503. const/high16 v1, 0x40000000 # 2.0f
  504. if-ne v0, v1, :cond_1
  505. goto :goto_0
  506. :cond_1
  507. return p1
  508. :cond_2
  509. :goto_0
  510. const/4 v1, 0x0
  511. invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I
  512. move-result p1
  513. sub-int/2addr p1, p2
  514. sub-int/2addr p1, p3
  515. invoke-static {v1, p1}, Ljava/lang/Math;->max(II)I
  516. move-result p1
  517. invoke-static {p1, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
  518. move-result p1
  519. return p1
  520. .end method
  521. # virtual methods
  522. .method public checkLayoutParams(Landroid/support/v7/widget/RecyclerView$LayoutParams;)Z
  523. .locals 0
  524. instance-of p1, p1, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  525. return p1
  526. .end method
  527. .method findReferenceChild(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;III)Landroid/view/View;
  528. .locals 7
  529. invoke-virtual {p0}, Landroid/support/v7/widget/LinearLayoutManager;->ensureLayoutState()V
  530. iget-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  531. invoke-virtual {v0}, Landroid/support/v7/widget/OrientationHelper;->getStartAfterPadding()I
  532. move-result v0
  533. iget-object v1, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  534. invoke-virtual {v1}, Landroid/support/v7/widget/OrientationHelper;->getEndAfterPadding()I
  535. move-result v1
  536. if-le p4, p3, :cond_0
  537. const/4 v2, 0x1
  538. goto :goto_0
  539. :cond_0
  540. const/4 v2, -0x1
  541. :goto_0
  542. const/4 v3, 0x0
  543. move-object v4, v3
  544. :goto_1
  545. if-eq p3, p4, :cond_6
  546. invoke-virtual {p0, p3}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
  547. move-result-object v5
  548. invoke-virtual {p0, v5}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPosition(Landroid/view/View;)I
  549. move-result v6
  550. if-ltz v6, :cond_5
  551. if-ge v6, p5, :cond_5
  552. invoke-direct {p0, p1, p2, v6}, Landroid/support/v7/widget/GridLayoutManager;->getSpanIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  553. move-result v6
  554. if-eqz v6, :cond_1
  555. goto :goto_3
  556. :cond_1
  557. invoke-virtual {v5}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  558. move-result-object v6
  559. check-cast v6, Landroid/support/v7/widget/RecyclerView$LayoutParams;
  560. invoke-virtual {v6}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
  561. move-result v6
  562. if-eqz v6, :cond_2
  563. if-nez v4, :cond_5
  564. move-object v4, v5
  565. goto :goto_3
  566. :cond_2
  567. iget-object v6, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  568. invoke-virtual {v6, v5}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedStart(Landroid/view/View;)I
  569. move-result v6
  570. if-ge v6, v1, :cond_4
  571. iget-object v6, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  572. invoke-virtual {v6, v5}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedEnd(Landroid/view/View;)I
  573. move-result v6
  574. if-ge v6, v0, :cond_3
  575. goto :goto_2
  576. :cond_3
  577. return-object v5
  578. :cond_4
  579. :goto_2
  580. if-nez v3, :cond_5
  581. move-object v3, v5
  582. :cond_5
  583. :goto_3
  584. add-int/2addr p3, v2
  585. goto :goto_1
  586. :cond_6
  587. if-eqz v3, :cond_7
  588. goto :goto_4
  589. :cond_7
  590. move-object v3, v4
  591. :goto_4
  592. return-object v3
  593. .end method
  594. .method public generateDefaultLayoutParams()Landroid/support/v7/widget/RecyclerView$LayoutParams;
  595. .locals 3
  596. iget v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  597. const/4 v1, -0x2
  598. const/4 v2, -0x1
  599. if-nez v0, :cond_0
  600. new-instance v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  601. invoke-direct {v0, v1, v2}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;-><init>(II)V
  602. return-object v0
  603. :cond_0
  604. new-instance v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  605. invoke-direct {v0, v2, v1}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;-><init>(II)V
  606. return-object v0
  607. .end method
  608. .method public generateLayoutParams(Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/support/v7/widget/RecyclerView$LayoutParams;
  609. .locals 1
  610. new-instance v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  611. invoke-direct {v0, p1, p2}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
  612. return-object v0
  613. .end method
  614. .method public generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/support/v7/widget/RecyclerView$LayoutParams;
  615. .locals 1
  616. instance-of v0, p1, Landroid/view/ViewGroup$MarginLayoutParams;
  617. if-eqz v0, :cond_0
  618. new-instance v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  619. check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams;
  620. invoke-direct {v0, p1}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
  621. return-object v0
  622. :cond_0
  623. new-instance v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  624. invoke-direct {v0, p1}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
  625. return-object v0
  626. .end method
  627. .method public getColumnCountForAccessibility(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  628. .locals 2
  629. iget v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  630. const/4 v1, 0x1
  631. if-ne v0, v1, :cond_0
  632. iget p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  633. return p1
  634. :cond_0
  635. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  636. move-result v0
  637. if-ge v0, v1, :cond_1
  638. const/4 p1, 0x0
  639. return p1
  640. :cond_1
  641. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  642. move-result v0
  643. sub-int/2addr v0, v1
  644. invoke-direct {p0, p1, p2, v0}, Landroid/support/v7/widget/GridLayoutManager;->getSpanGroupIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  645. move-result p1
  646. add-int/2addr p1, v1
  647. return p1
  648. .end method
  649. .method public getRowCountForAccessibility(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  650. .locals 2
  651. iget v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  652. if-nez v0, :cond_0
  653. iget p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  654. return p1
  655. :cond_0
  656. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  657. move-result v0
  658. const/4 v1, 0x1
  659. if-ge v0, v1, :cond_1
  660. const/4 p1, 0x0
  661. return p1
  662. :cond_1
  663. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  664. move-result v0
  665. sub-int/2addr v0, v1
  666. invoke-direct {p0, p1, p2, v0}, Landroid/support/v7/widget/GridLayoutManager;->getSpanGroupIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  667. move-result p1
  668. add-int/2addr p1, v1
  669. return p1
  670. .end method
  671. .method public getSpanCount()I
  672. .locals 1
  673. iget v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  674. return v0
  675. .end method
  676. .method public getSpanSizeLookup()Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  677. .locals 1
  678. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  679. return-object v0
  680. .end method
  681. .method layoutChunk(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/LinearLayoutManager$LayoutState;Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;)V
  682. .locals 22
  683. move-object/from16 v6, p0
  684. move-object/from16 v1, p1
  685. move-object/from16 v2, p2
  686. move-object/from16 v7, p3
  687. move-object/from16 v8, p4
  688. iget-object v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  689. invoke-virtual {v0}, Landroid/support/v7/widget/OrientationHelper;->getModeInOther()I
  690. move-result v9
  691. const/high16 v10, 0x40000000 # 2.0f
  692. const/4 v11, 0x1
  693. if-eq v9, v10, :cond_0
  694. const/4 v13, 0x1
  695. goto :goto_0
  696. :cond_0
  697. const/4 v13, 0x0
  698. :goto_0
  699. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I
  700. move-result v0
  701. if-lez v0, :cond_1
  702. iget-object v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  703. iget v3, v6, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  704. aget v0, v0, v3
  705. move v14, v0
  706. goto :goto_1
  707. :cond_1
  708. const/4 v14, 0x0
  709. :goto_1
  710. if-eqz v13, :cond_2
  711. invoke-direct/range {p0 .. p0}, Landroid/support/v7/widget/GridLayoutManager;->updateMeasurements()V
  712. :cond_2
  713. iget v0, v7, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mItemDirection:I
  714. if-ne v0, v11, :cond_3
  715. const/4 v15, 0x1
  716. goto :goto_2
  717. :cond_3
  718. const/4 v15, 0x0
  719. :goto_2
  720. iget v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  721. if-nez v15, :cond_4
  722. iget v0, v7, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  723. invoke-direct {v6, v1, v2, v0}, Landroid/support/v7/widget/GridLayoutManager;->getSpanIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  724. move-result v0
  725. iget v3, v7, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  726. invoke-direct {v6, v1, v2, v3}, Landroid/support/v7/widget/GridLayoutManager;->getSpanSize(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  727. move-result v3
  728. add-int/2addr v0, v3
  729. :cond_4
  730. const/4 v4, 0x0
  731. const/4 v5, 0x0
  732. :goto_3
  733. iget v3, v6, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  734. if-ge v5, v3, :cond_8
  735. invoke-virtual {v7, v2}, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->hasMore(Landroid/support/v7/widget/RecyclerView$State;)Z
  736. move-result v3
  737. if-eqz v3, :cond_8
  738. if-lez v0, :cond_8
  739. iget v3, v7, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mCurrentPosition:I
  740. invoke-direct {v6, v1, v2, v3}, Landroid/support/v7/widget/GridLayoutManager;->getSpanSize(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  741. move-result v10
  742. iget v12, v6, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  743. if-gt v10, v12, :cond_7
  744. sub-int/2addr v0, v10
  745. if-gez v0, :cond_5
  746. goto :goto_4
  747. :cond_5
  748. invoke-virtual {v7, v1}, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->next(Landroid/support/v7/widget/RecyclerView$Recycler;)Landroid/view/View;
  749. move-result-object v3
  750. if-nez v3, :cond_6
  751. goto :goto_4
  752. :cond_6
  753. add-int/2addr v4, v10
  754. iget-object v10, v6, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  755. aput-object v3, v10, v5
  756. add-int/lit8 v5, v5, 0x1
  757. const/high16 v10, 0x40000000 # 2.0f
  758. goto :goto_3
  759. :cond_7
  760. new-instance v0, Ljava/lang/IllegalArgumentException;
  761. new-instance v1, Ljava/lang/StringBuilder;
  762. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  763. const-string v2, "Item at position "
  764. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  765. invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  766. const-string v2, " requires "
  767. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  768. invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  769. const-string v2, " spans but GridLayoutManager has only "
  770. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  771. iget v2, v6, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  772. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  773. const-string v2, " spans."
  774. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  775. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  776. move-result-object v1
  777. invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  778. throw v0
  779. :cond_8
  780. :goto_4
  781. if-nez v5, :cond_9
  782. iput-boolean v11, v8, Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;->mFinished:Z
  783. return-void
  784. :cond_9
  785. const/4 v10, 0x0
  786. move-object/from16 v0, p0
  787. move-object/from16 v1, p1
  788. move-object/from16 v2, p2
  789. move v3, v5
  790. move v12, v5
  791. move v5, v15
  792. invoke-direct/range {v0 .. v5}, Landroid/support/v7/widget/GridLayoutManager;->assignSpans(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;IIZ)V
  793. const/4 v4, 0x0
  794. const/4 v5, 0x0
  795. const/4 v10, 0x0
  796. :goto_5
  797. if-ge v10, v12, :cond_14
  798. iget-object v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  799. aget-object v2, v0, v10
  800. iget-object v0, v7, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mScrapList:Ljava/util/List;
  801. if-nez v0, :cond_b
  802. if-eqz v15, :cond_a
  803. invoke-virtual {v6, v2}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->addView(Landroid/view/View;)V
  804. goto :goto_6
  805. :cond_a
  806. const/4 v0, 0x0
  807. invoke-virtual {v6, v2, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->addView(Landroid/view/View;I)V
  808. goto :goto_6
  809. :cond_b
  810. const/4 v0, 0x0
  811. if-eqz v15, :cond_c
  812. invoke-virtual {v6, v2}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->addDisappearingView(Landroid/view/View;)V
  813. goto :goto_6
  814. :cond_c
  815. invoke-virtual {v6, v2, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->addDisappearingView(Landroid/view/View;I)V
  816. :goto_6
  817. invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  818. move-result-object v0
  819. move-object v1, v0
  820. check-cast v1, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  821. iget-object v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  822. invoke-static {v1}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  823. move-result v16
  824. invoke-static {v1}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  825. move-result v17
  826. add-int v16, v16, v17
  827. aget v0, v0, v16
  828. iget-object v3, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  829. invoke-static {v1}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  830. move-result v16
  831. aget v3, v3, v16
  832. sub-int/2addr v0, v3
  833. iget v3, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  834. if-nez v3, :cond_d
  835. iget v3, v1, Landroid/view/ViewGroup$MarginLayoutParams;->height:I
  836. goto :goto_7
  837. :cond_d
  838. iget v3, v1, Landroid/view/ViewGroup$MarginLayoutParams;->width:I
  839. :goto_7
  840. const/4 v11, 0x0
  841. invoke-static {v0, v9, v11, v3, v11}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildMeasureSpec(IIIIZ)I
  842. move-result v3
  843. iget-object v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  844. invoke-virtual {v0}, Landroid/support/v7/widget/OrientationHelper;->getTotalSpace()I
  845. move-result v0
  846. iget-object v11, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  847. invoke-virtual {v11}, Landroid/support/v7/widget/OrientationHelper;->getMode()I
  848. move-result v11
  849. move/from16 p2, v4
  850. iget v4, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  851. move/from16 v17, v5
  852. const/4 v5, 0x1
  853. if-ne v4, v5, :cond_e
  854. iget v4, v1, Landroid/view/ViewGroup$MarginLayoutParams;->height:I
  855. goto :goto_8
  856. :cond_e
  857. iget v4, v1, Landroid/view/ViewGroup$MarginLayoutParams;->width:I
  858. :goto_8
  859. move/from16 v18, v9
  860. const/4 v9, 0x0
  861. invoke-static {v0, v11, v9, v4, v5}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildMeasureSpec(IIIIZ)I
  862. move-result v4
  863. iget v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  864. if-ne v0, v5, :cond_10
  865. iget v0, v1, Landroid/view/ViewGroup$MarginLayoutParams;->height:I
  866. const/4 v5, -0x1
  867. if-ne v0, v5, :cond_f
  868. const/4 v5, 0x1
  869. goto :goto_9
  870. :cond_f
  871. const/4 v5, 0x0
  872. :goto_9
  873. const/4 v9, 0x0
  874. move-object/from16 v0, p0
  875. move-object v11, v1
  876. move-object v1, v2
  877. move-object/from16 v19, v2
  878. move v2, v3
  879. move v3, v4
  880. move/from16 v20, v15
  881. move/from16 v15, p2
  882. move v4, v5
  883. move/from16 v7, v17
  884. goto :goto_b
  885. :cond_10
  886. move-object v11, v1
  887. move-object/from16 v19, v2
  888. move/from16 v20, v15
  889. move/from16 v7, v17
  890. move/from16 v15, p2
  891. iget v0, v11, Landroid/view/ViewGroup$MarginLayoutParams;->width:I
  892. const/4 v5, -0x1
  893. if-ne v0, v5, :cond_11
  894. const/4 v5, 0x1
  895. goto :goto_a
  896. :cond_11
  897. const/4 v5, 0x0
  898. :goto_a
  899. const/4 v9, 0x0
  900. move-object/from16 v0, p0
  901. move-object/from16 v1, v19
  902. move v2, v4
  903. move v4, v5
  904. :goto_b
  905. move v5, v9
  906. invoke-direct/range {v0 .. v5}, Landroid/support/v7/widget/GridLayoutManager;->measureChildWithDecorationsAndMargin(Landroid/view/View;IIZZ)V
  907. iget-object v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  908. move-object/from16 v1, v19
  909. invoke-virtual {v0, v1}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
  910. move-result v0
  911. if-le v0, v15, :cond_12
  912. move v4, v0
  913. goto :goto_c
  914. :cond_12
  915. move v4, v15
  916. :goto_c
  917. const/high16 v0, 0x3f800000 # 1.0f
  918. iget-object v2, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  919. invoke-virtual {v2, v1}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurementInOther(Landroid/view/View;)I
  920. move-result v1
  921. int-to-float v1, v1
  922. mul-float v1, v1, v0
  923. invoke-static {v11}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  924. move-result v0
  925. int-to-float v0, v0
  926. div-float/2addr v1, v0
  927. cmpl-float v0, v1, v7
  928. if-lez v0, :cond_13
  929. move v5, v1
  930. goto :goto_d
  931. :cond_13
  932. move v5, v7
  933. :goto_d
  934. add-int/lit8 v10, v10, 0x1
  935. move-object/from16 v7, p3
  936. move/from16 v9, v18
  937. move/from16 v15, v20
  938. const/4 v11, 0x1
  939. goto/16 :goto_5
  940. :cond_14
  941. move v15, v4
  942. move v7, v5
  943. const/4 v5, -0x1
  944. if-eqz v13, :cond_1a
  945. invoke-direct {v6, v7, v14}, Landroid/support/v7/widget/GridLayoutManager;->guessMeasurement(FI)V
  946. const/4 v7, 0x0
  947. const/4 v9, 0x0
  948. :goto_e
  949. if-ge v7, v12, :cond_19
  950. iget-object v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  951. aget-object v10, v0, v7
  952. invoke-virtual {v10}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  953. move-result-object v0
  954. check-cast v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  955. iget-object v1, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  956. invoke-static {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  957. move-result v2
  958. invoke-static {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  959. move-result v3
  960. add-int/2addr v2, v3
  961. aget v1, v1, v2
  962. iget-object v2, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  963. invoke-static {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  964. move-result v3
  965. aget v2, v2, v3
  966. sub-int/2addr v1, v2
  967. iget v2, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  968. if-nez v2, :cond_15
  969. iget v2, v0, Landroid/view/ViewGroup$MarginLayoutParams;->height:I
  970. goto :goto_f
  971. :cond_15
  972. iget v2, v0, Landroid/view/ViewGroup$MarginLayoutParams;->width:I
  973. :goto_f
  974. const/high16 v3, 0x40000000 # 2.0f
  975. const/4 v4, 0x0
  976. invoke-static {v1, v3, v4, v2, v4}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildMeasureSpec(IIIIZ)I
  977. move-result v11
  978. iget-object v1, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  979. invoke-virtual {v1}, Landroid/support/v7/widget/OrientationHelper;->getTotalSpace()I
  980. move-result v1
  981. iget-object v2, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  982. invoke-virtual {v2}, Landroid/support/v7/widget/OrientationHelper;->getMode()I
  983. move-result v2
  984. iget v3, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  985. const/4 v13, 0x1
  986. if-ne v3, v13, :cond_16
  987. iget v0, v0, Landroid/view/ViewGroup$MarginLayoutParams;->height:I
  988. goto :goto_10
  989. :cond_16
  990. iget v0, v0, Landroid/view/ViewGroup$MarginLayoutParams;->width:I
  991. :goto_10
  992. invoke-static {v1, v2, v4, v0, v13}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildMeasureSpec(IIIIZ)I
  993. move-result v3
  994. iget v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  995. if-ne v0, v13, :cond_17
  996. const/4 v4, 0x0
  997. const/4 v13, 0x1
  998. move-object/from16 v0, p0
  999. move-object v1, v10
  1000. move v2, v11
  1001. const/4 v14, -0x1
  1002. move v5, v13
  1003. goto :goto_11
  1004. :cond_17
  1005. const/4 v14, -0x1
  1006. const/4 v4, 0x0
  1007. const/4 v5, 0x1
  1008. move-object/from16 v0, p0
  1009. move-object v1, v10
  1010. move v2, v3
  1011. move v3, v11
  1012. :goto_11
  1013. invoke-direct/range {v0 .. v5}, Landroid/support/v7/widget/GridLayoutManager;->measureChildWithDecorationsAndMargin(Landroid/view/View;IIZZ)V
  1014. iget-object v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  1015. invoke-virtual {v0, v10}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
  1016. move-result v0
  1017. if-le v0, v9, :cond_18
  1018. move v9, v0
  1019. :cond_18
  1020. add-int/lit8 v7, v7, 0x1
  1021. const/4 v5, -0x1
  1022. goto :goto_e
  1023. :cond_19
  1024. const/4 v14, -0x1
  1025. move v15, v9
  1026. goto :goto_12
  1027. :cond_1a
  1028. const/4 v14, -0x1
  1029. :goto_12
  1030. const/high16 v0, 0x40000000 # 2.0f
  1031. invoke-static {v15, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
  1032. move-result v7
  1033. const/4 v9, 0x0
  1034. :goto_13
  1035. if-ge v9, v12, :cond_1e
  1036. iget-object v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  1037. aget-object v1, v0, v9
  1038. iget-object v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  1039. invoke-virtual {v0, v1}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurement(Landroid/view/View;)I
  1040. move-result v0
  1041. if-eq v0, v15, :cond_1d
  1042. invoke-virtual {v1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  1043. move-result-object v0
  1044. check-cast v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  1045. iget-object v2, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1046. invoke-static {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1047. move-result v3
  1048. invoke-static {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1049. move-result v4
  1050. add-int/2addr v3, v4
  1051. aget v2, v2, v3
  1052. iget-object v3, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1053. invoke-static {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1054. move-result v4
  1055. aget v3, v3, v4
  1056. sub-int/2addr v2, v3
  1057. iget v3, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1058. if-nez v3, :cond_1b
  1059. iget v0, v0, Landroid/view/ViewGroup$MarginLayoutParams;->height:I
  1060. goto :goto_14
  1061. :cond_1b
  1062. iget v0, v0, Landroid/view/ViewGroup$MarginLayoutParams;->width:I
  1063. :goto_14
  1064. const/high16 v10, 0x40000000 # 2.0f
  1065. const/4 v11, 0x0
  1066. invoke-static {v2, v10, v11, v0, v11}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildMeasureSpec(IIIIZ)I
  1067. move-result v3
  1068. iget v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1069. const/4 v2, 0x1
  1070. const/4 v4, 0x1
  1071. const/4 v5, 0x1
  1072. if-ne v0, v2, :cond_1c
  1073. move-object/from16 v0, p0
  1074. move v2, v3
  1075. move v3, v7
  1076. goto :goto_15
  1077. :cond_1c
  1078. move-object/from16 v0, p0
  1079. move v2, v7
  1080. :goto_15
  1081. invoke-direct/range {v0 .. v5}, Landroid/support/v7/widget/GridLayoutManager;->measureChildWithDecorationsAndMargin(Landroid/view/View;IIZZ)V
  1082. goto :goto_16
  1083. :cond_1d
  1084. const/high16 v10, 0x40000000 # 2.0f
  1085. const/4 v11, 0x0
  1086. :goto_16
  1087. add-int/lit8 v9, v9, 0x1
  1088. goto :goto_13
  1089. :cond_1e
  1090. const/4 v11, 0x0
  1091. iput v15, v8, Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;->mConsumed:I
  1092. iget v0, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1093. const/4 v1, 0x1
  1094. if-ne v0, v1, :cond_20
  1095. move-object/from16 v0, p3
  1096. iget v1, v0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mLayoutDirection:I
  1097. iget v0, v0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mOffset:I
  1098. if-ne v1, v14, :cond_1f
  1099. sub-int v1, v0, v15
  1100. move v3, v0
  1101. move v2, v1
  1102. goto :goto_17
  1103. :cond_1f
  1104. add-int v1, v0, v15
  1105. move v2, v0
  1106. move v3, v1
  1107. :goto_17
  1108. const/4 v0, 0x0
  1109. const/4 v1, 0x0
  1110. goto :goto_18
  1111. :cond_20
  1112. move-object/from16 v0, p3
  1113. iget v1, v0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mLayoutDirection:I
  1114. iget v0, v0, Landroid/support/v7/widget/LinearLayoutManager$LayoutState;->mOffset:I
  1115. if-ne v1, v14, :cond_21
  1116. sub-int v1, v0, v15
  1117. const/4 v2, 0x0
  1118. const/4 v3, 0x0
  1119. move/from16 v21, v1
  1120. move v1, v0
  1121. move/from16 v0, v21
  1122. goto :goto_18
  1123. :cond_21
  1124. add-int v1, v0, v15
  1125. const/4 v2, 0x0
  1126. const/4 v3, 0x0
  1127. :goto_18
  1128. if-ge v11, v12, :cond_26
  1129. iget-object v4, v6, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  1130. aget-object v7, v4, v11
  1131. invoke-virtual {v7}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  1132. move-result-object v4
  1133. move-object v9, v4
  1134. check-cast v9, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  1135. iget v4, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1136. const/4 v5, 0x1
  1137. if-ne v4, v5, :cond_23
  1138. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/LinearLayoutManager;->isLayoutRTL()Z
  1139. move-result v0
  1140. if-eqz v0, :cond_22
  1141. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
  1142. move-result v0
  1143. iget-object v1, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1144. invoke-static {v9}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1145. move-result v4
  1146. invoke-static {v9}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1147. move-result v5
  1148. add-int/2addr v4, v5
  1149. aget v1, v1, v4
  1150. add-int/2addr v0, v1
  1151. iget-object v1, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  1152. invoke-virtual {v1, v7}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurementInOther(Landroid/view/View;)I
  1153. move-result v1
  1154. sub-int v1, v0, v1
  1155. move v14, v0
  1156. move v10, v1
  1157. goto :goto_1a
  1158. :cond_22
  1159. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
  1160. move-result v0
  1161. iget-object v1, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1162. invoke-static {v9}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1163. move-result v4
  1164. aget v1, v1, v4
  1165. add-int/2addr v0, v1
  1166. iget-object v1, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  1167. invoke-virtual {v1, v7}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurementInOther(Landroid/view/View;)I
  1168. move-result v1
  1169. add-int/2addr v1, v0
  1170. goto :goto_19
  1171. :cond_23
  1172. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingTop()I
  1173. move-result v2
  1174. iget-object v3, v6, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1175. invoke-static {v9}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1176. move-result v4
  1177. aget v3, v3, v4
  1178. add-int/2addr v2, v3
  1179. iget-object v3, v6, Landroid/support/v7/widget/LinearLayoutManager;->mOrientationHelper:Landroid/support/v7/widget/OrientationHelper;
  1180. invoke-virtual {v3, v7}, Landroid/support/v7/widget/OrientationHelper;->getDecoratedMeasurementInOther(Landroid/view/View;)I
  1181. move-result v3
  1182. add-int/2addr v3, v2
  1183. :goto_19
  1184. move v10, v0
  1185. move v14, v1
  1186. :goto_1a
  1187. move v13, v2
  1188. move v15, v3
  1189. move-object/from16 v0, p0
  1190. move-object v1, v7
  1191. move v2, v10
  1192. move v3, v13
  1193. move v4, v14
  1194. move v5, v15
  1195. invoke-virtual/range {v0 .. v5}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->layoutDecoratedWithMargins(Landroid/view/View;IIII)V
  1196. invoke-virtual {v9}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->isItemRemoved()Z
  1197. move-result v0
  1198. if-nez v0, :cond_25
  1199. invoke-virtual {v9}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->isItemChanged()Z
  1200. move-result v0
  1201. if-eqz v0, :cond_24
  1202. goto :goto_1b
  1203. :cond_24
  1204. const/4 v0, 0x1
  1205. goto :goto_1c
  1206. :cond_25
  1207. :goto_1b
  1208. const/4 v0, 0x1
  1209. iput-boolean v0, v8, Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;->mIgnoreConsumed:Z
  1210. :goto_1c
  1211. iget-boolean v1, v8, Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;->mFocusable:Z
  1212. invoke-virtual {v7}, Landroid/view/View;->isFocusable()Z
  1213. move-result v2
  1214. or-int/2addr v1, v2
  1215. iput-boolean v1, v8, Landroid/support/v7/widget/LinearLayoutManager$LayoutChunkResult;->mFocusable:Z
  1216. add-int/lit8 v11, v11, 0x1
  1217. move v0, v10
  1218. move v2, v13
  1219. move v1, v14
  1220. move v3, v15
  1221. goto/16 :goto_18
  1222. :cond_26
  1223. iget-object v0, v6, Landroid/support/v7/widget/GridLayoutManager;->mSet:[Landroid/view/View;
  1224. const/4 v1, 0x0
  1225. invoke-static {v0, v1}, Ljava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V
  1226. return-void
  1227. .end method
  1228. .method onAnchorReady(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;I)V
  1229. .locals 1
  1230. invoke-super {p0, p1, p2, p3, p4}, Landroid/support/v7/widget/LinearLayoutManager;->onAnchorReady(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;I)V
  1231. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->updateMeasurements()V
  1232. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->getItemCount()I
  1233. move-result v0
  1234. if-lez v0, :cond_0
  1235. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->isPreLayout()Z
  1236. move-result v0
  1237. if-nez v0, :cond_0
  1238. invoke-direct {p0, p1, p2, p3, p4}, Landroid/support/v7/widget/GridLayoutManager;->ensureAnchorIsInCorrectSpan(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;Landroid/support/v7/widget/LinearLayoutManager$AnchorInfo;I)V
  1239. :cond_0
  1240. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->ensureViewSet()V
  1241. return-void
  1242. .end method
  1243. .method public onFocusSearchFailed(Landroid/view/View;ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)Landroid/view/View;
  1244. .locals 18
  1245. move-object/from16 v0, p0
  1246. invoke-virtual/range {p0 .. p1}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->findContainingItemView(Landroid/view/View;)Landroid/view/View;
  1247. move-result-object v1
  1248. const/4 v2, 0x0
  1249. if-nez v1, :cond_0
  1250. return-object v2
  1251. :cond_0
  1252. invoke-virtual {v1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  1253. move-result-object v3
  1254. check-cast v3, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  1255. invoke-static {v3}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1256. move-result v4
  1257. invoke-static {v3}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1258. move-result v5
  1259. invoke-static {v3}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1260. move-result v3
  1261. add-int/2addr v5, v3
  1262. invoke-super/range {p0 .. p4}, Landroid/support/v7/widget/LinearLayoutManager;->onFocusSearchFailed(Landroid/view/View;ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)Landroid/view/View;
  1263. move-result-object v3
  1264. if-nez v3, :cond_1
  1265. return-object v2
  1266. :cond_1
  1267. move/from16 v3, p2
  1268. invoke-virtual {v0, v3}, Landroid/support/v7/widget/LinearLayoutManager;->convertFocusDirectionToLayoutDirection(I)I
  1269. move-result v3
  1270. const/4 v7, 0x1
  1271. if-ne v3, v7, :cond_2
  1272. const/4 v3, 0x1
  1273. goto :goto_0
  1274. :cond_2
  1275. const/4 v3, 0x0
  1276. :goto_0
  1277. iget-boolean v8, v0, Landroid/support/v7/widget/LinearLayoutManager;->mShouldReverseLayout:Z
  1278. if-eq v3, v8, :cond_3
  1279. const/4 v3, 0x1
  1280. goto :goto_1
  1281. :cond_3
  1282. const/4 v3, 0x0
  1283. :goto_1
  1284. const/4 v8, -0x1
  1285. if-eqz v3, :cond_4
  1286. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I
  1287. move-result v3
  1288. sub-int/2addr v3, v7
  1289. const/4 v9, -0x1
  1290. const/4 v10, -0x1
  1291. goto :goto_2
  1292. :cond_4
  1293. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildCount()I
  1294. move-result v3
  1295. move v9, v3
  1296. const/4 v3, 0x0
  1297. const/4 v10, 0x1
  1298. :goto_2
  1299. iget v11, v0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1300. if-ne v11, v7, :cond_5
  1301. invoke-virtual/range {p0 .. p0}, Landroid/support/v7/widget/LinearLayoutManager;->isLayoutRTL()Z
  1302. move-result v11
  1303. if-eqz v11, :cond_5
  1304. const/4 v11, 0x1
  1305. goto :goto_3
  1306. :cond_5
  1307. const/4 v11, 0x0
  1308. :goto_3
  1309. const/4 v8, 0x0
  1310. const/4 v12, -0x1
  1311. :goto_4
  1312. if-eq v3, v9, :cond_e
  1313. invoke-virtual {v0, v3}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getChildAt(I)Landroid/view/View;
  1314. move-result-object v13
  1315. if-ne v13, v1, :cond_6
  1316. goto :goto_9
  1317. :cond_6
  1318. invoke-virtual {v13}, Landroid/view/View;->isFocusable()Z
  1319. move-result v14
  1320. if-nez v14, :cond_7
  1321. goto :goto_8
  1322. :cond_7
  1323. invoke-virtual {v13}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  1324. move-result-object v14
  1325. check-cast v14, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  1326. invoke-static {v14}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1327. move-result v15
  1328. invoke-static {v14}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1329. move-result v16
  1330. invoke-static {v14}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$100(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1331. move-result v17
  1332. add-int v6, v16, v17
  1333. if-ne v15, v4, :cond_8
  1334. if-ne v6, v5, :cond_8
  1335. return-object v13
  1336. :cond_8
  1337. if-nez v2, :cond_9
  1338. goto :goto_7
  1339. :cond_9
  1340. invoke-static {v15, v4}, Ljava/lang/Math;->max(II)I
  1341. move-result v16
  1342. invoke-static {v6, v5}, Ljava/lang/Math;->min(II)I
  1343. move-result v17
  1344. sub-int v7, v17, v16
  1345. if-le v7, v8, :cond_a
  1346. :goto_5
  1347. const/4 v7, 0x1
  1348. goto :goto_7
  1349. :cond_a
  1350. if-ne v7, v8, :cond_c
  1351. if-le v15, v12, :cond_b
  1352. const/4 v7, 0x1
  1353. goto :goto_6
  1354. :cond_b
  1355. const/4 v7, 0x0
  1356. :goto_6
  1357. if-ne v11, v7, :cond_c
  1358. goto :goto_5
  1359. :cond_c
  1360. const/4 v7, 0x0
  1361. :goto_7
  1362. if-eqz v7, :cond_d
  1363. invoke-static {v14}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->access$000(Landroid/support/v7/widget/GridLayoutManager$LayoutParams;)I
  1364. move-result v2
  1365. invoke-static {v6, v5}, Ljava/lang/Math;->min(II)I
  1366. move-result v6
  1367. invoke-static {v15, v4}, Ljava/lang/Math;->max(II)I
  1368. move-result v7
  1369. sub-int/2addr v6, v7
  1370. move v12, v2
  1371. move v8, v6
  1372. move-object v2, v13
  1373. :cond_d
  1374. :goto_8
  1375. add-int/2addr v3, v10
  1376. const/4 v7, 0x1
  1377. goto :goto_4
  1378. :cond_e
  1379. :goto_9
  1380. return-object v2
  1381. .end method
  1382. .method public onInitializeAccessibilityNodeInfoForItem(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;Landroid/view/View;Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat;)V
  1383. .locals 7
  1384. invoke-virtual {p3}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
  1385. move-result-object v0
  1386. instance-of v1, v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  1387. if-nez v1, :cond_0
  1388. invoke-super {p0, p3, p4}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->onInitializeAccessibilityNodeInfoForItem(Landroid/view/View;Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat;)V
  1389. return-void
  1390. :cond_0
  1391. check-cast v0, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;
  1392. invoke-virtual {v0}, Landroid/support/v7/widget/RecyclerView$LayoutParams;->getViewLayoutPosition()I
  1393. move-result p3
  1394. invoke-direct {p0, p1, p2, p3}, Landroid/support/v7/widget/GridLayoutManager;->getSpanGroupIndex(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;I)I
  1395. move-result p1
  1396. iget p2, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1397. const/4 p3, 0x0
  1398. const/4 v1, 0x1
  1399. if-nez p2, :cond_2
  1400. invoke-virtual {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanIndex()I
  1401. move-result p2
  1402. invoke-virtual {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanSize()I
  1403. move-result v2
  1404. const/4 v4, 0x1
  1405. iget v3, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  1406. if-le v3, v1, :cond_1
  1407. invoke-virtual {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanSize()I
  1408. move-result v0
  1409. iget v3, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  1410. if-ne v0, v3, :cond_1
  1411. const/4 v5, 0x1
  1412. goto :goto_0
  1413. :cond_1
  1414. const/4 v5, 0x0
  1415. :goto_0
  1416. const/4 v6, 0x0
  1417. move v1, p2
  1418. move v3, p1
  1419. goto :goto_2
  1420. :cond_2
  1421. const/4 v2, 0x1
  1422. invoke-virtual {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanIndex()I
  1423. move-result v3
  1424. invoke-virtual {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanSize()I
  1425. move-result v4
  1426. iget p2, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  1427. if-le p2, v1, :cond_3
  1428. invoke-virtual {v0}, Landroid/support/v7/widget/GridLayoutManager$LayoutParams;->getSpanSize()I
  1429. move-result p2
  1430. iget v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  1431. if-ne p2, v0, :cond_3
  1432. const/4 v5, 0x1
  1433. goto :goto_1
  1434. :cond_3
  1435. const/4 v5, 0x0
  1436. :goto_1
  1437. const/4 v6, 0x0
  1438. move v1, p1
  1439. :goto_2
  1440. invoke-static/range {v1 .. v6}, Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;->obtain(IIIIZZ)Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat$CollectionItemInfoCompat;
  1441. move-result-object p1
  1442. invoke-virtual {p4, p1}, Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat;->setCollectionItemInfo(Ljava/lang/Object;)V
  1443. return-void
  1444. .end method
  1445. .method public onItemsAdded(Landroid/support/v7/widget/RecyclerView;II)V
  1446. .locals 0
  1447. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1448. invoke-virtual {p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
  1449. return-void
  1450. .end method
  1451. .method public onItemsChanged(Landroid/support/v7/widget/RecyclerView;)V
  1452. .locals 0
  1453. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1454. invoke-virtual {p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
  1455. return-void
  1456. .end method
  1457. .method public onItemsMoved(Landroid/support/v7/widget/RecyclerView;III)V
  1458. .locals 0
  1459. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1460. invoke-virtual {p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
  1461. return-void
  1462. .end method
  1463. .method public onItemsRemoved(Landroid/support/v7/widget/RecyclerView;II)V
  1464. .locals 0
  1465. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1466. invoke-virtual {p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
  1467. return-void
  1468. .end method
  1469. .method public onItemsUpdated(Landroid/support/v7/widget/RecyclerView;IILjava/lang/Object;)V
  1470. .locals 0
  1471. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1472. invoke-virtual {p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
  1473. return-void
  1474. .end method
  1475. .method public onLayoutChildren(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V
  1476. .locals 1
  1477. invoke-virtual {p2}, Landroid/support/v7/widget/RecyclerView$State;->isPreLayout()Z
  1478. move-result v0
  1479. if-eqz v0, :cond_0
  1480. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->cachePreLayoutSpanMapping()V
  1481. :cond_0
  1482. invoke-super {p0, p1, p2}, Landroid/support/v7/widget/LinearLayoutManager;->onLayoutChildren(Landroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)V
  1483. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->clearPreLayoutSpanMappingCache()V
  1484. return-void
  1485. .end method
  1486. .method public onLayoutCompleted(Landroid/support/v7/widget/RecyclerView$State;)V
  1487. .locals 0
  1488. invoke-super {p0, p1}, Landroid/support/v7/widget/LinearLayoutManager;->onLayoutCompleted(Landroid/support/v7/widget/RecyclerView$State;)V
  1489. const/4 p1, 0x0
  1490. iput-boolean p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mPendingSpanCountChange:Z
  1491. return-void
  1492. .end method
  1493. .method public scrollHorizontallyBy(ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  1494. .locals 0
  1495. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->updateMeasurements()V
  1496. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->ensureViewSet()V
  1497. invoke-super {p0, p1, p2, p3}, Landroid/support/v7/widget/LinearLayoutManager;->scrollHorizontallyBy(ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  1498. move-result p1
  1499. return p1
  1500. .end method
  1501. .method public scrollVerticallyBy(ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  1502. .locals 0
  1503. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->updateMeasurements()V
  1504. invoke-direct {p0}, Landroid/support/v7/widget/GridLayoutManager;->ensureViewSet()V
  1505. invoke-super {p0, p1, p2, p3}, Landroid/support/v7/widget/LinearLayoutManager;->scrollVerticallyBy(ILandroid/support/v7/widget/RecyclerView$Recycler;Landroid/support/v7/widget/RecyclerView$State;)I
  1506. move-result p1
  1507. return p1
  1508. .end method
  1509. .method public setMeasuredDimension(Landroid/graphics/Rect;II)V
  1510. .locals 4
  1511. iget-object v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1512. if-nez v0, :cond_0
  1513. invoke-super {p0, p1, p2, p3}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->setMeasuredDimension(Landroid/graphics/Rect;II)V
  1514. :cond_0
  1515. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
  1516. move-result v0
  1517. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingRight()I
  1518. move-result v1
  1519. add-int/2addr v0, v1
  1520. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingTop()I
  1521. move-result v1
  1522. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getPaddingBottom()I
  1523. move-result v2
  1524. add-int/2addr v1, v2
  1525. iget v2, p0, Landroid/support/v7/widget/LinearLayoutManager;->mOrientation:I
  1526. const/4 v3, 0x1
  1527. if-ne v2, v3, :cond_1
  1528. invoke-virtual {p1}, Landroid/graphics/Rect;->height()I
  1529. move-result p1
  1530. add-int/2addr p1, v1
  1531. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getMinimumHeight()I
  1532. move-result v1
  1533. invoke-static {p3, p1, v1}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->chooseSize(III)I
  1534. move-result p1
  1535. iget-object p3, p0, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1536. array-length v1, p3
  1537. sub-int/2addr v1, v3
  1538. aget p3, p3, v1
  1539. add-int/2addr p3, v0
  1540. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getMinimumWidth()I
  1541. move-result v0
  1542. invoke-static {p2, p3, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->chooseSize(III)I
  1543. move-result p2
  1544. goto :goto_0
  1545. :cond_1
  1546. invoke-virtual {p1}, Landroid/graphics/Rect;->width()I
  1547. move-result p1
  1548. add-int/2addr p1, v0
  1549. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getMinimumWidth()I
  1550. move-result v0
  1551. invoke-static {p2, p1, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->chooseSize(III)I
  1552. move-result p2
  1553. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mCachedBorders:[I
  1554. array-length v0, p1
  1555. sub-int/2addr v0, v3
  1556. aget p1, p1, v0
  1557. add-int/2addr p1, v1
  1558. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->getMinimumHeight()I
  1559. move-result v0
  1560. invoke-static {p3, p1, v0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->chooseSize(III)I
  1561. move-result p1
  1562. :goto_0
  1563. invoke-virtual {p0, p2, p1}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->setMeasuredDimension(II)V
  1564. return-void
  1565. .end method
  1566. .method public setSpanCount(I)V
  1567. .locals 3
  1568. iget v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  1569. if-ne p1, v0, :cond_0
  1570. return-void
  1571. :cond_0
  1572. const/4 v0, 0x1
  1573. iput-boolean v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPendingSpanCountChange:Z
  1574. if-lt p1, v0, :cond_1
  1575. iput p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanCount:I
  1576. iget-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1577. invoke-virtual {p1}, Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
  1578. invoke-virtual {p0}, Landroid/support/v7/widget/RecyclerView$LayoutManager;->requestLayout()V
  1579. return-void
  1580. :cond_1
  1581. new-instance v0, Ljava/lang/IllegalArgumentException;
  1582. new-instance v1, Ljava/lang/StringBuilder;
  1583. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  1584. const-string v2, "Span count should be at least 1. Provided "
  1585. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1586. invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1587. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1588. move-result-object p1
  1589. invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  1590. throw v0
  1591. .end method
  1592. .method public setSpanSizeLookup(Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;)V
  1593. .locals 0
  1594. iput-object p1, p0, Landroid/support/v7/widget/GridLayoutManager;->mSpanSizeLookup:Landroid/support/v7/widget/GridLayoutManager$SpanSizeLookup;
  1595. return-void
  1596. .end method
  1597. .method public setStackFromEnd(Z)V
  1598. .locals 1
  1599. if-nez p1, :cond_0
  1600. const/4 p1, 0x0
  1601. invoke-super {p0, p1}, Landroid/support/v7/widget/LinearLayoutManager;->setStackFromEnd(Z)V
  1602. return-void
  1603. :cond_0
  1604. new-instance p1, Ljava/lang/UnsupportedOperationException;
  1605. const-string v0, "GridLayoutManager does not support stack from end. Consider using reverse layout"
  1606. invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
  1607. throw p1
  1608. .end method
  1609. .method public supportsPredictiveItemAnimations()Z
  1610. .locals 1
  1611. iget-object v0, p0, Landroid/support/v7/widget/LinearLayoutManager;->mPendingSavedState:Landroid/support/v7/widget/LinearLayoutManager$SavedState;
  1612. if-nez v0, :cond_0
  1613. iget-boolean v0, p0, Landroid/support/v7/widget/GridLayoutManager;->mPendingSpanCountChange:Z
  1614. if-nez v0, :cond_0
  1615. const/4 v0, 0x1
  1616. goto :goto_0
  1617. :cond_0
  1618. const/4 v0, 0x0
  1619. :goto_0
  1620. return v0
  1621. .end method