airbnb / DeepLinkDispatch

A simple, annotation-based library for making deep link handling better on Android
http://nerds.airbnb.com/deeplinkdispatch/
4.37k stars 407 forks source link

Match deterministically across registries #294

Closed rossbacher closed 4 years ago

rossbacher commented 4 years ago

Changed code so that all registries (there is one registry per module) will be checked for matches and the same rule (concrete > placeholder > configurable path segment rule is applied for all matches.

This is accomplished by sorting the list of matched url templates by "concreteness" (based on where it has placeholders/configurable path segments) The same way this is done while matching inside an index

Require the mapping for configurable path segments given to the DeeplinkDelegate to not just match the configurable path segments when given but also when not given.

rossbacher commented 4 years ago

I agree with the better duplicate handling during build, but that should be a different task as there are several issue with that. One of them being that right now it cannot differentiate between links with differently named placeholders that duplicate otherwise. e.g. http://example.com/path1/{placeholder1} and http://example.com/path1/{placeholder2}

The idea is that when we generate the Delegate we can walk all the indices and find those duplications