/* Ċ Ġ* Ġ( C ) ĠCopyright ĠIBM ĠDe ut sch land ĠGmbH Ġ 2 0 2 1 Ċ Ġ* Ġ( C ) ĠCopyright ĠIBM ĠCorp . Ġ 2 0 2 1 Ċ Ġ*/ Ċ Ċ package Ġde . r ki . cov pass . sdk . utils lib Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . ens ody . reactiv est ate . Mutable Value Flow Ċ import Ġcom . ens ody . reactiv est ate . with Error Reporting Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ Ċ /** ĠBase Ġclass Ġthat Ġcomes Ġwith Ġhook Ġsupport . Ġ*/ Ċ public Ġabstract Ġclass ĠBase Hook ed Fragment (@ Layout Res Ġcontent Layout Id : ĠInt Ġ= Ġ 0 ) Ġ: ĊĠĠĠ ĠFragment ( content Layout Id ), ĊĠĠĠ ĠLoading State Hook , ĊĠĠĠ ĠBase Events Ġ{ ĊĊĠĠĠ Ġinternal Ġvar Ġinflater Hook : Ġ(( LayoutInflater , ĠViewGroup ?) Ġ-> ĠView )? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġval Ġloading : ĠMutable Value Flow < Int > Ġ= ĠMutable Value Flow ( 0 ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Loading ( loading , Ġ:: set Loading ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . in flater Hook ?. invoke ( in flater , Ġcontainer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġopen Ġfun Ġlaunch When Started ( block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Error Reporting (:: onError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ