package Ġcom . jo er ac osta . library . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠJo e Ġon Ġ 8 / 1 4 / 2 0 1 7 . Ċ Ġ* ĠMe ant Ġto Ġbe Ġa Ġshell Ġmap Ġactivity Ġthat Ġhas Ġa Ġmap Ġof ĠSimple Fragments . ĠBack Ġp resses Ġetc Ġare Ġhandled Ġfor Ġyou . Ċ Ġ* ĠThe Ġback Ġp resses Ġwill Ġbe Ġsent Ġto Ġthe ĠSimple Fragment Ġthat s Ġcurrently Ġshown Ġin Ġthe Ġmap Ġand Ġhandled Ġthere . ĠIf Ġit 's Ġnot Ġhandled Ċ Ġ* ĠIt Ġwill Ġbe Ġsent Ġto Ġthis Ġactivity . ĠYou Ġshouldn 't Ġinf late Ġa Ġlayout Ġhere Ġinside Ġthe Ġfragment Ġcontainer Ġthat Ġis Ġmeant Ġto Ġbe Ġvisible Ċ Ġ* Ġto Ġthe Ġuser . Ċ Ġ*/ Ċ abstract Ġclass ĠFragment Map Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprotected Ġvar ĠmCurrent Fragment : ĠSimple Fragment ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġprivate Ġvar ĠmCurrent Fragment Tag : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsavedInstanceState ?. getString ( CURRENT _ FRAG _ TAG )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Fragment Tag Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Fragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( m Current Fragment Tag ) Ġas ĠSimple Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout State . putString ( CURRENT _ FRAG _ TAG , ĠmCurrent Fragment Tag ) ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Fragments (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport FragmentManager . fragments . size Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġa Ġfragment Ġin Ġthe Ġmap ĊĠĠĠĠ Ġ* Ġ@ param Ġfragment ToAdd ĠNew ĠInstance Ġof Ġthe ĠFragment Ġyou Ġwant ĊĠĠĠĠ Ġ* Ġ@ param Ġfragment Container Id Ġcontainer ĠId Ġfor Ġthe Ġfragment ĊĠĠĠĠ Ġ* Ġ@ param Ġtag Ġtag Ġof Ġthe Ġfragment Ġtransaction . ĠIf Ġyou Ġwant Ġto Ġshow Ġthe Ġsame Ġfragment Ġthat 's ĊĠĠĠĠ Ġ* Ġalready Ġadded , Ġjust Ġmake Ġsure Ġthe Ġtag Ġis Ġcorrect Ġand Ġit Ġwon 't Ġuse Ġthe Ġnew Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Fragment In Map ( fragment ToAdd : ĠSimple Fragment , Ġfragment Container Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfragment To Act ually Add Ġ= Ġfragment ToAdd ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . find Fragment By Tag ( tag )?. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment To Act ually Add Ġ= Ġit Ġas ĠSimple Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġsupport FragmentManager . beginTransaction (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Current Fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide ( m Current Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment To Act ually Add . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( fragment To Act ually Add ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment To Act ually Add . set At Fo refront ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( fragment Container Id , Ġfragment To Act ually Add , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠmCurrent Fragment Tag Ġ= Ġtag ĊĠĠĠĠĠĠĠ ĠmCurrent Fragment Ġ= Ġfragment To Act ually Add ĊĊĠĠĠĠĠĠĠ Ġfragment Transaction . commit Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! handle Back Press ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠP asses Ġthe Ġback Ġpress Ġto Ġchildren Ġfragments Ġso Ġthey Ġcan Ġconsume Ġit Ġif Ġthey 'd Ġlike ĊĠĠĠĠ Ġ* Ġ@ return Ġwhether Ġor Ġnot Ġthe Ġback Ġpress Ġwas Ġconsumed Ġby Ġa Ġchild Ġfragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġhandle Back Press () Ġ: ĠBoolean { ĊĠĠĠĠĠĠĠ Ġreturn ĠmCurrent Fragment ?. on Simple Back Pressed () Ġ?: Ġfalse ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġconst Ġval ĠCURRENT _ FRAG _ TAG Ġ= Ġ" com . jo er ac osta . current _ frag _ tag _ activity _ map "