/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . navigation . dynamic features Ċ Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . navigation . Nav Destination Dsl Ċ import Ġandroidx . navigation . Nav Graph Ċ import Ġandroidx . navigation . Nav Graph Builder Ċ import Ġandroidx . navigation . Navigator Provider Ċ import Ġandroidx . navigation . dynamic features . Dynamic Activity Navigator . Destination Ċ import Ġandroidx . navigation . get Ċ Ċ /** Ċ Ġ* ĠConstruct Ġa Ġnew Ġ[ Dynamic Graph Navigator . Dynamic Nav Graph ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġid ĠNav Graph Ġid . Ċ Ġ* Ġ@ param Ġstart Destination ĠId Ġstart Ġdestination Ġin Ġthe Ġgraph Ċ Ġ* Ġ@ param Ġbuilder ĠAnother Ġbuilder Ġfor Ġchaining . Ċ Ġ*/ Ċ inline Ġfun ĠNavigator Provider . navigation ( ĊĠĠĠ Ġ@ Id Res Ġid : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġ@ Id Res Ġstart Destination : ĠInt , ĊĠĠĠ Ġbuilder : ĠDynamic Nav Graph Builder . () Ġ-> ĠUnit Ċ ) Ġ= ĠDynamic Nav Graph Builder ( ĊĠĠĠ Ġthis , ĊĠĠĠ Ġid , ĊĠĠĠ Ġstart Destination Ċ ). apply ( builder ). build () Ċ Ċ /** Ċ Ġ* ĠConstruct Ġa Ġnested Ġ[ Dynamic Graph Navigator . Dynamic Nav Graph ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġid ĠNav Graph Ġid . Ċ Ġ* Ġ@ param Ġstart Destination ĠId Ġstart Ġdestination Ġin Ġthe Ġgraph Ċ Ġ* Ġ@ param Ġbuilder ĠAnother Ġbuilder Ġfor Ġchaining . Ċ Ġ*/ Ċ inline Ġfun ĠDynamic Nav Graph Builder . navigation ( ĊĠĠĠ Ġ@ Id Res Ġid : ĠInt , ĊĠĠĠ Ġ@ Id Res Ġstart Destination : ĠInt , ĊĠĠĠ Ġbuilder : ĠDynamic Nav Graph Builder . () Ġ-> ĠUnit Ċ ) Ġ= Ġdestination ( ĊĠĠĠ ĠDynamic Nav Graph Builder ( ĊĠĠĠĠĠĠĠ Ġprovider , ĊĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠ Ġstart Destination ĊĠĠĠ Ġ). apply ( builder ) Ċ ) Ċ Ċ /** Ċ Ġ* ĠDSL Ġfor Ġconstructing Ġa Ġnew Ġ[ Dynamic Graph Navigator . Dynamic Nav Graph ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġprovider Ġ[ Navigator Provider ] Ġto Ġuse . Ċ Ġ* Ġ@ param Ġid ĠNav Graph Ġid . Ċ Ġ* Ġ@ param Ġstart Destination ĠId Ġstart Ġdestination Ġin Ġthe Ġgraph Ċ Ġ*/ Ċ @ Nav Destination Dsl Ċ class ĠDynamic Nav Graph Builder ( ĊĠĠĠ Ġprovider : ĠNavigator Provider , ĊĠĠĠ Ġ@ Id Res Ġid : ĠInt , ĊĠĠĠ Ġ@ Id Res Ġprivate Ġvar Ġstart Destination : ĠInt Ċ ) Ġ: ĠNav Graph Builder ( provider , Ġid , Ġstart Destination ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġmodule Ġname Ġof Ġthis Ġ[ Destination ]' s Ġdynamic Ġfeature Ġmodule . ĠThis Ġhas Ġto Ġbe Ġthe ĊĠĠĠĠ Ġ* Ġsame Ġas Ġdefined Ġin Ġthe Ġdynamic Ġfeature Ġmodule 's ĠAndroid Manifest . xml Ġfile . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar ĠmoduleName : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠID Ġof Ġthe Ġdestination Ġdisplayed Ġduring Ġmodule Ġinstallation . ĠThis Ġgenerally Ġdoes ĊĠĠĠĠ Ġ* Ġnot Ġneed Ġto Ġbe Ġset , Ġbut Ġis Ġinstead Ġfilled Ġin Ġby Ġthe ĠNav Host Ġvia ĊĠĠĠĠ Ġ* Ġ[ Dynamic Graph Navigator . install Default Progress Destination ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġprogress Destination : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġ[ Dynamic Graph Navigator . Dynamic Nav Graph ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠNav Graph Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . build (). also Ġ{ Ġnav Graph Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nav Graph Ġis ĠDynamic Graph Navigator . Dynamic Nav Graph ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Graph . moduleName Ġ= ĠmoduleName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Graph . progress Destination Ġ= Ġprogress Destination ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress Destination Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Graph Navigator : ĠDynamic Graph Navigator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider [ Dynamic Graph Navigator :: class ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Graph Navigator . dest inations Without Default Progress Destination ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( nav Graph ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ