/** Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠA mr ĠEl gh ob ary Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġdev . am r . travel m antics . binding Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġdev . am r . travel m antics . data . Result Ċ Ċ /** Ċ Ġ* ĠData ĠBinding Ġadapters Ġspecific Ġto Ġthe Ġapp . Ċ Ġ*/ Ċ object ĠBinding Adapters Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMakes Ġthe ĠView Ġ[ View . IN VISIBLE ] Ġunless Ġthe Ġcondition Ġis Ġmet . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġ@ Binding Adapter (" invisible Unless ") ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġinvisible Unless ( view : ĠView , Ġvisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . IN VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMakes Ġthe ĠView Ġ[ View . GONE ] Ġunless Ġthe Ġcondition Ġis Ġmet . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġ@ Binding Adapter (" g one Unless ") ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgone Unless ( view : ĠView , Ġvisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" show FAB Unless ") ĊĠĠĠ Ġfun Ġshow FAB Unless ( fab : ĠFloating ActionButton , Ġshow : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġfab . show () ĊĠĠĠĠĠĠĠ Ġelse Ġfab . hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter (" lose Focus When ") ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġlose Focus When ( view : ĠEditText , Ġcondition : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( condition ) Ġview . clear Focus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" error ") ĊĠĠĠ Ġfun Ġerror Result ( tv : ĠTextView , Ġresult : ĠResult < Any > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġresult Ġis ĠResult . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv . text Ġ= Ġresult . exception . localized Message ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" imageUrl ") ĊĠĠĠ Ġfun ĠimageUrl ( imageView : ĠImageView , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( url . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . Builder ( imageView . context ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" image Uri ") ĊĠĠĠ Ġfun Ġimage Uri ( imageView : ĠImageView , Ġuri : ĠUri ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . Builder ( imageView . context ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ