/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠZ UP ĠIT ĠSER V IC OS ĠEM ĠT EC NO LOG IA ĠE ĠIN OV AC AO ĠSA Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// 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 Ġbr . com . z up . be agle . android . utils Ċ Ċ import Ġbr . com . z up . be agle . android . action . Action Ċ import Ġbr . com . z up . be agle . android . context . Bind Ċ import Ġbr . com . z up . be agle . android . context . expression Of Ċ import Ġbr . com . z up . be agle . android . context . Context Action Executor Ċ import Ġbr . com . z up . be agle . android . logger . Be agle Message Logs Ċ import Ġbr . com . z up . be agle . android . widget . Root View Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ internal Ġvar Ġcontext Action Executor Ġ= ĠContext Action Executor () Ċ Ċ /** Ċ Ġ* ĠExecute Ġa Ġlist Ġof Ġactions Ġand Ġcreate Ġthe Ġimplicit Ġcontext Ġwith ĠeventName Ġand Ġevent Value Ġ( optional ). Ċ Ġ* Ġ@ property Ġroot View Ġfrom Ġbuild View Ċ Ġ* Ġ@ property Ġactions Ġis Ġthe Ġlist Ġof Ġactions Ġto Ġbe Ġexecuted Ċ Ġ* Ġ@ property ĠeventName Ġis Ġthe Ġname Ġof Ġevent Ġto Ġbe Ġreferenced Ġinside Ġthe Ġ@ property Ġaction Ġlist Ċ Ġ* Ġ@ property Ġevent Value Ġis Ġthe Ġvalue Ġthat Ġthe ĠeventName Ġname Ġhas Ġcreated , Ċ Ġ* Ġthis Ġcould Ġbe Ġa Ġprimitive Ġor Ġa Ġobject Ġthat Ġwill Ġbe Ġserialized Ġto ĠJSON Ċ Ġ*/ Ċ fun ĠAction . handle Event ( ĊĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠ Ġactions : ĠList < Action >, ĊĠĠĠ ĠeventName : ĠString , ĊĠĠĠ Ġevent Value : ĠAny ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġcontext Action Executor . execute Actions ( root View , Ġthis , Ġactions , ĠeventName , Ġevent Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠExecute Ġan Ġaction Ġand Ġcreate Ġthe Ġimplicit Ġcontext Ġwith ĠeventName Ġand Ġevent Value Ġ( optional ). Ċ Ġ* Ġ@ property Ġroot View Ġfrom Ġbuild View Ċ Ġ* Ġ@ property Ġaction Ġis Ġthe Ġaction Ġto Ġbe Ġexecuted Ċ Ġ* Ġ@ property ĠeventName Ġis Ġthe Ġname Ġof Ġevent Ġto Ġbe Ġreferenced Ġinside Ġthe Ġ@ property Ġaction Ġlist Ċ Ġ* Ġ@ property Ġevent Value Ġis Ġthe Ġvalue Ġthat Ġthe ĠeventName Ġname Ġhas Ġcreated , Ċ Ġ* Ġthis Ġcould Ġbe Ġa Ġprimitive Ġor Ġa Ġobject Ġthat Ġwill Ġbe Ġserialized Ġto ĠJSON Ċ Ġ*/ Ċ fun ĠAction . handle Event ( ĊĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠ Ġaction : ĠAction , ĊĠĠĠ ĠeventName : ĠString , ĊĠĠĠ Ġevent Value : ĠAny ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġcontext Action Executor . execute Actions ( root View , Ġthis , ĠlistOf ( action ), ĠeventName , Ġevent Value ) Ċ } Ċ Ċ /** Ċ Ġ* ĠEvaluate Ġthe Ġexpression Ġto Ġa Ġvalue Ċ Ġ* Ġ@ property Ġroot View Ġfrom Ġbuild View Ċ Ġ* Ġ@ property Ġbind Ġhas Ġthe Ġexpression Ġto Ġbe Ġevaluated Ċ Ġ*/ Ċ fun Ġ< T > ĠAction . evaluate Expression ( ĊĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠ Ġbind : ĠBind < T > Ċ ): ĠT ? Ġ{ ĊĠĠĠ Ġreturn Ġbind . evaluate For Action ( root View , Ġthis ) Ċ } Ċ Ċ internal Ġfun ĠAction . evaluate Expression ( ĊĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠ Ġexpression Data : ĠString Ċ ): ĠAny ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġexpression Of < String >( expression Data ). evaluate For Action ( root View , Ġthis ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . startsWith ("{ ") Ġ-> ĠJSONObject ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . startsWith ("[ ") Ġ-> ĠJSONArray ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBe agle Message Logs . error While Trying To Evaluate Binding ( ex ) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ }