/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠH az uki Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġjp . h az uki . y uz ub rowser . toolbar Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Filter Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . Port er D uff Color Filter Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . graphics . drawable . State List Drawable Ċ import Ġandroid . support . v 4 . content . res . Resources Compat Ċ import Ġandroid . util . State Set Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġjp . h az uki . y uz ub rowser . R Ċ import Ġjp . h az uki . y uz ub rowser . theme . Theme Data Ċ import Ġjp . h az uki . y uz ub rowser . utils . extensions . forEach Ċ Ċ open Ġclass ĠAbstract Toolbar ( context : ĠContext ) Ġ: ĠLinearLayout ( context ) Ġ{ ĊĊĠĠĠ Ġ// Theme Data Ġmaybe Ġnull ĊĠĠĠ Ġfun Ġon Theme Changed ( theme Data : ĠTheme Data ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠTHE ME _ IMAGE _ COLOR _ FILTER Ġ= Ġif Ġ( theme Data Ġ!= Ġnull Ġ&& Ġtheme Data . toolbar Image Color Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPort er D uff Color Filter ( theme Data . toolbar Image Color , ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( theme Data ?. toolbar Button Background Press Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpress : ĠDrawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpress Ġ= Ġtheme Data . toolbar Button Background Press ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠState List Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . add State ( int ArrayOf ( android . R . attr . state _ pressed ), Ġpress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . add State ( State Set . W ILD _ CARD , Ġresources . get Drawable ( R . drawable . swipe btn _ image _ background _ normal , Ġcontext . theme )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTHE ME _ BUTTON _ BG Ġ= Ġdrawable ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTHE ME _ BUTTON _ BG Ġ= Ġresources . get Drawable ( R . drawable . swipe btn _ image _ background , Ġcontext . theme ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġapply Theme ( theme Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġapply Theme ( theme Data : ĠTheme Data ?) Ġ{} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġapply Theme Autom atically ( theme Data : ĠTheme Data ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġapply Theme ( theme Data , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġapply Theme ( theme Data : ĠTheme Data ?, Ġview Group : ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Group . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠViewGroup Ġ-> Ġapply Theme ( theme Data , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTextView Ġ-> Ġapply Theme ( theme Data , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠImageView Ġ-> Ġapply Theme ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġapply Theme ( theme Data : ĠTheme Data ?, ĠtextView : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( theme Data Ġ!= Ġnull Ġ&& Ġtheme Data . toolbar TextColor Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setTextColor ( theme Data . toolbar TextColor ) ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setTextColor ( Resources Compat . getColor ( resources , ĠR . color . toolbar _ text _ color , Ġcontext . theme )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġapply Theme ( theme Data : ĠTheme Data , Ġbutton : ĠButton ) Ġ{ ĊĠĠĠĠĠĠĠ Ġapply Theme ( theme Data , Ġbutton Ġas ĠTextView ) ĊĠĠĠĠĠĠĠ Ġbutton . background Ġ= ĠTHE ME _ BUTTON _ BG ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠTHE ME _ IMAGE _ COLOR _ FILTER : ĠColor Filter ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠTHE ME _ BUTTON _ BG : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġapply Theme ( imageView : ĠImageView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . color Filter Ġ= ĠTHE ME _ IMAGE _ COLOR _ FILTER ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġapply Theme ( button : ĠImage Button ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Theme ( button Ġas ĠImageView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . background Ġ= ĠTHE ME _ BUTTON _ BG ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġapply Theme ( controller : ĠButton Toolbar Controller ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . setColor Filter ( THEME _ IMAGE _ COLOR _ FILTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . setBackground Drawable ( THEME _ BUTTON _ BG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ