package Ġcom . cz l . module _ search . adapter Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ch ad . library . adapter . base . Base Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base . view holder . Base Data Binding Holder Ċ import Ġcom . cz l . lib _ base . binding . command . Binding Action Ċ import Ġcom . cz l . lib _ base . binding . command . Binding Command Ċ import Ġcom . cz l . lib _ base . data . db . Search History Entity Ċ import Ġcom . cz l . lib _ base . util . Dialog Helper Ċ import Ġcom . cz l . lib _ base . util . Rx Thread Helper Ċ import Ġcom . cz l . module _ search . R Ċ import Ġcom . cz l . module _ search . databinding . Search Rec Child Binding Ċ import Ġcom . cz l . module _ search . ui . fragment . Search Fragment Ċ import Ġcom . google . android . flex box . Flex Direction Ċ import Ġcom . google . android . flex box . Flex Wrap Ċ import Ġcom . google . android . flex box . Flex box LayoutManager Ċ import Ġcom . google . android . flex box . Just ify Content Ċ import Ġio . reactivex . Flow able Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAl w yn Ċ Ġ* Ġ@ Date Ġ 2 0 2 0 / 1 2 / 2 3 Ċ Ġ* Ġ@ Description Ċ Ġ*/ Ċ class ĠSearch Rec Adapter ( ĊĠĠĠ Ġprivate Ġval Ġm Fragment : ĠSearch Fragment , ĊĠĠĠ Ġprivate Ġval Ġhot Key List : ĠArrayList < String > ?, ĊĠĠĠ Ġprivate Ġval Ġhist ories : ĠFlow able < List < Search History Entity >> Ċ ) Ġ: ĊĠĠĠ ĠBase Quick Adapter < String , ĠBase Data Binding Holder < Search Rec Child Binding >>( R . layout . search _ rec _ child ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġconvert ( holder : ĠBase Data Binding Holder < Search Rec Child Binding >, Ġitem : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . data Binding ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġthis @ Search Rec Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Adapter Ġ= ĠSearch Rec Child Adapter ( m Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . set Diff Callback ( m Adapter . diff Config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġry Child . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠFlex box LayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlex Direction . ROW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlex Wrap . WRAP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĠjustifyContent Ġ= ĠJust ify Content . FLEX _ START Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( holder . layout Position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . set Diff New Data ( hot Key List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment . viewModel . add Subscribe ( hist ories . compose ( Rx Thread Helper . rx Flow Scheduler Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View By Position ( 1 , R . id . ll _ root )?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . set Diff New Data ( list . map Ġ{ Ġit . history Ġ} Ġas ĠMutable List < String >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġon Clear Click : ĠBinding Command < Void > Ġ= ĠBinding Command ( Binding Action Ġ{ ĊĠĠĠĠĠĠĠ ĠDialog Helper . show Base Dialog ( context ," æıĲç¤º "," æĺ¯åĲ¦ æ¸ħ ç©º æīĢæľī æĲľç´¢ è®°å½ķ ï¼Ł "){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment . viewModel . model . delete All Search History () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Rx Thread Helper . rx Scheduler Helper ( m Fragment . viewModel )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġcount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġry Child Ġ= Ġget View By Position ( 1 , ĠR . id . ry _ child ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( ry Child . adapter Ġas ĠSearch Rec Child Adapter ). set Diff New Data ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View By Position ( 1 , R . id . ll _ root )?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊ Ċ // ĠĠĠ Ġoverride Ġfun Ġconvert ( Ċ // ĠĠĠĠĠĠĠ Ġholder : ĠBase Data Binding Holder < Search Rec Child Binding >, Ċ // ĠĠĠĠĠĠĠ Ġitem : ĠString , Ċ // ĠĠĠĠĠĠĠ Ġpayload s : ĠList < Any > Ċ // ĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( payload s . isEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconvert ( holder , Ġitem ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġsuper . convert ( holder , Ġitem , Ġpayload s ) Ċ // ĠĠĠĠĠĠĠ Ġ// Ġ å±Ģ éĥ¨ åĪ·æĸ° åıª éļĲèĹı åİĨåı² è®°å½ķ Ġ çĥŃ éĹ¨ æĲľç´¢ ä¸į åĪ·æĸ° Ċ // ĠĠĠĠĠĠĠ Ġget View By Position ( 1 , R . id . ll _ root )?. visibility Ġ= ĠView . GONE Ċ // ĠĠĠ Ġ} Ċ }