package Ġcom . mike pen z . material drawer . app Ċ Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . ActionBar Drawer Toggle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġcom . mike pen z . icon ics . type face . library . fontawesome . FontAwesome Ċ import Ġcom . mike pen z . material drawer . icon ics . with Icon Ċ import Ġcom . mike pen z . material drawer . interfaces . IC ross f ader Ċ import Ġcom . mike pen z . material drawer . model . Primary Drawer Item Ċ import Ġcom . mike pen z . material drawer . model . Profile Drawer Item Ċ import Ġcom . mike pen z . material drawer . model . Section Drawer Item Ċ import Ġcom . mike pen z . material drawer . model . interfaces .* Ċ import Ġcom . mike pen z . material drawer . util . get Opt imal Drawer Width Ċ import Ġcom . mike pen z . material drawer . widget . Account Header View Ċ import Ġkotlinx . android . synt hetic . main . activity _ sample _ cross f ader .* Ċ Ċ class ĠCross fade Drawer Layout Act vit iy Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġheader View : ĠAccount Header View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaction Bar Drawer Toggle : ĠAction Bar Drawer Toggle ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ sample _ cross f ader ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHandle ĠToolbar ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġ// set Ġthe Ġback Ġarrow Ġin Ġthe Ġtool bars ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Home Button Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. setTitle ( R . string . drawer _ item _ cross fade _ drawer _ layout _ drawer ) ĊĊĠĠĠĠĠĠĠ Ġaction Bar Drawer Toggle Ġ= ĠAction Bar Drawer Toggle ( this , Ġroot , Ġtoolbar , Ġcom . mike pen z . material drawer . R . string . material _ drawer _ open , Ġcom . mike pen z . material drawer . R . string . material _ drawer _ close ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġfew Ġsample Ġprofile ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠProfile Drawer Item (). with Name (" Mi ke ĠP enz "). with Email (" mike pen z @ gmail . com "). with Icon ( R . drawable . profile ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile 2 Ġ= ĠProfile Drawer Item (). with Name (" Max ĠM uster "). with Email (" max . m uster mann @ gmail . com "). with Icon ( R . drawable . profile 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile 3 Ġ= ĠProfile Drawer Item (). with Name (" F elix ĠHouse "). with Email (" fel ix . house @ gmail . com "). with Icon ( R . drawable . profile 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile 4 Ġ= ĠProfile Drawer Item (). with Name (" Mr . ĠX "). with Email (" m ister . x . super @ gmail . com "). with Icon ( R . drawable . profile 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile 5 Ġ= ĠProfile Drawer Item (). with Name (" B at man "). with Email (" bat man @ gmail . com "). with Icon ( R . drawable . profile 5 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe ĠAccount Header ĊĠĠĠĠĠĠĠ Ġheader View Ġ= ĠAccount Header View ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattach To Slider View ( cross Fade Large View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Profiles ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Saved Instance ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcross Fade Large View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Adapter . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ home ). with Icon ( FontAwesome . Icon . f aw _ home ). with Identifier ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ free _ play ). with Icon ( FontAwesome . Icon . f aw _ gamepad ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ custom ). with Icon ( FontAwesome . Icon . f aw _ eye ). with Identifier ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSection Drawer Item (). with Name ( R . string . drawer _ item _ section _ header ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ settings ). with Icon ( FontAwesome . Icon . f aw _ cog ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ help ). with Icon ( FontAwesome . Icon . f aw _ question ). with Enabled ( false ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ open _ source ). with Icon ( FontAwesome . Icon . f aw _ github ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Drawer Item (). with Name ( R . string . drawer _ item _ contact ). with Icon ( FontAwesome . Icon . f aw _ bull h orn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Drawer ItemClickListener Ġ= Ġ{ Ġv , Ġdrawer Item , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawer Item Ġis ĠName able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Cross fade Drawer Layout Act vit iy , Ġdrawer Item . name ?. getText ( this @ Cross fade Drawer Layout Act vit iy ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Saved Instance ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcross Fade Small View . drawer Ġ= Ġcross Fade Large View ĊĊĠĠĠĠĠĠĠ Ġ// define Ġmax Drawer Width ĊĠĠĠĠĠĠĠ Ġroot . maxWidth Px Ġ= Ġget Opt imal Drawer Width ( this ) ĊĠĠĠĠĠĠĠ Ġcross Fade Small View . background Ġ= Ġcross Fade Large View . background ĊĊĠĠĠĠĠĠĠ Ġ// define Ġthe Ġcross f ader Ġto Ġbe Ġused Ġwith Ġthe Ġmini Drawer . ĠThis Ġis Ġrequired Ġto Ġbe Ġable Ġto Ġautomatically Ġtoggle Ġopen Ġ/ Ġclose ĊĠĠĠĠĠĠĠ Ġcross Fade Small View . cross F ader Ġ= Ġobject Ġ: ĠI Cross f ader Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġis Cross fa ded : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġroot . is Cross fa ded ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcross fade () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis F aded Ġ= Ġis Cross fa ded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . cross fade ( 4 0 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// only Ġclose Ġthe Ġdrawer Ġif Ġwe Ġwere Ġalready Ġfa ded Ġand Ġwant Ġto Ġclose Ġit Ġnow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is F aded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġset Ġthe Ġselection Ġto Ġthe Ġitem Ġwith Ġthe Ġidentifier Ġ 5 ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcross Fade Large View . setSelection ( 5 , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġaction Bar Drawer Toggle . on Configuration Changed ( new Config ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġaction Bar Drawer Toggle . sync State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( action Bar Drawer Toggle . on Options ItemSelected ( item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState (_ out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġout State Ġ= Ġ_ out State ĊĠĠĠĠĠĠĠ Ġ// add Ġthe Ġvalues Ġwhich Ġneed Ġto Ġbe Ġsaved Ġfrom Ġthe Ġdrawer Ġto Ġthe Ġbundle ĊĠĠĠĠĠĠĠ Ġout State Ġ= Ġcross Fade Large View . save InstanceState ( out State ) ĊĊĠĠĠĠĠĠĠ Ġ// add Ġthe Ġvalues Ġwhich Ġneed Ġto Ġbe Ġsaved Ġfrom Ġthe Ġaccount Header Ġto Ġthe Ġbundle ĊĠĠĠĠĠĠĠ Ġout State Ġ= Ġheader View . save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// handle Ġthe Ġback Ġpress Ġ: D Ġclose Ġthe Ġdrawer Ġfirst Ġand Ġif Ġthe Ġdrawer Ġis Ġclosed Ġclose Ġthe Ġactivity ĊĠĠĠĠĠĠĠ Ġif Ġ( root . is Drawer Open ( cross Fade Slider )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . close Drawer ( cross Fade Slider ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }