package Ġcom . battle l ancer . series guide . ui . people Ċ Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . loader . app . Loader Manager Ċ import Ġandroidx . loader . content . Loader Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġbutter knife . OnClick Ċ import Ġbutter knife . On Long Click Ċ import Ġbutter knife . Un binder Ċ import Ġcom . battle l ancer . series guide . R Ċ import Ġcom . battle l ancer . series guide . util . Service Utils Ċ import Ġcom . battle l ancer . series guide . util . Text Tools Ċ import Ġcom . battle l ancer . series guide . util . T mdb Tools Ċ import Ġcom . battle l ancer . series guide . util . copy Text To Clipboard Ċ import Ġcom . uw et rott mann . android utils . Android Utils Ċ import Ġcom . uw et rott mann . t mdb 2 . entities . Person Ċ Ċ /** Ċ Ġ* ĠDisplays Ġdetails Ġabout Ġa Ġcre w Ġor Ġcast Ġmember Ġand Ġtheir Ġwork . Ċ Ġ*/ Ċ class ĠPerson Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ@ BindView ( R . id . progress Bar Person ) ĊĠĠĠ Ġlateinit Ġvar ĠprogressBar : ĠProgress Bar ĊĠĠĠ Ġ@ BindView ( R . id . imageView Person Head shot ) ĊĠĠĠ Ġlateinit Ġvar ĠimageView Head shot : ĠImageView ĊĠĠĠ Ġ@ BindView ( R . id . textView Person Name ) ĊĠĠĠ Ġlateinit Ġvar ĠtextView Name : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . textView Person Bio graphy ) ĊĠĠĠ Ġlateinit Ġvar ĠtextView Bio graphy : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . button Person T mdb Link ) ĊĠĠĠ Ġlateinit Ġvar Ġbutton T mdb Link : ĠButton ĊĠĠĠ Ġ@ BindView ( R . id . button Person Web Search ) ĊĠĠĠ Ġlateinit Ġvar Ġbutton Web Search : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġun binder : ĠU nb inder ĊĊĠĠĠ Ġprivate Ġvar Ġperson T mdb Id : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġperson : ĠPerson ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġperson T mdb Id Ġ= Ġarguments ?. getInt ( ARG _ PERSON _ TM DB _ ID ) Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater . inflate ( R . layout . fragment _ person , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġun binder Ġ= ĠB utter Kn ife . bind ( this , Ġroot View ) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠLoader Manager . getInstance ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. init Loader ( People Activity . PERSON _ LOAD ER _ ID , Ġnull , Ġperson Loader Callbacks ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĊĠĠĠĠĠĠĠ Ġun binder . unbind () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . button Person T mdb Link ) ĊĠĠĠ Ġfun ĠonClick Button T mdb Link () Ġ{ ĊĠĠĠĠĠĠĠ Ġperson ?. id ?. let Ġ{ ĠT mdb Tools . open T mdb Person ( activity , Ġit ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Long Click ( R . id . button Person T mdb Link ) ĊĠĠĠ Ġfun Ġon Long Click Button T mdb Link ( view : ĠView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġperson ?. id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Text To Clipboard ( view . context , ĠT mdb Tools . build Person Url ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . button Person Web Search ) ĊĠĠĠ Ġfun ĠonClick Button Web Search () Ġ{ ĊĠĠĠĠĠĠĠ Ġperson ?. let Ġ{ ĠService Utils . perform Web Search ( activity , Ġit . name ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate Person Views ( person : ĠPerson ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( person Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Android Utils . is Network Connected ( require Context ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Bio graphy . text Ġ= ĠgetString ( R . string . api _ error _ generic , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . t mdb )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , ĠR . string . offline , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Bio graphy . text Ġ= ĠgetString ( R . string . offline ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . person Ġ= Ġperson ĊĊĠĠĠĠĠĠĠ ĠtextView Name . text Ġ= Ġperson . name ĊĠĠĠĠĠĠĠ Ġval Ġbio graphy Ġ= Ġif Ġ( TextUtils . isEmpty ( person . bio graphy )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . not _ available ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson . bio graphy ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠtextView Bio graphy . text Ġ= ĠText Tools . text With T mdb Source ( textView Bio graphy . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbio graphy ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( person . profile _ path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠService Utils . load With Pic asso ( activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT mdb Tools . build Profile ImageUrl ( activity , Ġperson . profile _ path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT mdb Tools . Profile Image Size . H 6 3 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( Color Drawable ( Context Compat . getColor ( require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . protection _ dark ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView Head shot ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġshow Ġactions ĊĠĠĠĠĠĠĠ Ġrequire Activity (). invalidate Options Menu () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShows Ġor Ġhide s Ġa Ġcustom Ġin determinate Ġprogress Ġindicator Ġinside Ġthis Ġactivity Ġlayout . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Progress Visibility ( isVisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Bar . visibility Ġ== Ġ( if Ġ( isVisible ) ĠView . VISIBLE Ġelse ĠView . GONE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġalready Ġin Ġdesired Ġstate , Ġavoid Ġreplay ing Ġanimation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠprogressBar . start Animation ( Animation Utils . load Animation ( progress Bar . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isVisible ) ĠR . anim . fade _ in Ġelse ĠR . anim . fade _ out )) ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġif Ġ( isVisible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġperson Loader Callbacks Ġ= Ġobject Ġ: ĠLoader Manager . Loader Callbacks < Person ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate Loader ( id : ĠInt , Ġargs : ĠBundle ?): ĠLoader < Person ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Progress Visibility ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPerson Loader ( require Context (), Ġperson T mdb Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Finished ( loader : ĠLoader < Person ? >, Ġdata : ĠPerson ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Progress Visibility ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate Person Views ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Loader Reset ( loader : ĠLoader < Person ?> ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing , Ġpref erring Ġstale Ġdata Ġover Ġno Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ PERSON _ TM DB _ ID Ġ= Ġ" person _ t mdb _ id " ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( t mdb Id : ĠInt ): ĠPerson Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠPerson Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( ARG _ PERSON _ TM DB _ ID , Ġt mdb Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . arguments Ġ= Ġargs ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġf ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ