/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 9 ĠArc us ĠProject . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġar cus . app . account . settings . places Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Int Def Ċ import Ġandroidx . core . view . is G one Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġar cus . app . R Ċ import Ġar cus . app . account . settings . Settings People Details List Ċ import Ġar cus . app . account . settings . Settings Place Overview Fragment Ċ import Ġar cus . app . account . settings . adapter . People And Places RV Adapter Ċ import Ġar cus . app . account . settings . adapter . People And Places RV Adapter . On Item Clicked Ċ import Ġar cus . app . account . settings . pin . Settings Update Pin Ċ import Ġar cus . app . common . back stack . Back stack Manager Ċ import Ġar cus . app . common . controller . Places And People Controller Ċ import Ġar cus . app . common . error . Error Manager Ċ import Ġar cus . app . common . fragments . No ViewModel Fragment Ċ import Ġar cus . app . common . image . Image Manager Ċ import Ġar cus . app . common . image . pic asso . transformation . Crop Circle Transformation Ċ import Ġar cus . app . common . models . ListItem Model Ċ import Ġar cus . app . common . models . Model Type ListItem Ċ import Ġar cus . cor nea . Session Controller Ċ import Ġar cus . cor nea . model . Person Model Proxy Ċ import Ġar cus . cor nea . model . Place And Role Model Ċ import Ġar cus . cor nea . model . Places With Roles Ċ import Ġar cus . cor nea . provider . Available Places Provider Ċ import Ġar cus . cor nea . utils . Listeners Ċ import Ġcom . google . common . collect . Iter ators Ċ import Ġcom . iris . capability . util . Addresses Ċ import Ġcom . iris . client . model . Person Model Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . Locale Ċ Ċ // ĠTODO : ĠThis Ġclass Ġwas Ġjust Ġconverted Ġto ĠKotlin Ġand Ġstill Ġneeds Ġsignificant Ġwork Ġto Ġupdate Ġit . Ċ class ĠSelect Place Fragment Ġ: ĠNo ViewModel Fragment (), ĠPl aces And People Controller . Callback Ġ{ ĊĠĠĠ Ġvar Ġnext Frag Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtop LL : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpin Place Container : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġperson Place Listing : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġplaces Container : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġplaces With Roles : ĠPl aces With Roles ĊĠĠĠ Ġprivate Ġvar Ġtop TextString : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtop Text : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpersons Map : ĠMap < Place And Role Model , ĠList < Person Model Proxy >> Ġ= Ġempty Map () ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġvar Ġperson Model : ĠPerson Model ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Retention ( Annotation Retention . SOURCE ) ĊĠĠĠ Ġ@ Int Def ( ĊĠĠĠĠĠĠĠ ĠPIN _ CODE _ SCREEN , ĊĠĠĠĠĠĠĠ ĠPL ACES _ SCREEN , ĊĠĠĠĠĠĠĠ ĠPE OP LE _ SCREEN ĊĠĠĠ Ġ) ĊĠĠĠ Ġannotation Ġclass ĠNext Screen Type ĊĊĠĠĠ Ġoverride Ġval Ġtitle : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( next Frag Ġ== ĠPE OP LE _ SCREEN ) ĠgetString ( R . string . people _ people ) Ġelse ĠgetString ( R . string . choose _ place ) ĊĠĠĠ Ġoverride Ġval Ġlayout Id : ĠInt Ġ= ĠR . layout . fragment _ text _ list _ view ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġarguments ĊĠĠĠĠĠĠĠ Ġif Ġ( args Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Frag Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPIN _ CODE _ SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnext Frag Ġ= Ġargs . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNEXT _ FRAG , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPIN _ CODE _ SCREEN ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtop TextString Ġ= Ġargs . getString ( TOP _ TEXT , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġval Ġplaces And Roles Ġ= Ġargs . get Parcelable ( PLACE _ ROLE ) Ġas ĠPl aces With Roles ? ĊĠĠĠĠĠĠĠ Ġif Ġ( places And Roles Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaces With Roles Ġ= Ġplaces And Roles ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġtop Text Ġ= Ġview . findViewById ( R . id . text _ view 1 ) ĊĠĠĠĠĠĠĠ Ġtop LL Ġ= Ġview . findViewById ( R . id . text _ view _ linear _ layout ) ĊĠĠĠĠĠĠĠ Ġplaces Container Ġ= Ġview . findViewById ( R . id . places _ container ) ĊĠĠĠĠĠĠĠ Ġperson Place Listing Ġ= Ġview . findViewById ( R . id . people _ and _ places _ rv ) ĊĠĠĠĠĠĠĠ Ġpin Place Container Ġ= Ġview . findViewById ( R . id . pin _ or _ place _ listing _ container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġperson Model Ġ= ĠSession Controller . instance (). person Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( top TextString )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop LL . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Text ?. text Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop LL . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Text ?. text Ġ= Ġtop TextString ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetTitle () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(:: places With Roles . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup View () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠShould n 't Ġthis Ġalways Ġbe Ġpassed Ġin Ġsince Ġthe Ġprevious Ġfragment Ġhad Ġthis Ġalready ? ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Container . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAvailable Places Provider . instance (). load Places With Roles () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure ( Listeners . run On Ui Thread Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Container . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Manager .` in `( activity ). show Generic Because Of ( throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success ( Listeners . run On Ui Thread Ġ{ Ġroles Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Container . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaces With Roles Ġ= Ġroles ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġprogress Container . is G one Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup View () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( PE OP LE _ SCREEN Ġ== Ġnext Frag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Container . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPl aces And People Controller ( places With Roles , Ġthis ). get People At Each Place () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Place Listing . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpin Place Container . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġplaces With Roles . owned Places . size Ġ+ Ġplaces With Roles . un owned Places . size Ġ+ Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Items : ĠMutable List < ListItem Model > Ġ= ĠArrayList ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( places With Roles . own s Places ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠListItem Model ( getString ( R . string . account _ owner )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . setIs Heading Row ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Items . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( place Ġin Ġplaces With Roles . sorted Owned Places ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Items . add ( get ListItem ( place )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( places With Roles . has Guest Access ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠListItem Model ( getString ( R . string . people _ guest )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . setIs Heading Row ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Items . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( place Ġin Ġplaces With Roles . sorted Un owned Places ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Items . add ( get ListItem ( place )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodels Parsed ( place Items ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmodels Parsed ( place Items : ĠList < ListItem Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġplaces Container . removeAll Views () ĊĠĠĠĠĠĠĠ Ġval Ġit Ġ= ĠIter ators . peek ing Iterator ( place Items . iterator ()) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( it . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġit . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠconvertView Ġ= Ġif Ġ( next . is Heading Row ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠconvertView Ġ= ĠLayoutInflater ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . section _ heading _ with _ count , Ġplaces Container , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure View For Heading ( next , ĠconvertView ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠconvertView Ġ= ĠLayoutInflater ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . icon _ text _ and _ abstract _ item , Ġplaces Container , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure View For Non Header ( next , ĠconvertView , Ġit . hasNext () Ġ&& Ġit . peek (). is Heading Row , Ġ! it . hasNext ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( next Frag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPL ACES _ SCREEN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Place Overview Fragment . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext . data Ġas ĠPlace And Role Model , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaces With Roles . total Places ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPIN _ CODE _ SCREEN Ġ-> Ġfragment Ġ= ĠSettings Update Pin . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Update Pin . Screen Variant . SETTINGS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson Model !!. address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext . address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfragment Ġ= ĠSettings Update Pin . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Update Pin . Screen Variant . SETTINGS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson Model !!. address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext . address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBack stack Manager . getInstance (). navigate To Fragment ( fragment , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaces Container . addView ( convert View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ListItem ( ĊĠĠĠĠĠĠĠ Ġplace : ĠPlace And Role Model ĊĠĠĠ Ġ): ĠListItem Model Ġ= ĠListItem Model ( place . name , Ġplace . street Address 1 ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġaddress Ġ= Ġplace . address ĊĠĠĠĠĠĠĠ Ġdata Ġ= Ġplace ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure View For Non Header ( ĊĠĠĠĠĠĠĠ Ġitem : ĠListItem Model , ĊĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠ Ġnext Is Header : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġis Last Row : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġview . findViewById < TextView >( R . id . title ) ĊĠĠĠĠĠĠĠ Ġval Ġsub Text Ġ= Ġview . findViewById < TextView >( R . id . list _ item _ description ) ĊĠĠĠĠĠĠĠ Ġval Ġsub Text 2 Ġ= Ġview . findViewById < TextView >( R . id . list _ item _ sub _ description 1 ) ĊĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= Ġview . findViewById < View >( R . id . image _ icon ) Ġas ĠImageView ĊĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġitem . text . toString (). toUpperCase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġitem . data Ġas ĠPlace And Role Model ĊĠĠĠĠĠĠĠ Ġsub Text . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"% s Ġ% s ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . street Address 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . street Address 2 ?. trim (). or Empty () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsub Text 2 . text Ġ= Ġmodel . city State Zip ĊĠĠĠĠĠĠĠ Ġsub Text 2 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ ĠImage Manager . with ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Place Image ( Addresses . getId ( item . address )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Transform ( Crop Circle Transformation ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġif Ġ( next Is Header Ġ|| Ġis Last Row ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . bottom _ divider ). is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . bottom _ divider ). isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure View For Heading ( heading Data : ĠListItem Model , Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheading Left Ġ= Ġview . findViewById < TextView >( R . id . section Name ) ĊĠĠĠĠĠĠĠ Ġheading Left . text Ġ= Ġheading Data . text ĊĠĠĠĠĠĠĠ Ġview . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Container . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠError Manager .` in `( activity ). show Generic Because Of ( throwable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( ĊĠĠĠĠĠĠĠ Ġpersons : ĠList < Model Type ListItem >, ĊĠĠĠĠĠĠĠ Ġpersons Mapping : ĠMap < Place And Role Model , ĠList < Person Model Proxy >> ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Container . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpersons Map Ġ= Ġpersons Mapping ĊĠĠĠĠĠĠĠ Ġperson Place Listing . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpin Place Container . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġperson Place Listing . layout Manager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠPeople And Places RV Adapter ( require Activity (), Ġpersons , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġadapter . set Person Clicked Callback ( On Item Clicked Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . additional Data Ġ! is ĠPerson Model Proxy Ġ|| Ġpersons Map . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Item Clicked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodels Ġ= Ġpersons Map [ item . associated Place Model ] Ġ?: Ġreturn @ On Item Clicked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperson Ġ= Ġitem . additional Data Ġas ĠPerson Model Proxy ? ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBack stack Manager . getInstance (). navigate To Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings People Details List . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodels , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . associated Place Model ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( person Place Listing . adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Place Listing . swap Adapter ( adapter , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Place Listing . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTOP _ TEXT Ġ= Ġ" TOP _ TEXT " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNEXT _ FRAG Ġ= Ġ" NEXT _ FRAG " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPL ACE _ ROLE Ġ= Ġ" PLACE _ ROLE " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPIN _ CODE _ SCREEN Ġ= Ġ 0 x 0 A ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPL ACES _ SCREEN Ġ= Ġ 0 x 0 B ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPE OP LE _ SCREEN Ġ= Ġ 0 x 0 C ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Next Screen Type Ġnext Fragment : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Text : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaces With Roles : ĠPl aces With Roles ? ĊĠĠĠĠĠĠĠ Ġ): ĠSelect Place Fragment Ġ= ĠSelect Place Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġwith ( Bundle ( 3 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( NEXT _ FRAG , Ġnext Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( TOP _ TEXT , Ġtop Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ( PLACE _ ROLE , Ġplaces With Roles ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ