package Ġxyz . apr ild own . theme . views Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . appcompat . view . menu . Action MenuItem View Ċ import Ġxyz . apr ild own . theme . Theme Ċ import Ġxyz . apr ild own . theme . utils . Color Utils Ċ import Ġxyz . apr ild own . theme . utils . tint Ċ Ċ @ Suppress Lint (" Restricted Api ") Ċ internal Ġclass ĠTheme Action MenuItem View ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull Ċ ) Ġ: ĠAction MenuItem View ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUN FOC USED _ ALPHA Ġ= Ġ 0 . 5 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġicon : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinvalidate Colors ( Theme . get (). toolbar Icon Color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinvalidate Colors ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsl Ġ= ĠColor State List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf (- android . R . attr . state _ selected ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( android . R . attr . state _ selected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Utils . adjust Alpha ( color , ĠUN FOC USED _ ALPHA ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġicon ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Icon ( it , Ġsl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset TextColor ( color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Icon ( icon : ĠDrawable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setIcon ( icon ) ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġto Ġretrieve Ġthe Ġcolor Ġagain Ġhere . ĊĠĠĠĠĠĠĠ Ġ// ĠFor Ġsome Ġreason , Ġwithout Ġthis , Ġa Ġtransparent Ġcolor Ġis Ġused Ġand Ġthe Ġicon Ġdis appe ars ĊĠĠĠĠĠĠĠ Ġ// Ġwhen Ġthe Ġoverflow Ġmenu Ġopens . ĊĠĠĠĠĠĠĠ Ġinvalidate Colors ( Theme . get (). toolbar Icon Color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġfun Ġset Icon ( ĊĠĠĠĠĠĠĠ Ġicon : ĠDrawable , ĊĠĠĠĠĠĠĠ Ġcolors : ĠColor State List ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Ġ= Ġicon ĊĠĠĠĠĠĠĠ Ġsuper . setIcon ( icon . tint ( colors )) ĊĠĠĠ Ġ} Ċ } Ċ