package Ġcom . github . mb arr ben . mov ied b . navigation Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . navigation . compose . Named Nav Argument Ċ import Ġcom . github . mb arr ben . mov ied b . movies . domain . Movie Ċ Ċ interface ĠNavigation Directions Ġ{ ĊĠĠĠ Ġval Ġroute : ĠString ĊĠĠĠ Ġval Ġarguments : ĠList < Named Nav Argument > Ċ } Ċ Ċ sealed Ġclass ĠNavigation ( ĊĠĠĠ Ġval Ġdestination : ĠString , Ċ ) Ġ{ ĊĠĠĠ Ġabstract Ġval Ġbundle : ĠBundle ĊĊĠĠĠ Ġobject ĠDefault Ġ: ĠNavigation (""), ĠNavigation Directions Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġroute Ġ= Ġdestination ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġarguments : ĠList < Named Nav Argument > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġbundle : ĠBundle Ġ= ĠBundle . EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠMov ies Ġ: ĠNavigation (" movies "), ĠNavigation Directions Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġroute Ġ= Ġdestination ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġarguments : ĠList < Named Nav Argument > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġbundle : ĠBundle Ġ= ĠBundle . EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠDetail ( val Ġmovie : ĠMovie ) Ġ: ĠNavigation (" detail / movie ") Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġbundle : ĠBundle Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ( KEY _ MOV IE , Ġmovie ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ: ĠNavigation Directions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ MOV IE Ġ= Ġ" movie " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġroute Ġ= Ġ" detail /{ $ KEY _ MOV IE }" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠParcel able Ġarguments Ġstill Ġnot Ġvery Ġwell Ġsupported ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġoverride Ġval Ġarguments Ġ= ĠlistOf ( nav Argument ( KEY _ MOV IE ) Ġ{ Ġtype Ġ= ĠNav Type . Parcelable Type ( Movie :: class . java ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġarguments : ĠList < Named Nav Argument > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }