package Ġcom . kp stv . navigation Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . kp stv . navigation . base . navigation . internals .* Ċ import Ġcom . kp stv . navigation . internals .* Ċ Ċ /** Ċ Ġ* ĠSet Ġup Ġnavigation Ġfor Ġ[ Bottom Navigation View ] Ġin Ġ[ Fragment Activity ] Ġor Ġ[ Fragment ]. Ċ Ġ* Ċ Ġ* ĠThis Ġwill Ġautomatically Ġhandle Ġnavigation Ġ& Ġits Ġstate Ġthat Ġcan Ġalso Ċ Ġ* Ġsurv ive Ġprocess Ġdeath Ġas Ġwell . Ċ Ġ* Ċ Ġ* ĠChild Ġfragments Ġcan Ġimplement Ġ[ Fragment Navigator . Navigation . Callbacks ] Ġto Ġget Ġnotified Ċ Ġ* Ġwhen Ġthey Ġare Ġselected Ġ& Ġre - selected Ġagain . Ċ Ġ*/ Ċ fun ĠFragment Navigator . install ( obj : ĠFragment Navigator . Bottom Navigation ): ĠBottom Navigation Controller Ġ{ ĊĠĠĠ Ġval Ġowner Ġ= Ġget Owner () ĊĠĠĠ Ġval Ġsaved State Instance Ġ= Ġget Save InstanceState () ĊĠĠĠ Ġreturn Ġwhen Ġ( owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠFragment Activity Ġ-> Ġinstall ( this , Ġowner , Ġsaved State Instance , Ġobj ) Ġ// ĠActivity ĊĠĠĠĠĠĠĠ Ġis ĠFragment Ġ-> Ġinstall ( this , Ġowner , Ġsaved State Instance , Ġobj ) Ġ// ĠFragment ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Couldn 't Ġdetermine Ġthe Ġowner Ġtype , Ġthis Ġis Ġthe Ġproblem Ġof Ġsomething Ġst upid ĠI Ġdid . ĠKind ly Ġreport Ġto Ġme !") ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġinstall ( ĊĠĠĠ Ġnavigator : ĠFragment Navigator , ĊĠĠĠ Ġfragment : ĠFragment , ĊĠĠĠ Ġsaved State Instance : ĠBundle ?, ĊĠĠĠ Ġobj : ĠFragment Navigator . Bottom Navigation Ċ ): ĠBottom Navigation Controller Ġ{ ĊĠĠĠ Ġval Ġfragment Saved State Ġ= Ġsaved State Instance ĊĠĠĠĠĠĠĠ Ġ?: Ġif Ġ( fragment Ġis ĠValue Fragment ) Ġfragment . get Bottom Navigation State () Ġelse Ġnull ĊĊĠĠĠ Ġval Ġview Ġ= Ġfragment . require View () ĊĊĠĠĠ Ġval Ġimpl Ġ= ĠBottom Navigation Impl ( ĊĠĠĠĠĠĠĠ Ġnavigator Ġ= Ġnavigator , ĊĠĠĠĠĠĠĠ Ġfragments Ġ= Ġobj . bottom Navigation Fragments , ĊĠĠĠĠĠĠĠ Ġnav View Ġ= Ġview . findViewById ( obj . bottom Navigation View Id ), ĊĠĠĠĠĠĠĠ Ġon Nav Selection Change Ġ= Ġobj :: on Bottom Navigation Selection Changed , ĊĠĠĠĠĠĠĠ Ġnavigation Ġ= Ġobj ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġimpl . onCreate ( fragment Saved State ) ĊĊĠĠĠ Ġfragment . parent FragmentManager . register Fragment Lifecycle Callbacks ( ĊĠĠĠĠĠĠĠ ĠFragment Navigation Lifecycle ( fragment , Ġimpl ) Ġ{ Ġf , Ġbundle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . set Bottom Navigation State ( bundle ) ĊĠĠĠĠĠĠĠ Ġ}, Ġfalse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreturn ĠBottom Navigation Controller ( impl ) Ċ } Ċ Ċ internal Ġfun Ġinstall ( ĊĠĠĠ Ġnavigator : ĠFragment Navigator , ĊĠĠĠ Ġactivity : ĠFragment Activity , ĊĠĠĠ Ġsaved State Instance : ĠBundle ? Ġ= Ġnull , ĊĠĠĠ Ġobj : ĠFragment Navigator . Bottom Navigation Ċ ): ĠBottom Navigation Controller Ġ{ ĊĠĠĠ Ġval Ġimpl Ġ= ĠBottom Navigation Impl ( ĊĠĠĠĠĠĠĠ Ġnavigator Ġ= Ġnavigator , ĊĠĠĠĠĠĠĠ Ġnav View Ġ= Ġactivity . findViewById ( obj . bottom Navigation View Id ), ĊĠĠĠĠĠĠĠ Ġfragments Ġ= Ġobj . bottom Navigation Fragments , ĊĠĠĠĠĠĠĠ Ġon Nav Selection Change Ġ= Ġobj :: on Bottom Navigation Selection Changed , ĊĠĠĠĠĠĠĠ Ġnavigation Ġ= Ġobj ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġimpl . onCreate ( saved State Instance ) ĊĊĠĠĠ Ġactivity . application . register Activity Lifecycle Callbacks ( ĊĠĠĠĠĠĠĠ ĠActivity Navigation Lifecycle ( activity , Ġimpl ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreturn ĠBottom Navigation Controller ( impl ) Ċ }