package Ġcom . hop ovo . mobile . android . prep exam . app . common Ċ Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ Ċ /** Ċ Ġ* ĠBase Ġ[ AppCompatActivity ] Ġclass Ġfor Ġevery ĠActivity Ġin Ġthis Ġapplication . Ċ Ġ*/ Ċ abstract Ġclass ĠBase Activity Ġ: ĠAppCompatActivity () Ġ{ Ċ Ċ // ĠĠĠ Ġprotected Ġfun Ġpop Fragment () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġfragment Manager Ġ= Ġsupport FragmentManager Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( fragment Manager . back Stack Entry Count Ġ> Ġ 1 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPop Ġfragments Ġwhile Ġmore Ġthan Ġone Ġremains Ġin Ġthe Ġstack Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager . pop Back Stack () Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġonly Ġone Ġfragment Ġremains Ġin Ġthe Ġstack , Ġfinish Ġthe Ġactivity Ġto Ġavoid Ġleaving Ġthe Ġfragment Ġcontainer Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwithout Ġfragments , Ġthus Ġshowing Ġan Ġempty Ġscreen . Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġthis . finish () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Back Stack Inclusive (@ NonNull Ġtag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . pop Back Stack ( tag , ĠFragment Manager . POP _ BACK _ STACK _ INCL USIVE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpush Fragment (@ Id Res Ġid Resource Reference : ĠInt , Ġfragment : ĠBase Fragment , Ġtag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Manager Ġ= Ġsupport FragmentManager ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġnew Ġtransaction ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġfragment Manager . beginTransaction () ĊĊĠĠĠĠĠĠĠ Ġ// ĠReplace Ġwhatever Ġis Ġin Ġthe Ġfragment _ container Ġview Ġwith Ġthis Ġfragment . ĠReplace Ġoperation Ġhas Ġtwo Ġside Ġeffects ĊĠĠĠĠĠĠĠ Ġ// Ġover Ġadd Ġoperation . ĠFirst , Ġthe Ġon Resume () Ġand Ġon Pause () Ġmethods Ġwill Ġbe Ġalways Ġcalled Ġin Ġthe Ġfragment , Ġthis ĊĠĠĠĠĠĠĠ Ġ// Ġwill Ġnot Ġhappen Ġwith Ġadd , Ġmaking Ġmuch Ġmore Ġdifficult Ġto Ġdeal Ġwith Ġstate Ġtransitions Ġand Ġworking Ġwith Ġthe ĊĠĠĠĠĠĠĠ Ġ// Ġpresenter . ĠSecond , Ġthere Ġis Ġalways Ġonly Ġone Ġfragment Ġin Ġthe Ġactivity ; Ġmore Ġthan Ġone Ġfragment Ġis Ġplaced Ġin Ġthe ĊĠĠĠĠĠĠĠ Ġ// Ġcontainer Ġwith Ġadd Ġoperation , Ġthus Ġincreasing Ġresource Ġconsumption Ġand Ġstack ing Ġviews Ġ( if Ġthe Ġtop Ġfragment ĊĠĠĠĠĠĠĠ Ġ// Ġhas Ġa Ġtransparent Ġarea , Ġthe Ġfragment Ġbelow Ġcan Ġbe Ġseen ). ĊĠĠĠĠĠĠĠ Ġtransaction . replace ( id Resource Reference , Ġfragment ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġtransaction Ġto Ġthe Ġback Ġstack Ġto Ġallow Ġnavigation Ġwith Ġback Ġbutton ĊĠĠĠĠĠĠĠ Ġtransaction . addTo Back Stack ( tag ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCommit Ġthe Ġtransaction ĊĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠ Ġ} Ċ } Ċ