package Ġcom . iv ette val dez . sat urn us . screens . invoices . iss uing people Ċ Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . os . Handler Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . iv ette val dez . sat urn us . R Ċ import Ġcom . iv ette val dez . sat urn us . people . Person Ċ import Ġcom . iv ette val dez . sat urn us . screens . common . navigation . IN av Drawer Helper Ċ import Ġcom . iv ette val dez . sat urn us . screens . common . toolbar . I Toolbar View Mvc Ċ import Ġcom . iv ette val dez . sat urn us . screens . common . view sm vc . Base Observable View Mvc Ċ import Ġcom . iv ette val dez . sat urn us . screens . common . view sm vc . I Observable View Mvc Ċ import Ġcom . iv ette val dez . sat urn us . screens . common . view sm vc . View Mvc Factory Ċ import Ġcom . iv ette val dez . sat urn us . screens . people . list . IP e ople ListItem View Mvc Ċ import Ġcom . iv ette val dez . sat urn us . screens . people . list . People List Recycler Adapter Ċ Ċ interface ĠI Invoice Iss uing People View Mvc Ġ: ĠI Observable View Mvc < I Invoice Iss uing People View Mvc . Listener > Ġ{ ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġon AddNew Person Clicked () ĊĠĠĠĠĠĠĠ Ġfun Ġon Person Clicked ( rfc : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind People ( people : ĠList < Person >) ĊĠĠĠ Ġfun Ġshow Progress Indicator () ĊĠĠĠ Ġfun Ġhide Progress Indicator () Ċ } Ċ Ċ class ĠInvoice Iss uing People View Mvc Impl ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġparent : ĠViewGroup ?, ĊĠĠĠ Ġprivate Ġval Ġui Handler : ĠHandler , ĊĠĠĠ Ġprivate Ġval Ġnav Drawer Helper : ĠIN av Drawer Helper , ĊĠĠĠ Ġprivate Ġval Ġview Mvc Factory : ĠView Mvc Factory Ċ ) Ġ: ĠBase Observable View Mvc < I Invoice Iss uing People View Mvc . Listener >( ĊĠĠĠ Ġinflater , ĊĠĠĠ Ġparent , ĊĠĠĠ ĠR . layout . layout _ invoice _ iss uing _ people Ċ ), ĠI Invoice Iss uing People View Mvc , ĊĠĠĠ ĠIP e ople ListItem View Mvc . Person ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtoolbar : ĠToolbar Ġ= ĠfindViewById ( R . id . invoice _ iss uing _ people _ toolbar ) ĊĠĠĠ Ġprivate Ġval Ġtoolbar View Mvc : ĠI Toolbar View Mvc Ġ= Ġview Mvc Factory . new Toolbar View Mvc ( toolbar ) ĊĊĠĠĠ Ġprivate Ġval Ġlayout Progress : ĠFrame Layout Ġ= ĠfindViewById ( R . id . people _ list _ progress ) ĊĠĠĠ Ġprivate Ġval Ġre cycler : ĠRecyclerView Ġ= ĠfindViewById ( R . id . people _ list _ recycler ) ĊĠĠĠ Ġprivate Ġval Ġtext AddNew : ĠTextView Ġ= ĠfindViewById ( R . id . people _ list _ text _ add _ new ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpeople List Recycler Adapter : ĠPeople List Recycler Adapter ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Toolbar () ĊĠĠĠĠĠĠĠ Ġinit Recycler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind People ( people : ĠList < Person >) Ġ{ ĊĠĠĠĠĠĠĠ Ġui Handler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( people . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext AddNew . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpeople List Recycler Adapter . update Data ( people ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext AddNew . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext AddNew . paint Flags Ġ= ĠPaint . UNDER LINE _ TEXT _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext AddNew . setTextColor ( Context Compat . getColor ( context , ĠR . color . dod ger _ blue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext AddNew . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( listener Ġin Ġlisteners ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on AddNew Person Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Progress Indicator () Ġ{ ĊĠĠĠĠĠĠĠ Ġui Handler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Progress . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Progress Indicator () Ġ{ ĊĠĠĠĠĠĠĠ Ġui Handler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Progress . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Person Click ( rfc : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( listener Ġin Ġlisteners ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Person Clicked ( rfc ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar View Mvc . setTitle ( context . getString ( R . string . menu _ invoices )) ĊĊĠĠĠĠĠĠĠ Ġtoolbar View Mvc . enable Menu And Listen ( object Ġ: ĠI Toolbar View Mvc . Menu ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Menu Clicked () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Drawer Helper . open Drawer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtoolbar . addView ( toolbar View Mvc . getRoot View ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Recycler () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager . is Smooth Scrollbar Enabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġpeople List Recycler Adapter Ġ= ĠPeople List Recycler Adapter ( view Mvc Factory ) ĊĠĠĠĠĠĠĠ Ġpeople List Recycler Adapter . register Person ClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġwith ( recycler ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġpeople List Recycler Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }