package Ġhr . atos cv c . sales force mobile Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . AppBar Layout Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . am uly ak h are . text drawable . Text Drawable Ċ import Ġcom . am uly ak h are . text drawable . util . Color Generator Ċ import Ġkotlinx . android . synt hetic . main . activity _ company _ details .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ contacts .* Ċ Ċ class ĠCompany Details Activity Ġ: ĠAppCompatActivity (), ĠContact Adapter . RecyclerView Contacts OnClickListener Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġrequest Code Edit Company Ġ= Ġ 6 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġgenerator Ġ= ĠColor Generator . MAT ERIAL ĊĊĠĠĠ Ġprivate Ġvar Ġrefresh Contacts Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcompany : ĠCompany ĊĠĠĠ Ġprivate Ġvar Ġis Changed : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġview Contacts From Company Fragment Ġ= ĠContact s Fragment () ĊĠĠĠ Ġprivate Ġval Ġview Company Details Fragment Ġ= ĠView Company Details Fragment () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġedit Item : ĠMenuItem ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ company _ details ) ĊĠĠĠĠĠĠĠ Ġreplace Fragment ( view Company Details Fragment ) ĊĠĠĠĠĠĠĠ Ġcompany Ġ= Ġintent . get Serializable Extra ( getString ( R . string . EXTRA _ COMP ANY _ ENT I RE _ OBJECT )) Ġas ĠCompany ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( tool Bar Company Details ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Show Home Enabled ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġre cyclerView Contacts OnClick ( imageView : ĠImageView , Ġcontact : ĠContact , Ġhide Edit Buttons : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontact Details Intent Ġ= ĠIntent ( this , ĠContact Details Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ CONTACT _ ENT I RE _ OBJECT ), Ġcontact ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ CONTACT _ HIDE _ EDIT _ BUTTON S ), Ġhide Edit Buttons ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( contact Details Intent , ĠContact s Fragment . request Item Refresh ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( refresh Contacts ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Contacts From Company Fragment . re cyclerView Contacts ?. adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġletters Ġ= Ġcompany . name [ 0 ]. toString (). toUpperCase () ĊĠĠĠĠĠĠĠ Ġval Ġdrawable : ĠText Drawable Ġ= ĠText Drawable . builder (). build Round ( letters , Ġgenerator . getColor ( company . document ID )) ĊĠĠĠĠĠĠĠ Ġexpanded Avatar Company Details . setImage Drawable ( drawable ) ĊĊĠĠĠĠĠĠĠ Ġcol lap sing Toolbar Company Details . set BackgroundColor ( generator . getColor ( company . document ID )) ĊĊĠĠĠĠĠĠĠ Ġapp Bar Company Details . add On Offset Changed Listener ( AppBar Layout . On Offset Changed Listener Ġ{ Ġapp Bar Layout , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Alpha Ġ= Ġ( app Bar Layout . y Ġ/ Ġapp Bar Company Details . total Scroll Range ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Avatar Company Details . alpha Ġ= Ġ 1 Ġ- Ġ( offset Alpha Ġ* Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġapp Bar Company Details . set Expanded ( true , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġapp Bar Company Details . is Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcol lap sing Toolbar Company Details . title Ġ= Ġcompany . name ĊĊĠĠĠĠĠĠĠ Ġfab Company Details Call Secondary . hide () ĊĊĠĠĠĠĠĠĠ Ġfab Company Details Call . add On Hide Animation Listener ( object Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( p 0 : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab Company Details Call Secondary . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġfab Company Details Call . add On Show Animation Listener ( object Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( p 0 : ĠAn imator ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( p 0 : ĠAn imator ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab Company Details Call Secondary . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Edit Company Details () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Edit Ġ= ĠIntent ( this , ĠCompany Editor Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ IS _ EDITOR _ FOR _ NEW _ ITEM ), Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ COMP ANY _ ENT I RE _ OBJECT ), Ġcompany ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent Edit , ĠCompany Details Activity . request Code Edit Company ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Share Company () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshare Intent Ġ= ĠIntent ( Intent . ACTION _ SEND ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġcompany . to Formatted String ( resources )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent . create Chooser ( share Intent , ĠgetString ( R . string . share Chooser ))) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMost Ġof Ġthe Ġtimes , Ġif Ġnot Ġalways , Ġapp Ġcho oser Ġwill Ġdisplay Ġa Ġsimilar Ġmessage . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Extension . makeText ( this , ĠR . string . no Suit able App Found ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Add Contact Company Details () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠContact Editor Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ IS _ EDITOR _ FOR _ NEW _ ITEM ), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ COMP ANY _ ENT I RE _ OBJECT ), Ġcompany ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠContact Edit Fragment . chosen Company Ġ= Ġcompany ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġprivate Ġfun Ġon View Contacts Company Details () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! view Contacts From Company Fragment . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab Company Details Call . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab Company Details Call Secondary . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString (" company ID ", Ġcompany . document ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Contacts From Company Fragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Fragment ( view Contacts From Company Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Changed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Back Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( getString ( R . string . EXTRA _ COMP ANY _ ENT I RE _ OBJECT ), Ġcompany ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( AppCompatActivity . RESULT _ OK , Ġintent Back ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfab Company Details Call . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġfab Company Details Call Secondary . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠCompany Details Activity . request Code Edit Company ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠAppCompatActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompany Ġ= Ġdata ?. get Serializable Extra ( getString ( R . string . EXTRA _ COMP ANY _ ENT I RE _ OBJECT )) Ġas ĠCompany ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( getString ( R . string . EXTRA _ COMP ANY _ ENT I RE _ OBJECT ), Ġcompany ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Changed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Company Details Fragment . refresh Details () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( request Code Ġ== ĠContact s Fragment . request Code Refresh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Contacts Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . company _ details _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġedit Item Ġ= Ġmenu ?. find Item ( R . id . action _ company _ edit ) !! ĊĠĠĠĠĠĠĠ Ġval Ġshould Hide Buttons : ĠBoolean Ġ= Ġintent . getBoolean Extra ( getString ( R . string . EXTRA _ CONTACT _ HIDE _ EDIT _ BUTTON S ), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġedit Item . isVisible Ġ= Ġ! should Hide Buttons ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item ?. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ company _ edit Ġ-> Ġon Edit Company Details () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ company _ share Ġ-> Ġon Share Company () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ view _ contacts Ġ-> Ġon View Contacts Company Details () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ add _ contact Ġ-> Ġon Add Contact Company Details () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Company Call (@ Suppress (" UNUSED _ PARAMETER ") Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġphone : ĠString ? Ġ= Ġcompany . phone ?. trim () ĊĠĠĠĠĠĠĠ Ġif Ġ( phone . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Extension . makeText ( this , ĠR . string . wrong PhoneNumber ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdial Intent Ġ= ĠIntent ( Intent . ACTION _ DI AL , ĠUri . parse (" tel :$ phone ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent . create Chooser ( dial Intent , ĠgetString ( R . string . dial Phone Chooser ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMost Ġof Ġthe Ġtimes , Ġif Ġnot Ġalways , Ġapp Ġcho oser Ġwill Ġdisplay Ġa Ġsimilar Ġmessage . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Extension . makeText ( this , ĠR . string . no Suit able App Found ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreplace Fragment ( fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment . java Class Ġ== Ġview Company Details Fragment . java Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . replace ( R . id . company Details Container , Ġfragment ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . replace ( R . id . company Details Container , Ġfragment ). addTo Back Stack (" tag ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfragment Transaction . commit () ĊĠĠĠ Ġ} Ċ } Ċ