package Ġcom . q ase . android . apps keleton . activity Ċ Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . annotation . Menu Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġcom . google . android . material . navigation . Navigation View Ċ import Ġcom . q ase . android . apps keleton . R Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ /** Ċ Ġ* ĠClass Ġfor Ġcreating Ġactivity Ġview Ġwith Ġtoolbar Ġand Ġnavigation Ġdrawer Ċ Ġ* ĠIt Ġhas Ġmultiple Ġconstructors Ġwhich Ġallow Ġto Ġcustomize Ġthe Ġdrawer Ċ Ġ*/ Ċ open Ġclass ĠDefault Drawer Activity View Helper ( listener : ĠNavigation View . On Navigation ItemSelected Listener ) Ġ: ĠDraw er Activity View Helper ( listener ) Ġ{ ĊĊĠĠĠ Ġconstructor ( listener : ĠNavigation View . On Navigation ItemSelected Listener , Ġ@ Menu Res Ġmenu Res : ĠInt ) Ġ: Ġthis ( listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . menu Res Ġ= Ġmenu Res ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( listener : ĠNavigation View . On Navigation ItemSelected Listener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Menu Res Ġmenu Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġheader Icon Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġheader Text Primary Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġheader Text Secondary Res : ĠInt ? Ġ= Ġnull ) Ġ: Ġthis ( listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . menu Res Ġ= Ġmenu Res ĊĠĠĠĠĠĠĠ Ġthis . header Icon Res Ġ= Ġheader Icon Res ĊĠĠĠĠĠĠĠ Ġthis . header Text Primary Res Ġ= Ġheader Text Primary Res ĊĠĠĠĠĠĠĠ Ġthis . header Text Secondary Res Ġ= Ġheader Text Secondary Res ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( listener : ĠNavigation View . On Navigation ItemSelected Listener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Menu Res Ġmenu Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġheader Icon Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary : ĠString ? Ġ= Ġnull ) Ġ: Ġthis ( listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . menu Res Ġ= Ġmenu Res ĊĠĠĠĠĠĠĠ Ġthis . header Icon Res Ġ= Ġheader Icon Res ĊĠĠĠĠĠĠĠ Ġthis . header Text Primary Ġ= Ġheader Text Primary ĊĠĠĠĠĠĠĠ Ġthis . header Text Secondary Ġ= Ġheader Text Secondary ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġoverride Ġval Ġdrawer Header Layout Res : ĠInt ? Ġ= ĠR . layout . main _ nav _ header ĊĊĠĠĠ Ġprivate Ġvar Ġheader ImageView : ĠImageView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġheader Text Primary View : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġheader Text Secondary View : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( activity : ĠBase MainActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( activity ) ĊĠĠĠĠĠĠĠ Ġheader ImageView Ġ= Ġactivity . nav _ view . getHeader View ( 0 ). findViewById ( R . id . drawer ImageView ) ĊĠĠĠĠĠĠĠ Ġheader Text Primary View Ġ= Ġactivity . nav _ view . getHeader View ( 0 ). findViewById ( R . id . drawer Text Primary ) ĊĠĠĠĠĠĠĠ Ġheader Text Secondary View Ġ= Ġactivity . nav _ view . getHeader View ( 0 ). findViewById ( R . id . drawer Text Secondary ) ĊĊĠĠĠĠĠĠĠ Ġheader Icon Res ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader ImageView ?. setImage Resource ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġheader Text Primary ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary View ?. setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġheader Text Primary Res ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary View ?. setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġheader Text Secondary ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary View ?. setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġheader Text Secondary Res ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary View ?. setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġheader Icon Res : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġheader Text Primary : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary Res Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary View ?. setText ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġheader Text Primary Res : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Primary View ?. setText ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġheader Text Secondary : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary Res Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary View ?. setText ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġheader Text Secondary Res : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Text Secondary View ?. setText ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }