package Ġcom . g mer ino j im ene z . tweak s Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Graph Builder Ċ import Ġcom . g mer ino j im ene z . tweak s . domain .* Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ Ċ class ĠT weak s Ġ{ ĊĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġtweak s Graph : ĠT weak s Graph ĊĠĠĠ Ġprivate Ġval Ġkey To Entry Value Map : ĠMutable Map < String , ĠT weak Entry <* >> Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġ< T > Ġget T weak Value ( key : ĠString ): ĠFlow < T ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentry = Ġkey To Entry Value Map [ key ] Ġas ĠT weak Entry < T > ĊĠĠĠĠĠĠĠ Ġreturn Ġget T weak Value ( entry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġ< T > Ġget T weak Value ( entry : ĠT weak Entry < T >): ĠFlow < T ?> Ġ= Ġwhen Ġ( entry Ġas ĠMod ifiable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠReadOnly < *> Ġ-> Ġ( entry Ġas ĠReadOnly < T >). value ĊĠĠĠĠĠĠĠ Ġis ĠEdit able < *> Ġ-> Ġ( entry Ġas ĠEdit able < T >). defaultValue Ġ?: Ġflow Ġ{ Ġemit ( null ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize ( tweak s Graph : ĠT weak s Graph ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġall Entries : ĠList < T weak Entry <* >> Ġ= Ġtweak s Graph . category ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġcategory Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory . groups . flatMap Ġ{ Ġgroup Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . entries ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġall Entries . forEach Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey To Entry Value Map [ entry . key ] Ġ= Ġentry ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠT WE AK S _ NAV IG ATION _ ENTRYPOINT Ġ= Ġ" tweak s " ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġreference : ĠT weak s ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġinit ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication : ĠApplication , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtweak s Graph : ĠT weak s Graph , ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreference Ġ= ĠT weak s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreference !!. initialize ( tweak s Graph ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Reference () Ġ= Ġreference !! ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ Ċ fun ĠNav Graph Builder . add T weak Graph ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , Ċ ) Ġ{ Ċ Ċ } Ċ