/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠPeter ĠKen ji ĠY aman aka Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . py am soft . f ridge . detail . item Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . py am soft . f ridge . db . item . F ridge Item Ċ import Ġcom . py am soft . f ridge . detail . R Ċ import Ġcom . py am soft . f ridge . detail . databinding . Detail ListItem Count Binding Ċ import Ġcom . py am soft . py d roid . arch . Base Ui View Ċ import Ġcom . py am soft . py d roid . arch . Ui Render Ċ import Ġcom . py am soft . py d roid . loader . Image Loader Ċ import Ġcom . py am soft . py d roid . ui . R Ġas ĠR 2 Ċ import Ġcom . py am soft . py d roid . ui . theme . Theme Provider Ċ import Ġcom . py am soft . py d roid . ui . util . setOn De bounc ed ClickListener Ċ import Ġcom . py am soft . py d roid . util . tint With Ċ import Ġjavax . inject . Inject Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠDetail ListItem Count Ċ @ Inject Ċ internal Ġconstructor ( ĊĠĠĠ Ġthem ing : ĠTheme Provider , ĊĠĠĠ Ġimage Loader : ĠImage Loader , ĊĠĠĠ Ġparent : ĠViewGroup , Ċ ) Ġ: ĠBase Ui View < Detail Item ViewState , ĠDetail Item View Event , ĠDetail ListItem Count Binding >( parent ) Ġ{ ĊĊĠ Ġoverride Ġval Ġview Binding Ġ= ĠDetail ListItem Count Binding :: inflate ĊĊĠ Ġoverride Ġval Ġlayout Root Ġby Ġbound View Ġ{ Ġdetail ItemCount Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġdo On Inf late Ġ{ ĊĠĠĠĠĠ Ġimage Loader ĊĠĠĠĠĠĠĠĠĠ Ġ. as Drawable () ĊĠĠĠĠĠĠĠĠĠ Ġ. load ( R . drawable . ic _ arrow _ drop _ down _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠ Ġ. mutate Ġ{ Ġicon Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġif Ġ( the ming . is Dark Theme ()) ĠR 2 . color . white Ġelse ĠR 2 . color . black ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon . tint With ( layout Root . context , Ġcolor ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . detail ItemCount Down ) ĊĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġdo On Te ardown Ġ{ Ġdispose () Ġ} Ġ} ĊĊĠĠĠĠĠ Ġimage Loader ĊĠĠĠĠĠĠĠĠĠ Ġ. as Drawable () ĊĠĠĠĠĠĠĠĠĠ Ġ. load ( R . drawable . ic _ arrow _ drop _ up _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠ Ġ. mutate Ġ{ Ġicon Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġif Ġ( the ming . is Dark Theme ()) ĠR 2 . color . white Ġelse ĠR 2 . color . black ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon . tint With ( layout Root . context , Ġcolor ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . detail ItemCount Up ) ĊĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġdo On Te ardown Ġ{ Ġdispose () Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdo On Inf late Ġ{ ĊĠĠĠĠĠ Ġbinding . detail ItemCount Up . setOn De bounc ed ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġpublish ( Detail Item View Event . Increase Count ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġbinding . detail ItemCount Down . setOn De bounc ed ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġpublish ( Detail Item View Event . De crease Count ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġbinding . detail ItemCount Text . setOn De bounc ed ClickListener Ġ{ ĠTim ber . d (" Count Ġtext Ġeat Ġclick ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdo On Te ardown Ġ{ ĊĠĠĠĠĠ Ġbinding . detail ItemCount Up . setOn De bounc ed ClickListener ( null ) ĊĠĠĠĠĠ Ġbinding . detail ItemCount Down . setOn De bounc ed ClickListener ( null ) ĊĠĠĠĠĠ Ġbinding . detail ItemCount Text . setOn De bounc ed ClickListener ( null ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Render ( state : ĠUi Render < Detail Item ViewState >) Ġ{ ĊĠĠĠ Ġstate . map Changed Ġ{ Ġit . item Ġ}. render ( view Scope ) Ġ{ Ġhandle Item ( it ) Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġhandle Item ( item : ĠF ridge Item ) Ġ{ ĊĠĠĠ Ġrequire ( item . is Real ()) Ġ{ Ġ" Cannot Ġrender Ġnon - real Ġitem : Ġ$ item " Ġ} ĊĠĠĠ Ġbinding . detail ItemCount Text . text Ġ= Ġ"${ item . count () }" ĊĠ Ġ} Ċ } Ċ