/* Ċ Ġ* Ġ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 . context Ċ Ċ import Ġandroid . view . View Ċ import Ġbr . com . z up . be agle . android . action . Action Ċ import Ġbr . com . z up . be agle . android . action . Analytics Action Ċ import Ġbr . com . z up . be agle . android . action . Async Action Ċ import Ġbr . com . z up . be agle . android . utils . generate ViewModel Instance Ċ import Ġbr . com . z up . be agle . android . view . view model . Analytics ViewModel Ċ import Ġbr . com . z up . be agle . android . view . view model . Async Action ViewModel Ċ import Ġbr . com . z up . be agle . android . view . view model . Screen Context ViewModel Ċ import Ġbr . com . z up . be agle . android . widget . Root View Ċ Ċ internal Ġobject ĠContext Action Executor Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" Long Parameter List ") ĊĠĠĠ Ġfun Ġexecute Actions ( ĊĠĠĠĠĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠĠĠĠĠ Ġorigin : ĠView , ĊĠĠĠĠĠĠĠ Ġsender : ĠAny , ĊĠĠĠĠĠĠĠ Ġactions : ĠList < Action >, ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext Data ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġanalytics Value : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Implicit Context For Actions ( root View , Ġsender , Ġcontext , Ġactions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexecute Actions ( root View , Ġorigin , Ġactions , Ġanalytics Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Implicit Context For Actions ( ĊĠĠĠĠĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠĠĠĠĠ Ġsender : ĠAny , ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext Data , ĊĠĠĠĠĠĠĠ Ġactions : ĠList < Action >, ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= Ġroot View . generate ViewModel Instance < Screen Context ViewModel >() ĊĠĠĠĠĠĠĠ ĠviewModel . add Implicit Context ( context . normalize (), Ġsender , Ġactions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Actions ( ĊĠĠĠĠĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠĠĠĠĠ Ġorigin : ĠView , ĊĠĠĠĠĠĠĠ Ġactions : ĠList < Action > ?, ĊĠĠĠĠĠĠĠ Ġanalytics Value : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactions ?. forEach Ġ{ Ġaction Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Ġis ĠAsync Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= Ġroot View . generate ViewModel Instance < Async Action ViewModel >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Async Action Executed ( Async Action Data ( origin , Ġaction )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . on Action Started () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Action ( action , Ġroot View , Ġorigin , Ġanalytics Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute Action ( ĊĠĠĠĠĠĠĠ Ġaction : ĠAction , ĊĠĠĠĠĠĠĠ Ġroot View : ĠRoot View , ĊĠĠĠĠĠĠĠ Ġorigin : ĠView , ĊĠĠĠĠĠĠĠ Ġanalytics Value : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction . execute ( root View , Ġorigin ) ĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġis ĠAnalytics Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . generate ViewModel Instance < Analytics ViewModel >(). create Action Report ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġdata Ġclass ĠAsync Action Data ( ĊĠĠĠ Ġval Ġorigin : ĠView , ĊĠĠĠ Ġval Ġasync Action : ĠAsync Action , Ċ ) Ċ