/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠA det un ji ĠD ahun si Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . main street code . team mate . fragments . main Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġcom . main street code . team mate . R Ċ import Ġcom . main street code . team mate . adapters . User Edit Adapter Listener Ċ import Ġcom . main street code . team mate . adapters . user Edit Adapter Ċ import Ġcom . main street code . team mate . adapters . view holders . input . Input ViewHolder Ċ import Ġcom . main street code . team mate . base classes . Header ed Fragment Ċ import Ġcom . main street code . team mate . model . User Ċ import Ġcom . main street code . team mate . util . Scroll Manager Ċ import Ġcom . main street code . team mate . view model . g of ers . Go fer Ċ import Ġcom . main street code . team mate . view model . g of ers . User Go fer Ċ import Ġcom . tun jid . android x . view . util . Inset Flags Ċ Ċ /** Ċ Ġ* ĠEd its Ġa ĠTeam Ġmember Ċ Ġ*/ Ċ Ċ class ĠUser Edit Fragment Ġ: ĠHeader ed Fragment < User >( R . layout . fragment _ header ed ), ĊĠĠĠĠĠĠĠ ĠUser Edit Adapter Listener Ġ{ ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġheader ed Model : ĠUser ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgo fer : ĠUser Go fer ĊĊĠĠĠ Ġprivate Ġval Ġtoolbar Title : ĠCharSequence Ġget () Ġ= ĠgetString ( if Ġ( can Edit ()) ĠR . string . user _ edit Ġelse ĠR . string . user _ info ) ĊĊĠĠĠ Ġoverride Ġval Ġinset Flags : ĠIn set Flags Ġget () Ġ= ĠNO _ TOP ĊĊĠĠĠ Ġoverride Ġval Ġshows Fab : ĠBoolean Ġget () Ġ= Ġcan Edit () ĊĊĠĠĠ Ġoverride Ġval Ġstable Tag : ĠString Ġget () Ġ= ĠGo fer . tag ( super . stable Tag , Ġarguments !!. get Parcelable ( ARG _ USER ) !! ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġheader ed Model Ġ= Ġarguments !!. get Parcelable ( ARG _ USER ) !! ĊĠĠĠĠĠĠĠ Ġgo fer Ġ= Ġuser ViewModel . go fer ( header ed Model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdefault Ui ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar Title Ġ= Ġtoolbar Title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab Icon Ġ= ĠR . drawable . ic _ check _ white _ 2 4 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab Text Ġ= ĠR . string . user _ update , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab Shows Ġ= Ġshows Fab ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġscroll Manager Ġ= ĠScroll Manager . with < Input ViewHolder >( view . findViewById ( R . id . model _ list )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Refresh Layout ( view . findViewById ( R . id . refresh _ layout )) Ġ{ Ġthis . refresh () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Adapter ( user Edit Adapter ( go fer :: items , Ġthis )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Scroll Listener Ġ{ Ġ_, Ġdy Ġ-> Ġupdate Fab For Scroll State ( dy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with In consistency Handler ( this :: on In consistency Detected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Re cyc led View Pool ( input Re cyc led View Pool ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Linear LayoutManager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (). apply Ġ{ Ġre cyclerView ?. request Focus () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgo fer (): ĠGo fer < User > Ġ= Ġgo fer ĊĊĠĠĠ Ġoverride Ġfun Ġcan Edit (): ĠBoolean Ġ= Ġuser ViewModel . currentUser Ġ== Ġheader ed Model ĊĊĠĠĠ Ġoverride Ġfun Ġon Model Updated ( result : ĠDiff Util . Diff Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Ui ( toolbar Title Ġ= Ġtoolbar Title ) ĊĠĠĠĠĠĠĠ ĠviewHolder ?. bind ( header ed Model ) ĊĠĠĠĠĠĠĠ Ġscroll Manager . on Diff ( result ) ĊĠĠĠĠĠĠĠ Ġtransient Bar Driver . toggle Progress ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fab Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransient Bar Driver . toggle Progress ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( go fer . save (). subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransient Bar Driver . show Sn ackBar ( getString ( R . string . updated _ user , Ġheader ed Model . firstName )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransient Bar Driver . toggle Progress ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder ?. bind ( header ed Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Manager . on Diff ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġdefault ErrorHandler :: invoke )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ USER Ġ= Ġ" user " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( user : ĠUser ): ĠUser Edit Fragment Ġ= ĠUser Edit Fragment (). apply Ġ{ Ġarguments Ġ= Ġbundle Of ( ARG _ USER Ġto Ġuser ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ