package Ġcom . example . ch uc ulture . activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . text . style . Clickable Span Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcc . sh in ichi . library . Image Preview Ċ import Ġcom . example . ch uc ulture . Data Intent Trans . Companion . P AP ER _ ID Ċ import Ġcom . example . ch uc ulture . Data Intent Trans . Companion . RE LIC _ ID Ċ import Ġcom . example . ch uc ulture . Data Intent Trans . Companion . RE LIC _ QUERY _ KEYWORD Ċ import Ġcom . example . ch uc ulture . Data Intent Trans . Companion . RE LIC _ START _ TYPE Ċ import Ġcom . example . ch uc ulture . Data Intent Trans . Companion . RE LIC _ TYPE _ MAT ERIAL Ċ import Ġcom . example . ch uc ulture . Data Intent Trans . Companion . RE LIC _ TYPE _ YEAR Ċ import Ġcom . example . ch uc ulture . R Ċ import Ġcom . example . ch uc ulture . Utils . load Normal Ċ import Ġcom . example . ch uc ulture . adapter . Rel ic Image Adapter Ċ import Ġcom . example . ch uc ulture . network . Net Work Client . BASE _ IMAGE _ URL Ċ import Ġcom . example . ch uc ulture . view model . Rel ic Detail ViewModel Ċ import Ġorg . w 3 c . dom . Text Ċ import Ġkotlin . math . abs Ċ Ċ class ĠRel ic Detail Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Rel ic Detail ViewModel >() ĊĠĠĠ Ġprivate Ġvar Ġid : Int ?= null ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ relic _ detail ) ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġid = intent . getInt Extra ( RE LIC _ ID , 0 ) ĊĠĠĠĠĠĠĠ ĠviewModel . get Rel ic ById ( id !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimg Rel ic = findViewById < ImageView >( R . id . img _ relic ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Name = findViewById < TextView >( R . id . tv _ relic _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Abstract = findViewById < TextView >( R . id . tv _ relic _ abstract ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Year = findViewById < TextView >( R . id . tv _ relic _ year ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Material = findViewById < TextView >( R . id . tv _ relic _ material ) ĊĠĠĠĠĠĠĠ Ġval Ġll Rel ic Paper 0 = findViewById < LinearLayout >( R . id . ll _ relic _ paper _ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġll Rel ic Paper 1 = findViewById < LinearLayout >( R . id . ll _ relic _ paper _ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Desc More = findViewById < TextView >( R . id . tv _ relic _ desc _ more ) ĊĊĠĠĠĠĠĠĠ Ġll Rel ic Paper 0 . isVisible = false ĊĠĠĠĠĠĠĠ Ġll Rel ic Paper 1 . isVisible = false ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Paper Abstract 0 = findViewById < TextView >( R . id . tv _ relic _ paper _ abstract _ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Paper Abstract 1 = findViewById < TextView >( R . id . tv _ relic _ paper _ abstract _ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Paper Name 0 = findViewById < TextView >( R . id . tv _ relic _ paper _ name _ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic Paper Name 1 = findViewById < TextView >( R . id . tv _ relic _ paper _ name _ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġtb Rel ic Detail = findViewById < Toolbar >( R . id . tb _ relic _ detail ) ĊĊĊĠĠĠĠĠĠĠ ĠviewModel . response . observe ( this ,{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code == 1 && response . data != null ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname = if Ġ( response . data . name . length > 9 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . name . substring ( 0 , 9 )+" .." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Name . text = name ĊĊĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Year . text = response . data . year ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Material . text = response . data . material ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Rel ic . load Normal ( response . data . image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdesc = if Ġ( response . data . abstract 1 . length < 1 2 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . abstract 1 +" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . abstract 1 . substring ( 0 , 1 2 )+" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Abstract . text = desc ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data . paper List != null && response . data . paper List . size == 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Paper Name 0 . text = response . data . paper List [ 0 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġabstract = response . data . paper List [ 0 ]. abstract 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abstract . length > 2 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabstract = abstract . substring ( 0 , 2 0 )+" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Paper Abstract 0 . text = Ġabstract ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaper Listener ( ll Rel ic Paper 0 , response . data . paper List [ 0 ]. id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll Rel ic Paper 0 . isVisible = true ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data . paper List != null && response . data . paper List . size > 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Paper Name 0 . text = response . data . paper List [ 0 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Paper Name 1 . text = response . data . paper List [ 1 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġabstract 1 = response . data . paper List [ 0 ]. abstract 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abstract 1 . length > 2 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabstract 1 = abstract 1 . substring ( 0 , 2 0 )+" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Paper Abstract 0 . text = Ġabstract 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġabstract 2 = response . data . paper List [ 1 ]. abstract 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abstract 2 . length > 2 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabstract 2 = abstract 2 . substring ( 0 , 2 0 )+" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Paper Abstract 1 . text = Ġabstract 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaper Listener ( ll Rel ic Paper 0 , response . data . paper List [ 0 ]. id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaper Listener ( ll Rel ic Paper 1 , response . data . paper List [ 1 ]. id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll Rel ic Paper 0 . isVisible = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll Rel ic Paper 1 . isVisible = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . year ?. let Ġ{ Ġdata Ġ-> Ġset Year Listener ( tv Rel ic Year , Ġdata ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . material ?. let Ġ{ Ġdata -> set Material Listener ( tv Rel ic Material , data ) Ġ} ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Rel ic . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Preview ( response . data . image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rel ic Desc More . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = ĠIntent ( this @ Rel ic Detail Activity , Rel ic Abstract Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( RE LIC _ ID , id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtb Rel ic Detail . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpaper Listener ( view : View , paper Id : Int ){ ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = Intent ( this , Paper Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( P AP ER _ ID , paper Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġprivate Ġfun Ġset Year Listener ( view : View , year : String ){ ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = Intent ( this , Rel ic Type Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( RE LIC _ START _ TYPE , ĠREL IC _ TYPE _ YEAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( RE LIC _ QUERY _ KEYWORD , year ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Material Listener ( view : View , material : String ){ ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = Intent ( this , Rel ic Type Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( RE LIC _ START _ TYPE , ĠREL IC _ TYPE _ MAT ERIAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( RE LIC _ QUERY _ KEYWORD , material ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Preview ( url : String ){ ĊĠĠĠĠĠĠĠ ĠImage Preview . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Context ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Index ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setImage ( BASE _ IMAGE _ URL + url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠ Ġ} Ċ }