package Ġcom . dr ake . br v . sample . ui . fragment Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . TextView Ċ import Ġcom . dr ake . br v . sample . R Ċ import Ġcom . dr ake . br v . sample . databinding . Fragment Differ Data Change Binding Ċ import Ġcom . dr ake . br v . sample . model . Simple Model Ċ import Ġcom . dr ake . br v . utils . linear Ċ import Ġcom . dr ake . br v . utils . set Differ Models Ċ import Ġcom . dr ake . br v . utils . setup Ċ import Ġcom . dr ake . engine . base . Engine Fragment Ċ import Ġkotlin . concurrent . thread Ċ Ċ /** Ġå¯¹ æ¯Ķ æķ°æį® , Ġæł¹æį® æķ°æį® åıĺåĮĸ æĽ´æĸ° åĪĹè¡¨ Ġ*/ Ċ class ĠD iffer Data Change Fragment Ġ: ĠEngine Fragment < Fragment Differ Data Change Binding >( R . layout . fragment _ differ _ data _ change ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġbinding . rv . linear (). setup Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Type < Simple Model >( R . layout . item _ simple ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Bind Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind View < TextView >( R . id . tv _ simple ). text Ġ= ĠgetModel < Simple Model >(). name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. models Ġ= ĠgetRandom Data ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . menu _ differ _ data _ change , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸» çº¿ç¨ĭ åĪ·æĸ° ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ random _ data Ġ-> Ġbinding . rv . set Differ Models ( getRandom Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ random _ data _ async Ġ-> Ġthread Ġ{ Ġ// Ġ å¼ĤæŃ¥ çº¿ç¨ĭ å¯¹ æ¯Ķ åĪ·æĸ° ( éģ¿åħį å¤§ éĩı æķ°æį® å¯¹ æ¯Ķ éĺ» å¡ŀ ä¸» çº¿ç¨ĭ ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rv . set Differ Models ( getRandom Data ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĪ·æĸ° å®ĮæĪĲ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" BR V ", Ġ" åĪ·æĸ° å®ĮæĪĲ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ éļıæľº çļĦ éĽĨåĲĪ ĊĠĠĠĠ Ġ* Ġ@ param Ġorder Ġæĺ¯åĲ¦ æĮī é¡ºåºı æĺ¾ç¤º ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠgetRandom Data ( order : ĠBoolean Ġ= Ġfalse ): ĠMutable List < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmutable ListOf < Any >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Simple Model ( i . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! order ) Ġshuffle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }