package Ġio . sp ok est ack . tray Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ Ċ /** Ċ Ġ* ĠAn Ġ[ AppCompatActivity ] Ġsubclass Ġthat Ġmanages Ġstate Ġand Ġfragment Ġconcerns Ċ Ġ* Ġcommon Ġto Ġall Ġ` Activity ` s Ġthat Ġwish Ġto Ġinclude Ġ[ S pok est ack Tray ]. Ċ Ġ*/ Ċ abstract Ġclass ĠTr ay Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfragment Tag : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ` tray ` Ġcan Ġbe Ġaccessed Ġwhen Ġthe Ġactivity Ġis Ġin Ġthe ĠSTART ED Ġstate ĊĠĠĠĠ Ġ* Ġ( at Ġthe Ġend Ġof Ġ` onStart `). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġlateinit Ġvar Ġtr ay : ĠS pok est ack Tray ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġconfiguration Ġused Ġto Ġcreate Ġthe ĠS pok est ack ĠTr ay . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġfully Ġbuilt Ġ[ Tray Config ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġget Tray Config (): ĠTr ay Config ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġlistener Ġthat Ġshould Ġreceive Ġevents Ġfrom ĠS pok est ack ĠTr ay . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġshould Ġusually Ġbe Ġimplemented Ġby Ġeach Ġsubclass Ġbecause Ġthe ĠU Is Ġof ĊĠĠĠĠ Ġ* Ġdifferent Ġactivities Ġwill Ġnecessarily Ġreact Ġdifferently Ġto Ġvoice ĊĠĠĠĠ Ġ* Ġcommands . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġcomponent Ġthat Ġlist ens Ġfor Ġtr ay Ġevents . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġget Tray Listener (): ĠS pok est ack Tray Listener ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment Tag Ġ= Ġresources . getString ( R . string . fragment _ tag ) ĊĠĠĠĠĠĠĠ Ġval Ġtr ay Config Ġ= Ġget Tray Config () ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . fragment Factory Ġ= ĠS pok est ack Tray Factory ( tray Config ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġtr ay Ġ= Ġsupport FragmentManager . find Fragment By Tag ( fragment Tag ) Ġas ĠS pok est ack Tray ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠ Ġ} Ċ }