package Ġcom . hu ix ing . financial . repo Ċ Ċ import Ġcom . hu ix ing . financial . R Ċ import Ġcom . hu ix ing . financial . base . App Ċ import Ġcom . hu ix ing . financial . base . analy se . Analy se Util Ċ import Ġcom . hu ix ing . financial . base . repo . Share Repo Ċ import Ġcom . hu ix ing . financial . model . Fund Detail Ċ import Ġcom . hu ix ing . financial . network . Financial Service Ċ import Ġcom . sky do ves . sand wich . message Ċ import Ġcom . sky do ves . sand wich . onError Ċ import Ġcom . sky do ves . sand wich . on Exception Ċ import Ġcom . sky do ves . sand wich . suspend On Success Ċ import Ġcom . sky do ves . what if . what If NotNull Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġkotlinx . coroutines . flow . flow On Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠCollection Repo Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġfinancial Service : ĠFin ancial Service , ĊĠĠĠĠĠĠĠ Ġval Ġshare Repo : ĠShare Repo Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġfetch All Collection Data ( onError : Ġ( String ) Ġ-> ĠUnit ) Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfund Detail List Ġ= Ġmutable ListOf < Fund Detail >() ĊĠĠĠĠĠĠĠ Ġshare Repo . collections Fund . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinancial Service . get Fund Detail ( it ). suspend On Success Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . what If NotNull Ġ{ Ġfund Detail Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfund Detail List . add ( Analy se Util . analy se Single Fund Detail ( fund Detail )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( fund Detail List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. onError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( message ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on Exception Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( App . context . getString ( R . string . connection _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. flow On ( Dispatch ers . IO ) Ċ }