package Ġcom . air bnb . dee plink dispatch Ċ Ċ import Ġcom . air bnb . dee plink dispatch . test . Source Ċ import Ġorg . junit . Test Ċ Ċ class ĠDeep Link Processor Incremental Test Ġ: ĠBase Deep Link Processor Test () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcustom Annotation App Link Ġ= Ġ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 (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġcustom Annotation Placeholder In Scheme Host App Link Ġ= ĠSource . Java Source ( ĊĠĠĠĠĠĠĠ Ġ" com . example . Placeholder Deep Link ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link Spec ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Spec ( prefix Ġ= Ġ{ Ġ" http { scheme } ://{ host } example . com /" Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠPlace holder Deep Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString [] Ġvalue (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġsample Activity With Standard And Custom Deep Link Ġ= ĠSource . Java Source ( ĊĠĠĠĠĠĠĠ Ġ" com . example . Sample Activity ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . air bnb . dee plink dispatch . Deep Link ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// example . com / deep Link ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ App Deep Link ({" example . com / deep Link "," example . com / another "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSample Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġsample Activity With Inner Class Dee plink 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 . Intent ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Context ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ({ ĠSample Module . class Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSample Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġclass ĠInner Class Ġ{ Ġ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// example . com / inner Class Dee plink ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic ĠIntent Ġintent For Deep Link Method ( Context Ġcontext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew ĠIntent (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġsample Activity With Inner Class Dee plink 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 . Intent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . content . Context ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ( Sample Module :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠSample Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠInner Class Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject ĠDeep Links Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link (" air bnb :// example . com / inner Class Dee plink ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġintent For Deep Link Method ( context : ĠContext ) Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġsample Activity With Only Custom Deep Link Ġ= Ġ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 Ġcom . example . Sample Module ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ App Deep Link ({" example . com / deep Link "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ({ ĠSample Module . class Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSample Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġsample Activity With Only Custom Placeholder Deep Link Ġ= Ġ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 Ġcom . example . Sample Module ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Placeholder Deep Link ({" deep Link "}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Deep Link Handler ({ ĠSample Module . class Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSample Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Incremental Processor With Custom Deep Link Registration () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Annotation App Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Activity With Only Custom Deep Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Base Dee plink Delegate ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . App Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . App Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri Template Ġ= Ġ" example :// example . com / deep Link ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġ" com . example . Sample Activity ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 or \ 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 M 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 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 "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Incremental Processor With Custom Deep Link With Place holders Registration () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Annotation Placeholder In Scheme Host App Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Activity With Only Custom Placeholder Deep Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Base Dee plink Delegate ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . Placeholder Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= ĠlistOf (" com . example . Placeholder Deep Link "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri Template Ġ= Ġ" http { scheme } ://{ host } example . com / deep Link ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġ" com . example . Sample Activity ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 8 5 r \ u 0 0 1 2 \ 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 q http { scheme }\ u 0 0 1 4 \ u 0 0 1 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 X { host } example . com \ b \ b \ 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 deep Link \ u 0 0 0 0 ) http { scheme } ://{ host } example . com / deep Link \ u 0 0 0 0 \ u 0 0 1 ac om . example . Sample Activity \ u 0 0 0 0 "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Incremental Processor Without Custom Deep Link Registration () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Annotation App Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Activity With Only Custom Deep Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 0 0 r "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Custom Annotation Missing From Compiler Options ErrorMessage () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Annotation App Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Activity With Standard And Custom Deep Link ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Compile Error ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unable Ġto Ġfind Ġannotation Ġ' com . example . App Deep Link ' Ġyou Ġmust Ġupdate Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"' deep Link . custom Annotations ' Ġwithin Ġthe Ġbuild . gradle " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Inner Class Java Dee plink () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Annotation App Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Activity With Inner Class Dee plink Java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Base Dee plink Delegate , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNeed Ġto Ġdisable Ġfor Ġnow Ġbecause Ġof Ġbug Ġin Ġcompile Ġtesting Ġlib ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / tsch uch ort dev / kotlin - compile - testing / issues / 1 0 5 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Incremental ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Files Ġ= Ġsource Files , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Deep Links Ġ= Ġnull , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K sp Ġ= Ġtrue , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri Template Ġ= Ġ" air bnb :// example . com / inner Class Dee plink ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġ" com . example . Sample Activity \$ Inner Class ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" intent For Deep 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 0 Â £ 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 9 5 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 0 0 8 2 example . com \ b \ u 0 0 1 2 \ 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 inner Class Dee plink \ u 0 0 0 0 ' air bnb :// example . com / inner Class Dee plink \ u 0 0 0 0 % com . example . Sample Activity ${ "\ $ "} Inner Class \ u 0 0 1 7 intent For Deep Link Method "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Inner Class Kotlin Dee plink () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Files Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Annotation App Link , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Activity With Inner Class Dee plink Kotlin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert GeneratedCode ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= Ġresults , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry ClassName Ġ= Ġ" com . example . Sample Module Registry ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Entries Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDeep Link Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri Template Ġ= Ġ" air bnb :// example . com / inner Class Dee plink ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġ" com . example . Sample Activity \$ Inner Class \$ Deep Links ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= Ġ" intent For Deep 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 0 Â Ń 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 9 fair 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 0 0 8 c example . com \ b \ u 0 0 1 2 \ u 0 0 0 0 r \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 \ u 0 0 0 0 inner Class Dee plink \ u 0 0 0 0 ' air bnb :// example . com / inner Class Dee plink \ u 0 0 0 0 / com . example . Sample Activity ${ "$ "} Inner Class ${ "$ "} Deep Links \ u 0 0 1 7 intent For Deep Link Method "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ