package Ġcom . nb . ret rofit x . extensions Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . On Lifecycle Event Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ class ĠGlobal Scope Ext < T >( context : ĠT , Ġcoroutine Scope : suspend ĠCor outine Scope . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ: ĠLifecycle Observer Ġwhere ĠT Ġ: ĠContext , ĠT Ġ: ĠLifecycle Owner Ġ{ ĊĠĠĠ Ġvar Ġmy Job : ĠJob = ĠJob () ĊĠĠĠ Ġprivate Ġval Ġcoroutine Context Ġ: ĠCor outine Context Ġget () Ġ= Ġmy Job Ġ+ ĠDispatch ers . Default ĊĠĠĠ Ġprivate Ġval Ġscope Ġ= ĠCor outine Scope ( coroutine Context ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . lifecycle . add Observer ( this ) ĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope . invoke ( scope ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠ Ġfun Ġstop () Ġ= Ġmy Job . cancel () Ċ }