package Ġcom . kernel . co lib ri Ċ Ċ import Ġandroid . support . test . Instrumentation Registry Ċ import Ġandroid . util . Log Ċ import Ġcom . kernel . co lib ri . core . models . Condition Ċ import Ġcom . kernel . co lib ri . core . Config . TAG Ċ import Ġcom . kernel . co lib ri . core . strategy . Mon key Ċ import Ġcom . kernel . co lib ri . core . strategy . Strategy Ċ Ċ object ĠCol ibri Ġ{ ĊĊĠĠĠ Ġvar ĠpackageName Ġ= ĠInstrument ation Registry . getContext (). packageName . replace (". test ", Ġ"") ĊĠĠĠ Ġprivate Ġvar Ġcondition Ġ= ĠCondition . Builder (). build () ĊĠĠĠ Ġprivate Ġvar Ġstrategy : ĠStrategy Ġ= ĠMon key () ĊĊĠĠĠ Ġfun Ġcondition ( condition : ĠCondition ): ĠCol ibri Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . condition Ġ= Ġcondition ĊĠĠĠĠĠĠĠ Ġthis . strategy . condition Ġ= Ġcondition ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstrategy ( strategy : ĠStrategy ): ĠCol ibri Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . strategy Ġ= Ġstrategy ĊĠĠĠĠĠĠĠ Ġthis . strategy . condition Ġ= Ġcondition ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠpackageName ( packageName : ĠString ): ĠCol ibri Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . packageName Ġ= ĠpackageName ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlaunch () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrategy . run () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Don 't Ġpanic ! ĠSomething Ġwent Ġwrong :" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }