/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 . long jun hao . wan jet pack . adapter Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . resource . drawable . Drawable Transition Options Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . long jun hao . wan jet pack . R Ċ import Ġcom . long jun hao . wan jet pack . data . Api Article Ċ import Ġcom . long jun hao . wan jet pack . data . home . Api Banner Ċ Ċ @ Binding Adapter (" is G one ") Ċ fun Ġbind Is G one ( view : ĠView , Ġis G one : ĠBoolean ) Ġ{ ĊĠĠĠ Ġview . visibility Ġ= Ġif Ġ( is G one ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" image From Url ") Ċ fun Ġbind Image From Url ( view : ĠImageView , ĠimageUrl : ĠString ?) Ġ{ ĊĠĠĠ Ġif Ġ(! imageUrl . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( view . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( Drawable Transition Options . with Cross Fade ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( view ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" web View From Article ") Ċ fun Ġbind WebView From Article ( view : ĠView , Ġarticle : ĠAny ) Ġ{ ĊĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( article ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApi Article Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġbundle Of (" link " Ġto Ġit . link , Ġ" title " Ġto Ġit . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate ( R . id . web Fragment , Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApi Banner Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġbundle Of (" link " Ġto Ġarticle . url , Ġ" title " Ġto Ġarticle . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate ( R . id . web Fragment , Ġbundle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSn ackbar . make ( view , Ġ" æľª çŁ¥ çļĦæķ°æį® ç±»åŀĭ ...", ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġtodo Ġ çĤ¹åĩ» æĲľç´¢ æĹ¶ ï¼Į ä¹Ł æľŁ æľĽ éĢļè¿ĩ Binding Adapter å®ŀçİ° ï¼Į æľī flow ï¼Į æļĤ æĹ¶ æ²¡æľī å®ŀçİ° ãĢĤ åĴĮ âĢľ é¡¹çĽ® âĢĿ éĩĮ çļĦ çĤ¹åĩ» é¡¹çĽ® åĪĨç±» éĩĮ çļĦ åİŁåĽł ç±»ä¼¼ ï¼Į éĥ½æĺ¯ æľī Ċ Ġ* ĠĠ Ġflow ï¼Į çĶ±äºİ æľī flow å¯¼èĩ´ åľ¨ çĤ¹åĩ» é¡¹çĽ® åĪĨç±» æĹ¶ ï¼Į çĶ¨ åįı ç¨ĭ æŀĦéĢł åĻ¨ å¤±è´¥ ãĢĤ Ċ Ġ*/ Ċ @ Binding Adapter ( value Ġ= Ġ[" search Action "]) Ċ fun Ġbind Search ( edit Text : ĠEditText , Ġcallback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġedit Text . setOn Editor ActionListener Ġ{ Ġ_, Ġaction Id , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ SEARCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" binding Adapters ", Ġ" bind Search : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ Ċ } Ċ