/** Ċ MIT ĠLicense Ċ Ċ Copyright Ġ( c ) Ġ 2 0 1 8 ĠY ouse ĠSe gu ros Ċ Ċ 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 Ġbr . com . y ouse . forms . li ved ata . databinding Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . databinding . Inverse Binding Adapter Ċ import Ġandroidx . databinding . Inverse Binding Listener Ċ Ċ @ Suppress (" UNUSED ") Ċ Ċ object ĠView Binding Adapters Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠUse Ġthis Ġtwo Ġway Ġdatab ind ing Ġto Ġfeed Ġthe Ġform Ġwith ĠView Ġfocus Ġchanges . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" field Focus "]) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġset View Focus Change FormField ( view : ĠView , ĠnewValue : ĠBoolean ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠoldValue Ġ= Ġview . has Focus () ĊĠĠĠĠĠĠĠ Ġif Ġ( oldValue Ġ!= ĠnewValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . clear Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inverse Binding Adapter ( attribute Ġ= Ġ" field Focus ", Ġevent Ġ= Ġ" field Focus Attr Changed ") ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget View Focus Change FormField ( view : ĠView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview . has Focus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" field Focus Attr Changed "]) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġset View Focus Change FormField Listener ( view : ĠView , Ġlistener : ĠIn verse Binding Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( listener Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . setOn Focus ChangeListener Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . onChange () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlistener . onChange () ĊĠĠĠ Ġ} Ċ }