package Ġch . r my . android . http _ shortcuts . actions . types Ċ Ċ import Ġandroid . content . Context Ċ import Ġch . r my . android . http _ shortcuts . R Ċ import Ġch . r my . android . http _ shortcuts . data . Common s Ċ import Ġch . r my . android . http _ shortcuts . data . DataSource Ċ import Ġch . r my . android . http _ shortcuts . extensions . show Toast Ċ import Ġch . r my . android . http _ shortcuts . http . Shortcut Response Ċ import Ġch . r my . android . http _ shortcuts . utils . Date Util Ċ import Ġch . r my . android . http _ shortcuts . variables . Variable Manager Ċ import Ġcom . android . vol ley . Vol ley Error Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ Ċ class ĠTrigger Shortcut Action ( ĊĠĠĠ Ġaction Type : ĠTrigger Shortcut ActionType , ĊĠĠĠ Ġdata : ĠMap < String , ĠString > Ċ ) Ġ: ĠBase Action ( action Type , Ġdata ) Ġ{ ĊĊĠĠĠ Ġvar Ġshortcut Name Or Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġinternal Data [ KEY _ SHORT CUT _ NAME _ OR _ ID ] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Data [ KEY _ SHORT CUT _ NAME _ OR _ ID ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġperform ( context : ĠContext , Ġshortcut Id : ĠString , Ġvariable Manager : ĠVariable Manager , Ġresponse : ĠShort cut Response ?, Ġvol ley Error : ĠVol ley Error ?, Ġrecursion Depth : ĠInt ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( recursion Depth Ġ>= ĠMAX _ REC UR SION _ DEPTH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠComp letable . from Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . show Toast ( R . string . action _ type _ trigger _ shortcut _ error _ recursion _ depth _ re ached , Ġlong Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġshortcut Ġ= ĠDataSource . get Shortcut ByName Or Id ( shortcut Name Or Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠComp letable . from Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . show Toast ( String . format ( context . getString ( R . string . error _ shortcut _ not _ found _ for _ trigger ing ), Ġshortcut Name Or Id ), Ġlong Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠCommons . create Pending Execution ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshortcut Id Ġ= Ġshortcut . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Number Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwait Until Ġ= ĠDate Util . calculate Date ( EXEC UTION _ DELAY ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequires Network Ġ= Ġshortcut . is WaitFor Network , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecursion Depth Ġ= Ġrecursion Depth Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ SHORT CUT _ NAME _ OR _ ID Ġ= Ġ" shortcut Id " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAX _ REC UR SION _ DEPTH Ġ= Ġ 5 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEXEC UTION _ DELAY Ġ= Ġ 3 0 0 ĊĊĠĠĠ Ġ} Ċ Ċ }