package Ġtran . nam . core . view ĊĊ Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġjavax . inject . Inject Ċ Ċ abstract Ġclass ĠBase Activity With Fragment Ġ: ĠBase Activity Injection (), ĠIF ragment Provider < Base Fragment >, ĠFragment Helper . On Changed Fragment Listener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġm Fragment Helper : ĠFragment Helper < Base Fragment > ĊĠĠĠĠĠĠĠ Ġ@ Inject Ġset ĊĊĠĠĠ Ġfun Ġadd Fragment ( fragment : ĠBase Fragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . push Fragment ( fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Fragment ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . show Fragment ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreplace Fragment ( fragment : ĠBase Fragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . replace Fragment ( fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . setup Fragment ( this ) ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . setOn Changed Fragment Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfragment Manager (): ĠFragment Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport FragmentManager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpop To Root () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . pop Fragment To Root () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm Fragment Helper . release () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Fragment Helper . pop Fragment ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChanged Fragment ( fragment : ĠBase Fragment ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hide Fragment ( fragment : ĠBase Fragment ) Ġ{ ĊĊĠĠĠ Ġ} Ċ } Ċ