package Ġcom . air bnb . dee plink dispatch Ċ Ċ import Ġcom . air bnb . dee plink dispatch . test . Source Ċ import Ġorg . junit . Test Ċ Ċ class ĠDeep Link Processor K sp Test Ġ: ĠBase Deep Link Processor Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcustom Web Deep Link Java Ġ= ĠSource . Java Source ( ĊĠĠĠĠĠĠĠ Ġ" com . example . Web Deep Link ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link Spec ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Spec ( prefix Ġ= Ġ{ Ġ" http :// ", Ġ" https :// "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠWeb Deep Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString [] Ġvalue (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġcustom App Deep Link Java Ġ= ĠSource . Java Source ( ĊĠĠĠĠĠĠĠ Ġ" com . example . App Deep Link ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link Spec ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Spec ( prefix Ġ= Ġ{ Ġ" example ://" Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠApp Deep Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString [] Ġvalue (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest With No Class () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Dee plink Method Ġ= ĠSource . Kotlin Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample No Class File . kt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġpackage Ġcom . example ĊĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Context ĊĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Intent ĊĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link ĊĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link Handler ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ( ĠSample Module :: class Ġ) ĊĠĠĠĠĠĠĠ Ġclass ĠActivity Ġ{} ĊĊĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// example . com / no Class Test ") ĊĠĠĠĠĠĠĠ Ġfun Ġintent For In quiry Detail Fragment ( context : ĠContext ) Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , Ġsample Dee plink Method , Ġfake Base Dee plink Delegate ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincremental Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// example . com / no Class Test ", ĠclassName Ġ= Ġ" com . example . Sample No Class File Kt ", Ġmethod Ġ= Ġ" intent For In quiry Detail Fragment ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Files Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Deep Link Delegate . java " Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Base Deep Link Delegate ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . String ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . util . Arrays ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . util . Map ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfinal Ġclass ĠDeep Link Delegate Ġextends ĠBase Deep Link Delegate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠDeep Link Delegate ( Sample Module Registry Ġsample Module Registry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Arrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Module Registry ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠDeep Link Delegate ( Sample Module Registry Ġsample Module Registry , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap < String , ĠString > Ġconfigurable Path Segment Replacement s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Arrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Module Registry ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurable Path Segment Replacement s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Module Registry . java " Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Base Registry ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . base . Utils ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . String ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfinal Ġclass ĠSample Module Registry Ġextends ĠBase Registry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠSample Module Registry () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Utils . read Match Index From Strings ( Ġnew ĠString [] Ġ{ match Index 0 (), Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew ĠString []{ }); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġstatic ĠString Ġmatch Index 0 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"\ u 0 0 0 1 \ u 0 0 0 1 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 9 6 r \ u 0 0 0 2 \ u 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 8 8 air bnb \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 u example . com \ b \ u 0 0 0 b \ u 0 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 no Class Test \ u 0 0 0 0 Ġair bnb :// example . com / no Class Test \ u 0 0 0 0 \ u 0 0 1 f com . example . Sample No Class File Kt \ u 0 0 1 e intent For In quiry Detail Fragment "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest With Kotlin Source () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Activity Kotlin Ġ= ĠSource . Kotlin Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Activity . kt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link Handler ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . core . app . Task Stack Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Intent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . example . Sample Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// example . com / deep Link ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ App Deep Link ( Ġ" example . com / deep Link "," example . com / another ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Web Deep Link ( value Ġ= ĠarrayOf (" example . com / deep Link "," example . com / another ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ( ĠSample Module :: class Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠActivity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject ĠDeep Links Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// intent Method /{ var 1 }/{ var 2 }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġintent From Two Path With Two Params ( context : ĠContext ) Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// task Stack Builder Method /{ ar bitrary Number }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġdee plink One Parameter ( context : ĠContext ) Ġ= ĠTask Stack Builder . create ( context ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Web Deep Link ( Ġ" example . com / method 1 "," example . com / method 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġweb Link Method ( context : ĠContext ) Ġ= ĠTask Stack Builder . create ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom App Deep Link Java , Ġcustom Web Deep Link Java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , Ġsample Activity Kotlin , Ġfake Base Dee plink Delegate ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . App Deep Link ", Ġ" com . example . Web Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . App Deep Link ", Ġ" com . example . Web Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincremental Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// intent Method /{ var 1 }/{ var 2 }", ĠclassName Ġ= Ġ" com . example . Activity \$ Deep Links ", Ġmethod Ġ= Ġ" intent From Two Path With Two Params "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// task Stack Builder Method /{ ar bitrary Number }", ĠclassName Ġ= Ġ" com . example . Activity \$ Deep Links ", Ġmethod Ġ= Ġ" dee plink One Parameter "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" example :// example . com / another ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" example :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / another ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / method 1 ", ĠclassName Ġ= Ġ" com . example . Activity \$ Deep Links ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / method 2 ", ĠclassName Ġ= Ġ" com . example . Activity \$ Deep Links ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / another ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / method 1 ", ĠclassName Ġ= Ġ" com . example . Activity \$ Deep Links ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / method 2 ", ĠclassName Ġ= Ġ" com . example . Activity \$ Deep Links ", Ġmethod Ġ= Ġ" web Link Method ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Files Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Deep Link Delegate . java " Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Base Deep Link Delegate ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . String ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . util . Arrays ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . util . Map ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfinal Ġclass ĠDeep Link Delegate Ġextends ĠBase Deep Link Delegate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠDeep Link Delegate ( Sample Module Registry Ġsample Module Registry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Arrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Module Registry ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠDeep Link Delegate ( Sample Module Registry Ġsample Module Registry , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap < String , ĠString > Ġconfigurable Path Segment Replacement s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Arrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Module Registry ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurable Path Segment Replacement s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Module Registry . java " Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Base Registry ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . base . Utils ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . String ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfinal Ġclass ĠSample Module Registry Ġextends ĠBase Registry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠSample Module Registry () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Utils . read Match Index From Strings ( Ġnew ĠString [] Ġ{ match Index 0 (), Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew ĠString []{ }); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġstatic ĠString Ġmatch Index 0 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"\ u 0 0 0 1 \ u 0 0 0 1 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 4 Ã » r \ u 0 0 0 2 \ u 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 \ u 0 0 8 ca ir bnb \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 F example . com \ b \ b \ u 0 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 da ir bnb :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ u 0 0 0 4 \ f \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 8 0 intent method \ u 0 0 1 8 \ u 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 r { var 1 }\ u 0 0 1 8 \ u 0 0 0 6 \ u 0 0 0 0 d \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 { var 2 }\ u 0 0 0 0 # air bnb :// intent Method /{ var 1 }/{ var 2 }\ u 0 0 0 0 \ u 0 0 1 e com . example . Activity ${ "$ "} Deep Links \ u 0 0 1 e intent From Two Path With Two Params \ u 0 0 0 4 \ u 0 0 1 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 8 1 task stack builder method \ u 0 0 1 8 \ u 0 0 1 1 \ u 0 0 0 0 h \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 { ar bitrary Number }\ u 0 0 0 0 1 air bnb :// task Stack Builder Method /{ ar bitrary Number }\ u 0 0 0 0 \ u 0 0 1 e com . example . Activity ${ "$ "} Deep Links \ u 0 0 1 4 dee plink One Parameter \ u 0 0 0 2 \ u 0 0 0 7 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 9 f example \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 8 c example . com \ b \ u 0 0 0 7 \ u 0 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 another \ u 0 0 0 0 \ u 0 0 1 dex ample :// example . com / another \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ b \ b \ u 0 0 0 0 7 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 e example :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ u 0 0 0 2 \ u 0 0 0 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 K http \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 8 example . com \ b \ u 0 0 0 7 \ u 0 0 0 0 3 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 another \ u 0 0 0 0 \ u 0 0 1 a http :// example . com / another \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ b \ b \ u 0 0 0 0 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 b http :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ b \ u 0 0 0 7 \ u 0 0 0 0 J \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 1 \ u 0 0 0 0 \ u 0 0 1 a http :// example . com / method 1 \ u 0 0 0 0 \ u 0 0 1 e com . example . Activity ${ "$ "} Deep Links \ r web Link Method \ b \ u 0 0 0 7 \ u 0 0 0 0 J \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 2 \ u 0 0 0 0 \ u 0 0 1 a http :// example . com / method 2 \ u 0 0 0 0 \ u 0 0 1 e com . example . Activity ${ "$ "} Deep Links \ r web Link Method \ u 0 0 0 2 \ u 0 0 0 5 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 O https \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 < example . com \ b \ u 0 0 0 7 \ u 0 0 0 0 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 another \ u 0 0 0 0 \ u 0 0 1 b https :// example . com / another \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ b \ b \ u 0 0 0 0 5 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 ch ttp s :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 4 com . example . Activity \ u 0 0 0 0 \ b \ u 0 0 0 7 \ u 0 0 0 0 K \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 1 \ u 0 0 0 0 \ u 0 0 1 b https :// example . com / method 1 \ u 0 0 0 0 \ u 0 0 1 e com . example . Activity ${ "$ "} Deep Links \ r web Link Method \ b \ u 0 0 0 7 \ u 0 0 0 0 K \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 2 \ u 0 0 0 0 \ u 0 0 1 b https :// example . com / method 2 \ u 0 0 0 0 \ u 0 0 1 e com . example . Activity ${ "$ "} Deep Links \ r web Link Method "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest K sp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Activity Java Ġ= ĠSource . Java Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . Sample Activity ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link Handler ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Context ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . core . app . Task Stack Builder ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Intent ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . example . Sample Module ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// example . com / deep Link ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ App Deep Link ({" example . com / deep Link "," example . com / another "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Web Deep Link ({" example . com / deep Link "," example . com / another "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ({ ĠSample Module . class Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSample Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// intent Method /{ var 1 }/{ var 2 }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic ĠIntent Ġintent From Two Path With Two Params ( Context Ġcontext ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew ĠIntent (); ĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// task Stack Builder Method /{ ar bitrary Number }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic ĠTask Stack Builder Ġdee plink One Parameter ( Context Ġcontext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTask Stack Builder . create ( context ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Web Deep Link ({" example . com / method 1 "," example . com / method 2 "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic ĠTask Stack Builder Ġweb Link Method ( Context Ġcontext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTask Stack Builder . create ( context ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom App Deep Link Java , Ġcustom Web Deep Link Java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , Ġsample Activity Java , Ġfake Base Dee plink Delegate ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . App Deep Link ", Ġ" com . example . Web Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . App Deep Link ", Ġ" com . example . Web Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincremental Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// intent Method /{ var 1 }/{ var 2 }", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġ" intent From Two Path With Two Params "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" air bnb :// task Stack Builder Method /{ ar bitrary Number }", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġ" dee plink One Parameter "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" example :// example . com / another ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" example :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / another ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / method 1 ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" http :// example . com / method 2 ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / another ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / deep Link ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / method 1 ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( uri Template Ġ= Ġ" https :// example . com / method 2 ", ĠclassName Ġ= Ġ" com . example . Sample Activity ", Ġmethod Ġ= Ġ" web Link Method "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Files Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Deep Link Delegate . java " Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Base Deep Link Delegate ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . String ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . util . Arrays ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . util . Map ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfinal Ġclass ĠDeep Link Delegate Ġextends ĠBase Deep Link Delegate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠDeep Link Delegate ( Sample Module Registry Ġsample Module Registry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Arrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Module Registry ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠDeep Link Delegate ( Sample Module Registry Ġsample Module Registry , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap < String , ĠString > Ġconfigurable Path Segment Replacement s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Arrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Module Registry ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurable Path Segment Replacement s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Module Registry . java " Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Base Registry ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . base . Utils ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . String ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfinal Ġclass ĠSample Module Registry Ġextends ĠBase Registry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠSample Module Registry () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( Utils . read Match Index From Strings ( Ġnew ĠString [] Ġ{ match Index 0 (), Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew ĠString []{ }); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġstatic ĠString Ġmatch Index 0 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"\ u 0 0 0 1 \ u 0 0 0 1 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 5 \ rr \ u 0 0 0 2 \ u 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 \ u 0 0 8 a air bnb \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 L example . com \ b \ b \ u 0 0 0 0 < \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 da ir bnb :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ u 0 0 0 4 \ f \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 | intent method \ u 0 0 1 8 \ u 0 0 0 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 n { var 1 }\ u 0 0 1 8 \ u 0 0 0 6 \ u 0 0 0 0 `\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 { var 2 }\ u 0 0 0 0 # air bnb :// intent Method /{ var 1 }/{ var 2 }\ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 1 e intent From Two Path With Two Params \ u 0 0 0 4 \ u 0 0 1 6 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 } task stack builder method \ u 0 0 1 8 \ u 0 0 1 1 \ u 0 0 0 0 d \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 { ar bitrary Number }\ u 0 0 0 0 1 air bnb :// task Stack Builder Method /{ ar bitrary Number }\ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 1 4 dee plink One Parameter \ u 0 0 0 2 \ u 0 0 0 7 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 Â « example \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 9 8 example . com \ b \ u 0 0 0 7 \ u 0 0 0 0 < \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 another \ u 0 0 0 0 \ u 0 0 1 dex ample :// example . com / another \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ b \ b \ u 0 0 0 0 =\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 e example :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ u 0 0 0 2 \ u 0 0 0 4 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 O http \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 < example . com \ b \ u 0 0 0 7 \ u 0 0 0 0 9 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 another \ u 0 0 0 0 \ u 0 0 1 a http :// example . com / another \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ b \ b \ u 0 0 0 0 :\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 b http :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ b \ u 0 0 0 7 \ u 0 0 0 0 F \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 1 \ u 0 0 0 0 \ u 0 0 1 a http :// example . com / method 1 \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ r web Link Method \ b \ u 0 0 0 7 \ u 0 0 0 0 F \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 2 \ u 0 0 0 0 \ u 0 0 1 a http :// example . com / method 2 \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ r web Link Method \ u 0 0 0 2 \ u 0 0 0 5 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 S https \ u 0 0 0 4 \ u 0 0 0 b \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 1 @ example . com \ b \ u 0 0 0 7 \ u 0 0 0 0 :\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 another \ u 0 0 0 0 \ u 0 0 1 b https :// example . com / another \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ b \ b \ u 0 0 0 0 ;\ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 deep Link \ u 0 0 0 0 \ u 0 0 1 ch ttp s :// example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 \ b \ u 0 0 0 7 \ u 0 0 0 0 G \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 1 \ u 0 0 0 0 \ u 0 0 1 b https :// example . com / method 1 \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ r web Link Method \ b \ u 0 0 0 7 \ u 0 0 0 0 G \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 method 2 \ u 0 0 0 0 \ u 0 0 1 b https :// example . com / method 2 \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ r web Link Method "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ