package Ġcom . yang . module _ main . ui . main . fragment Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . alibaba . android . ar outer . facade . annotation . Route Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . by ted ance . sdk . open ad sdk .* Ċ import Ġcom . ch ad . library . adapter . base . Base Multi Item Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base . Base ViewHolder Ċ import Ġcom . google . android . material . image view . Shape able ImageView Ċ import Ġcom . google . android . material . shape . Shape Appearance Model Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . lx j . x popup . X Popup Ċ import Ġcom . sc wang . smart . refresh . layout . api . Refresh Layout Ċ import Ġcom . sc wang . smart . refresh . layout . listener . On Refresh Load More Listener Ċ import Ġcom . yang . apt _ annotation . annot ain . Inject ViewModel Ċ import Ġcom . yang . lib _ common . base . ui . fragment . Base Lazy Fragment Ċ import Ġcom . yang . lib _ common . bus . event . LiveData Bus Ċ import Ġcom . yang . lib _ common . bus . event . UI Change LiveData Ċ import Ġcom . yang . lib _ common . constant . App Constant Ċ import Ġcom . yang . lib _ common . dialog . ImageView Pager Dialog Ċ import Ġcom . yang . lib _ common . proxy . Inject ViewModel Proxy Ċ import Ġcom . yang . lib _ common . util .* Ċ import Ġcom . yang . lib _ common . widget . Common ToolBar Ċ import Ġcom . yang . lib _ common . widget . Grid N ine Picture View Ċ import Ġcom . yang . module _ main . R Ċ import Ġcom . yang . module _ main . data . model . Dynamic Data Ċ import Ġcom . yang . module _ main . ui . main . activity . Add Dynamic Activity Ċ import Ġcom . yang . module _ main . ui . main . activity . MainActivity Ċ import Ġcom . yang . module _ main . view model . Main ViewModel Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . f ra _ main .* Ċ import Ġkotlinx . android . synt hetic . main . view _ dynamic _ item .* Ċ import Ġkotlinx . android . synt hetic . main . view _ normal _ recyclerview .* Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . random . Random ĊĊ Ċ @ Route ( path Ġ= ĠApp Constant . Route Path . MAIN _ FRAGMENT ) Ċ class ĠMain Fragment Ġ: ĠBase Lazy Fragment (), ĠOn Refresh Load More Listener Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġgson : ĠGson ĊĊĠĠĠ Ġ@ Inject ViewModel ĊĠĠĠ Ġlateinit Ġvar Ġmain ViewModel : ĠMain ViewModel ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠM Adapter ĊĊĠĠĠ Ġprivate Ġvar Ġmutable ListOf : ĠMutable List < Dynamic Data > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġprivate Ġvar Ġpage Num Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġm TT Ad Native : ĠTT Ad Native ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun Ġget Layout (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . f ra _ main ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġsmart Refresh Layout . auto Refresh () ĊĠĠĠĠĠĠĠ Ġinit Smart Refresh Layout () ĊĊĠĠĠĠĠĠĠ ĠLive Data Bus . instance . with (" refresh _ dynamic "). observe ( this , ĠObserver Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Refresh ( smart Refresh Layout ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġmain ViewModel . dynamic List LiveData . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty () Ġ&& Ġmain ViewModel . m TT Native Express Ad List . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . m TT Native Express Ad List . forEach Ġ{ Ġad Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add ( Random . nextInt ( 0 , it . size ), ad Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Refresh Layout . is Refresh ing Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Refresh Layout . finish Refresh () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . show RecyclerView Empty Event () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . replace Data ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Refresh Layout . isLoading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Refresh Layout . finish Load More () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Refresh Layout . set No More Data ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsmart Refresh Layout . set No More Data ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . addData ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain ViewModel . show RecyclerView Empty Event () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . replace Data ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĠĠĠĠĠĠĠ Ġval Ġregister For Activity Result Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister For Activity Result ( Activity Result Contracts . Start Activity For Result ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . result Code Ġ!= ĠAppCompatActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ register For Activity Result ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages Ġ= Ġit . data ?. getString ArrayList Extra ( App Constant . Constant . DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġit . data ?. getString Extra ( App Constant . Constant . CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmutable ListOf Ġ= Ġmutable ListOf < Dynamic Data >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! content . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Dynamic Data (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! images . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (( Dynamic Data (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Urls Ġ= Ġimages . format With Symbol ("# ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . addData ( 0 , Ġmutable ListOf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . scrollTo Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcommon ToolBar . iv Back . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm LayoutParams Ġ= Ġit . layout Params Ġas ĠConstraint Layout . LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Padding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f . dip 2 px ( require Context ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f . dip 2 px ( require Context ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f . dip 2 px ( require Context ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f . dip 2 px ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutParams . margin Start Ġ= Ġ 1 5 f . dip 2 px ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . shape Appearance Model Ġ= ĠShape Appearance Model . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set All Corner Sizes ( Shape Appearance Model . PI LL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠuserInfo Ġ= ĠgetUser Info () ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserInfo ?. user Image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ" https :// g img 2 . baidu . com / image _ search / src = http % 3 A % 2 F % 2 F up . enter desk . com % 2 Fed pic % 2 F 3 9 % 2 Fb 7 % 2 F 5 3 % 2 F 3 9 b 7 5 3 5 7 f 9 8 6 7 5 e 2 d 6 d 5 dc de 1 fb 8 0 5 a 3 . jpg & refer = http % 3 A % 2 F % 2 F up . enter desk . com & app = 2 0 0 2 & size = f 9 9 9 9 , 1 0 0 0 0 & q = a 8 0 & n = 0 & g = 0 n & fmt = jpeg ? sec = 1 6 4 2 8 4 0 0 8 6 & t = 2 a 7 5 7 4 a 5 d 8 ecc 9 6 6 6 9 ac 3 e 0 5 0 fe 4 fd 8 e " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . iv _ image _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . iv _ image _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( common ToolBar . iv Back ) ĊĊĠĠĠĠĠĠĠ Ġcommon ToolBar . image Add CallBack Ġ= Ġobject Ġ: ĠCommon ToolBar . Image Add CallBack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġimage Add ClickListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getDefault MM KV (). decode Int ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Constant . Constant . LOGIN _ STATUS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ== ĠApp Constant . Constant . LOGIN _ NO _ PERMISSION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild AR outer Login ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister For Activity Result . launch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( require Context (), ĠAdd Dynamic Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcommon ToolBar . image Back CallBack Ġ= Ġobject Ġ: ĠCommon ToolBar . Image Back CallBack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġimage Back ClickListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ). drawer Layout . open Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Smart Refresh Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġsmart Refresh Layout . setOn Refresh Load More Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit UI Change LiveData (): ĠUI Change LiveData ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmain ViewModel . u C ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠInject ViewModel Proxy . inject ( this ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠM Adapter ( mutable ListOf ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Item Child ClickListener Ġ{ Ġ_, Ġview , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . s iv _ img Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild AR outer ( App Constant . Route Path . M INE _ OTHER _ PERSON _ INFO _ ACTIVITY ). with String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Constant . Constant . ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). navigation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ Ġ_, Ġ_, Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġm Adapter . getItem ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild AR outer ( App Constant . Route Path . DYNAMIC _ DETAIL _ ACTIVITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with String ( App Constant . Constant . ID , Ġitem ?. id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cyclerView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" init RecyclerView : Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġregister Refresh And RecyclerView ( smart Refresh Layout , Ġm Adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠM Adapter ( list : ĠMutable List < Dynamic Data >) Ġ: ĊĠĠĠĠĠĠĠ ĠBase Multi Item Quick Adapter < Dynamic Data , ĠBase ViewHolder >( list ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ItemType ( App Constant . Constant . ITEM _ CONTENT , ĠR . layout . view _ dynamic _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ItemType ( App Constant . Constant . ITEM _ AD , ĠR . layout . item _ ad ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconvert ( helper : ĠBase ViewHolder , Ġitem : ĠDynamic Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item . m ItemType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Constant . Constant . ITEM _ CONTENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Item Main Title ( helper , Ġitem ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . content . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . set G one ( R . id . item _ main _ content _ text , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . set G one ( R . id . item _ main _ content _ text , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Item Main Content Text ( helper , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . image Urls . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . set G one ( R . id . m RecyclerView , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . set G one ( R . id . m RecyclerView , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Item Main Content Image ( helper , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . image Urls . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . set G one ( R . id . grid N ine Picture View , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . set G one ( R . id . grid N ine Picture View , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Item Main Content Image ( helper , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Item Main Identification ( helper , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Constant . Constant . ITEM _ AD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* å¹¿åĳĬ view */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġad Container Ġ= Ġhelper . getView < Frame Layout >( R . id . ad Container ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Container . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . m TT Native Express Ad ?. express Ad View ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . parent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Container . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . m TT Native Express Ad ?. set Dis like Callback ( require Activity (), Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTT Ad Dis like . Dis like Interaction Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Show () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Selected ( p 0 : ĠInt , Ġp 1 : ĠString ?, Ġp 2 : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠindexOf Ġ= Ġm Data . indexOf ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MA d apter . remove ( indexOf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancel () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinit Item Main Title ( helper : ĠBase ViewHolder , Ġitem : ĠDynamic Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs iv Img Ġ= Ġhelper . getView < Shape able ImageView >( R . id . s iv _ img ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . add OnClickListener ( R . id . s iv _ img ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( R . id . tv _ time , Ġitem . create Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( s iv Img ). load ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . user Image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ" https :// g img 2 . baidu . com / image _ search / src = http % 3 A % 2 F % 2 F up . enter desk . com % 2 Fed pic % 2 F 3 9 % 2 Fb 7 % 2 F 5 3 % 2 F 3 9 b 7 5 3 5 7 f 9 8 6 7 5 e 2 d 6 d 5 dc de 1 fb 8 0 5 a 3 . jpg & refer = http % 3 A % 2 F % 2 F up . enter desk . com & app = 2 0 0 2 & size = f 9 9 9 9 , 1 0 0 0 0 & q = a 8 0 & n = 0 & g = 0 n & fmt = jpeg ? sec = 1 6 4 2 8 4 0 0 8 6 & t = 2 a 7 5 7 4 a 5 d 8 ecc 9 6 6 6 9 ac 3 e 0 5 0 fe 4 fd 8 e " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . iv _ image _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . iv _ image _ placeholder ). into ( s iv Img ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinit Item Main Content Text ( helper : ĠBase ViewHolder , Ġitem : ĠDynamic Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . setText ( R . id . tv _ text , Ġitem . content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinit Item Main Content Image ( helper : ĠBase ViewHolder , Ġitem : ĠDynamic Data ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid N ine Picture View Ġ= Ġhelper . getView < Grid N ine Picture View >( R . id . grid N ine Picture View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid N ine Picture View . data Ġ= Ġitem . image Urls ?. symbol ToList ("# ") !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid N ine Picture View . image Callback Ġ= Ġobject Ġ: ĠGrid N ine Picture View . Image Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġimage ClickListener ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage ViewPager Dialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImageView Pager Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . image Urls ?. symbol ToList ("# ") !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Popup . Builder ( require Context ()). as Custom ( image ViewPager Dialog ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinit Item Main Content Image ( helper : ĠBase ViewHolder , Ġitem : ĠDynamic Data ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm RecyclerView Ġ= Ġhelper . getView < RecyclerView >( R . id . m RecyclerView ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm RecyclerView . layout Manager Ġ= ĠGrid LayoutManager ( mContext , Ġ 3 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdynamic Adapter Ġ= ĠDynamic Adapter ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . view _ item _ grid _ n ine _ picture , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . image Urls ?. symbol ToList ("# ") !! Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic Adapter . setOn ItemClickListener Ġ{ Ġadapter , Ġview , Ġposition Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage ViewPager Dialog Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImageView Pager Dialog ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . image Urls ?. symbol ToList ("# ") !! , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Popup . Builder ( require Context ()). as Custom ( image ViewPager Dialog ). show () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm RecyclerView . adapter Ġ= Ġdynamic Adapter Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinit Item Main Identification ( helper : ĠBase ViewHolder , Ġitem : ĠDynamic Data ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Dynamic List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmutable Map Of Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġmutable Map Of [ App Constant . Constant . PAGE _ NUMBER ] Ġ= Ġpage Num . toString () ĊĠĠĠĠĠĠĠ Ġmutable Map Of [ App Constant . Constant . PAGE _ SIZE ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Constant . Constant . PAGE _ SIZE _ COUNT . toString () ĊĠĠĠĠĠĠĠ Ġmain ViewModel . get Dynamic List ( mutable Map Of ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonLoad More ( refresh Layout : ĠRefresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpage Num ++ ĊĠĠĠĠĠĠĠ Ġget Dynamic List () ĊĠĠĠĠĠĠĠ Ġmain ViewModel . load Main Ad () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Refresh ( refresh Layout : ĠRefresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpage Num Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġget Dynamic List () ĊĠĠĠĠĠĠĠ Ġmain ViewModel . load Main Ad () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġm Adapter . data . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . m ItemType Ġ!= ĠApp Constant . Constant . ITEM _ AD ĊĠĠĠĠĠĠĠ Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . m TT Native Express Ad ?. destroy () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }