package Ġcom . mike pen z . material drawer . model Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . annotation . Dim en Res Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mike pen z . icon ics . type face . I Icon Ċ import Ġcom . mike pen z . material drawer . R Ċ import Ġcom . mike pen z . material drawer . holder . Dim en Holder Ċ import Ġcom . mike pen z . material drawer . holder . Image Holder Ċ import Ġcom . mike pen z . material drawer . holder . String Holder Ċ import Ġcom . mike pen z . material drawer . model . interfaces . I Profile Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġmi ke pen z Ġon Ġ 0 3 . 0 2 . 1 5 . Ċ Ġ*/ Ċ open Ġclass ĠMini Profile Drawer Item Ġ: ĠAbstract Drawer Item < Mini Profile Drawer Item , ĠMini Profile Drawer Item . ViewHolder >, ĠI Profile < Mini Profile Drawer Item > Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġicon : ĠImage Holder ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġname : ĠString Holder ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġemail : ĠString Holder ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġcustom Height : ĠDim en Holder ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġval Ġtype : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . id . material _ drawer _ item _ mini _ profile ĊĊĠĠĠ Ġoverride Ġval Ġlayout Res : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Layout Res ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . material _ drawer _ item _ mini _ profile ĊĊĠĠĠ Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Selectable ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( profile : ĠProfile Drawer Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= Ġprofile . icon ĊĠĠĠĠĠĠĠ Ġthis . isEnabled Ġ= Ġprofile . isEnabled ĊĠĠĠĠĠĠĠ Ġwith Selectable ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Name ( name : ĠCharSequence ?): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ?. let Ġ{ ĠString Holder ( name ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Email ( email : ĠString ?): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Icon ( icon : ĠDrawable ?): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= Ġicon ?. let Ġ{ ĠImage Holder ( icon ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Icon (@ Drawable Res Ġicon Res : ĠInt ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= ĠImage Holder ( icon Res ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Icon ( icon Bitmap : ĠBitmap ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= ĠImage Holder ( icon Bitmap ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Icon ( url : ĠString ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= ĠImage Holder ( url ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Icon ( uri : ĠUri ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= ĠImage Holder ( uri ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Icon ( icon : ĠI Icon ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= ĠImage Holder ( icon ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Custom Height Res (@ Dim en Res Ġcustom Height Res : ĠInt ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . custom Height Ġ= ĠDim en Holder . from Resource ( custom Height Res ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Custom Height Dp ( custom Height Dp : ĠInt ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . custom Height Ġ= ĠDim en Holder . from Dp ( custom Height Dp ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Custom Height Px ( custom Height Px : ĠInt ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . custom Height Ġ= ĠDim en Holder . from Pixel ( custom Height Px ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Custom Height ( custom Height : ĠDim en Holder ): ĠMini Profile Drawer Item Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . custom Height Ġ= Ġcustom Height ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( holder : ĠViewHolder , Ġpayload s : ĠMutable List < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . bind View ( holder , Ġpayload s ) ĊĊĠĠĠĠĠĠĠ Ġcustom Height ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlp Ġ= Ġholder . item View . layout Params Ġas ĠRecyclerView . LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlp . height Ġ= Ġit . as Pixel ( holder . item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . layout Params Ġ= Ġlp ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// set Ġthe Ġidentifier Ġfrom Ġthe Ġdrawer Item Ġhere . ĠIt Ġcan Ġbe Ġused Ġto Ġrun Ġtests ĊĠĠĠĠĠĠĠ Ġholder . item View . id Ġ= ĠhashCode () ĊĊĠĠĠĠĠĠĠ Ġ// set Ġthe Ġitem Ġenabled Ġif Ġit Ġis ĊĠĠĠĠĠĠĠ Ġholder . item View . isEnabled Ġ= Ġis Enabled ĊĊĠĠĠĠĠĠĠ Ġ// set Ġthe Ġicon ĊĠĠĠĠĠĠĠ ĠImage Holder . apply To Or Set In visible ( icon , Ġholder . icon ) ĊĊĠĠĠĠĠĠĠ Ġ// call Ġthe Ġon Post BindView Ġmethod Ġto Ġtrigger Ġpost Ġbind Ġview Ġactions Ġ( like Ġthe Ġlistener Ġto Ġmodify Ġthe Ġitem Ġif Ġrequired ) ĊĠĠĠĠĠĠĠ Ġon Post BindView ( this , Ġholder . item View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewHolder ( v : ĠView ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( v ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġicon : ĠImageView Ġ= Ġview . findViewById < ImageView >( R . id . material _ drawer _ icon ) ĊĠĠĠ Ġ} Ċ } Ċ