package Ġio . swift fest . www . swift fest . views Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġio . swift fest . www . swift fest . R . layout Ċ import Ġio . swift fest . www . swift fest . data . model . F aq Item Ċ import Ġio . swift fest . www . swift fest . views . faq . F aq Adapter Item Ċ import Ġio . swift fest . www . swift fest . views . faq . F aq Adapter Item Header Ċ import Ġeu . dav idea . flex ible adapter . Flex ible Adapter Ċ import Ġio . swift fest . www . swift fest . data . DataProvider Ċ import Ġkotlinx . android . synt hetic . main . faq _ fragment . faq _ recycler Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . HashMap ĊĊ Ċ class ĠFAQ Fragment Ġ: ĠFragment (), ĠFlex ible Adapter . On ItemClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġheader Adapter : ĠFlex ible Adapter < F aq Adapter Item > ĊĠĠĠ Ġprivate Ġval Ġdata Provider Ġ= ĠData Provider . instance ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( layout . faq _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsetup Header Adapter ( dataProvider . fa qs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Header Adapter ( fa qs : ĠList < F aq Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquestion Headers Ġ= ĠHashMap < String , ĠF aq Adapter Item Header >() ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= ĠArrayList < F aq Adapter Item >( fa qs . size ) ĊĠĠĠĠĠĠĠ Ġfa qs . forEach Ġ{ Ġfa q Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfa q . answers . forEach Ġ{ Ġanswer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader : ĠF aq Adapter Item Header Ġ= Ġquestion Headers [ faq . question ] Ġ?: ĠF aq Adapter Item Header ( faq . question ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion Headers [ faq . question ] Ġ= Ġheader ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠF aq Adapter Item ( answer , Ġheader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfa q _ recycler . layout Manager Ġ= ĠLinearLayoutManager ( faq _ recycler . context ) ĊĠĠĠĠĠĠĠ Ġheader Adapter Ġ= ĠFlex ible Adapter ( items ) ĊĠĠĠĠĠĠĠ Ġheader Adapter . addListener ( this ) ĊĠĠĠĠĠĠĠ Ġfa q _ recycler . adapter Ġ= Ġheader Adapter ĊĠĠĠĠĠĠĠ Ġheader Adapter . expand Items At Start Up () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Display Headers At Start Up ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġposition : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( header Adapter . getItem ( position ) Ġis ĠF aq Adapter Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġheader Adapter . getItem ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Data Ġ= Ġitem !!. item Data ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ(! TextUtils . isEmpty ( item Data . other Link )) Ġitem Data . other Link Ġelse Ġitem Data . map Link ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . data Ġ= ĠUri . parse ( url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( faq _ recycler . context . package Manager . query Intent Activities ( intent , Ġ 0 ). size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ } Ċ