package Ġcom . cook pad . w atson Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ Ċ /** Ċ Ġ* ĠWe Ġneed Ġto Ġsubclass ĠNav Host Fragment Ġto Ġtry / catch Ġthe Ġcall Ġto Ġsuper :: on Destroy View Ċ Ġ* Ġas Ġit Ġthrows Ġan ĠIllegalStateException Ġwhen Ġa Ġdeep Ġlink Ġis Ġlaunched Ġstarting Ġfrom Ġversion Ċ Ġ* Ġ 2 . 3 . 0 Ġof Ġthe Ġnavigation Ġcomponent . ĠSpecific ally , Ġit Ġcrashes Ġwhen Ġthe ĠNav Host Fragment Ċ Ġ* Ġtries Ġto Ġdispose Ġitself Ġby Ġfinding Ġits Ġassociated ĠNav Controller Ġand Ġthere Ġis Ġnone . Ċ Ġ*/ Ċ internal Ġclass ĠLen ient Nav Host Fragment Ġ: ĠNav Host Fragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġonly Ġsw allow Ġthe Ġexception Ġwhen Ġit Ġcontains Ġthe Ġmessage Ġrelated Ġwith Ġthe Ġissue Ġthat Ġwe Ġknow . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOtherwise Ġwe Ġre throw , Ġthis Ġis Ġb rit tle Ġas Ġit Ġt ies Ġthe Ġimplementation Ġto Ġa Ġprivate Ġreporting Ġmessage Ġerror , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbut Ġwe Ġprefer Ġthis Ġway Ġto Ġavoid Ġhiding Ġunrelated Ġexceptions . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . message ?. contains (" does Ġnot Ġhave Ġa ĠNav Controller Ġset ") Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġto Ġduplicate Ġhere Ġthe Ġkey Ġas Ġit 's Ġa Ġprivate Ġfield Ġin Ġthe Ġlibrary , ĊĠĠĠĠĠĠĠ Ġ// Ġwhich Ġis Ġb rit tle Ġbut Ġit Ġis Ġwhat Ġit Ġis . ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ GRAPH _ ID Ġ= Ġ" android - support - nav : fragment : graph Id " ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( graph Res Id : ĠInt ): ĠNav Host Fragment Ġ= ĠLen ient Nav Host Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ Ġput Int ( KEY _ GRAPH _ ID , Ġgraph Res Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ