package Ġio . github . well ing ton cost a . custom views . presentation . users . detail Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . google . android . material . tabs . Tab Layout Mediator Ċ import Ġcom . zh u inden . simple stack . Back stack Ċ import Ġio . github . well ing ton cost a . custom views . R Ċ import Ġio . github . well ing ton cost a . custom views . databinding . Screen UserDetails Binding Ċ import Ġio . github . well ing ton cost a . custom views . presentation . extension . back stack Ċ Ċ class ĠUser Detail Screen Ġ: ĠCoord inator Layout Ġ{ ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠScreen UserDetails Binding ĊĊĠĠĠ Ġprivate Ġval Ġscreen Key Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠBack stack . getKey < User Detail Screen Key >( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġuser Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen Key . user ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠScreen UserDetails Binding . bind ( this ) ĊĊĠĠĠĠĠĠĠ Ġsetup Toolbar () ĊĊĠĠĠĠĠĠĠ Ġsetup Tabs () ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . title Ġ= Ġuser . userName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding . toolbar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Icon Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . ic _ arrow _ back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġback stack . go Back () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Tabs () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . view Pager . adapter Ġ= ĠUser Detail Adapter ( user ) ĊĊĠĠĠĠĠĠĠ ĠTab Layout Mediator ( binding . tabs , Ġbinding . view Pager ) Ġ{ Ġtab , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab . text Ġ= Ġget Tab Title ( position ) ĊĠĠĠĠĠĠĠ Ġ}. attach () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Tab Title ( position : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ PROFILE Ġ-> Ġ" Profile " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ RE POSIT ORIES Ġ-> Ġ" Repos " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ FOLLOW ERS Ġ-> Ġ" Follow ers " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ FOLLOW ING Ġ-> Ġ" Following " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIndex OutOfBoundsException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ PROFILE Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ RE POSIT ORIES Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ FOLLOW ERS Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ FOLLOW ING Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ Ċ } Ċ