package Ġcom . vl ad 1 m 1 r . bl tax i . about . data Ċ Ċ import Ġcom . vl ad 1 m 1 r . bl tax i . about . domain . Action Ċ import Ġcom . vl ad 1 m 1 r . bl tax i . about . domain . Action Executor Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAction Executor Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval ĠstartActivity : ĠStart Activity , ĊĠĠĠ Ġshare Executor : ĠShare Executor , ĊĠĠĠ Ġsend Email Executor : ĠSend Email Executor , ĊĠĠĠ Ġopen Play Store Executor : ĠOpen Play Store Executor , ĊĠĠĠ Ġopen Url Executor : ĠOpen Url Executor , ĊĠĠĠ Ġcall Number Executor : ĠCall Number Executor , ĊĠĠĠ Ġcall Number On Vi ber Executor : ĠCall Number On Vi ber Executor Ċ ) Ġ: ĠAction Executor Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠlistOf Executors Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġshare Executor , ĊĠĠĠĠĠĠĠ Ġsend Email Executor , ĊĠĠĠĠĠĠĠ Ġopen Play Store Executor , ĊĠĠĠĠĠĠĠ Ġopen Url Executor , ĊĠĠĠĠĠĠĠ Ġcall Number Executor , ĊĠĠĠĠĠĠĠ Ġcall Number On Vi ber Executor ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( action : ĠAction ) Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf Executors . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . can Handle Action ( action )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( it ( action )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }