package Ġaf kt . project . ui . adapter . concat Ċ Ċ import Ġaf kt . project . R Ċ import Ġaf kt . project . databinding . Adapter Item Ed its Binding Ċ import Ġaf kt . project . databinding . Adapter Multi Select Binding Ċ import Ġaf kt . project . model . bean . Com mod ity Bean Ċ import Ġaf kt . project . util . Project Utils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġdev . adapter . Dev Data Adapter Ċ import Ġdev . engine . Dev Engine Ċ import Ġdev . utils . app . Resource Utils Ċ import Ġdev . utils . app . helper . view . View Helper Ċ import Ġdev . utils . common . BigDecimal Utils Ċ import Ġjava . math . BigDecimal Ċ Ċ /** Ċ Ġ* Ġdetail : ĠCom mod ity ãĢģ Evaluate ĠAdapter Ċ Ġ* Ġ@ author ĠT tt Ċ Ġ*/ Ċ class ĠCom mod ity Concat Adapter ( data : ĠList < Com mod ity Bean >) Ġ: ĠDev Data Adapter < Com mod ity Bean , ĠRecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset DataList ( data , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġparent Context ( parent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( view Type Ġ== ĠR . layout . adapter _ item _ ed its ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ è¯Ħ ä»· ç±»åŀĭ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCom mod ity Evaluate Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdapter Item Ed its Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ ç±»åŀĭ ĊĠĠĠĠĠĠĠ Ġreturn ĠCom mod ity Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdapter Multi Select Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠĠĠĠĠ Ġholder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ç»Łä¸Ģ è®¾ç½® èĥĮæĻ¯ ĊĠĠĠĠĠĠĠ ĠView Helper . get (). set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource Utils . getColor ( R . color . color _ 3 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetData Item ( position ) ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠCom mod ity Holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Helper . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæĺ¯åĲ¦ æĺ¾ç¤º ç¼ĸè¾ĳ æĮīéĴ® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setVisibility s ( false , Ġholder . binding . vid Iv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æĺ¯åĲ¦ æĺ¾ç¤º è¾¹ è·Ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setVisibility s ( position Ġ== Ġ 0 , Ġholder . binding . vid Line View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ åĲį ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( item . commod ity Name , Ġholder . binding . vid Name Tv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ ä»·æł¼ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ï¿ ¥ " Ġ+ ĠBigDecimal Utils . round ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . commod ity Price , Ġ 2 , ĠBigDecimal . ROUND _ HALF _ UP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġholder . binding . vid Price Tv ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ åĽ¾çīĩ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Engine . getImage ()?. display ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding . vid Pic Iv , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . commod ity Picture , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Utils . round Config 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( holder Ġis ĠCom mod ity Evaluate Holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Helper . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æĺ¯åĲ¦ æĺ¾ç¤º è¾¹ è·Ŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setVisibility s ( position Ġ== Ġ 0 , Ġholder . binding . vid Line View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ åĲį ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( item . commod ity Name , Ġholder . binding . vid Name Tv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ ä»·æł¼ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ï¿ ¥ " Ġ+ ĠBigDecimal Utils . round ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . commod ity Price , Ġ 2 , ĠBigDecimal . ROUND _ HALF _ UP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġholder . binding . vid Price Tv ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¯Ħ ä»· åĨħå®¹ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( item . evaluate Content , Ġholder . binding . vid Content Et ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç¦ģ æŃ¢ çĤ¹åĩ» è¯Ħ ä»· è¾ĵåħ¥ æ¡Ĩ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setEnabled ( false , Ġholder . binding . vid Content Et ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ åĽ¾çīĩ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDev Engine . getImage ()?. display ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding . vid Pic Iv , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . commod ity Picture , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Utils . round Config 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¯Ħ æĺŁ çŃī çº§ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrating Bar Ġ= Ġholder . binding . vid Rating bar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrating Bar . setOn Rating ChangeListener Ġ{ Ġrating Count Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . evaluate Level Ġ= Ġrating Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® è¯Ħ æĺŁ çŃī çº§ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrating Bar . set Star ( item . evaluate Level ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( getData Item ( position ). is Evaluate Com mod ity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ è¯Ħ ä»· ç±»åŀĭ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . layout . adapter _ item _ ed its ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ åķĨåĵģ ç±»åŀĭ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . adapter _ multi _ select ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCom mod ity Holder ( val Ġbinding : ĠAdapter Multi Select Binding ) Ġ: ĠRecyclerView . ViewHolder ( ĊĠĠĠĠĠĠĠ Ġbinding . root ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġclass ĠCom mod ity Evaluate Holder ( val Ġbinding : ĠAdapter Item Ed its Binding ) Ġ: ĠRecyclerView . ViewHolder ( ĊĠĠĠĠĠĠĠ Ġbinding . root ĊĠĠĠ Ġ) Ċ }