Commit 8d856d7
Added a new concept of deep link handlers. (#330)
* Add support for deeplink handlers to mach index.
* Rename .java to .kt
* Convert BaseDeepLinkDelegate to Kotlin.
* Add new concept of DeepLinkHandler.kt
* Update handler test to test several success and failure scenarios.
* Added documentation
* Cleanup, fixed Java support and added tests.
Better error handling in the processor.
Added support for throwing on type conversion errors.
* Cleanup
* Fix Proguard/R8 config for new requirements.
Add Proguard/R8 config to sample release build type.
* type fix
* Fixed keep rules and tested with obfuscation.
Do not use InBetweenDepLinkHandler on Java test.
Cleaner way to get the type of the args object that only works because of the way we define these here.
* Use lambdas to handle type conversion issues to give implementing apps more flexibility.
* Fixed formatting for ktlint
* Moved DeepLinkHandler<T> from abstract class to interface.
Changed behavior so that the arguments class must only contain a subset of all placeholders or query elements in the deep link.
Added support for custom type converters.
Updated reflection logic to find arg type to work on implemented interfaces and extended classes that implement the interface.
Moved type conversion error handlers to BaseDeepLinkDelegate.kt.
Rewrote project speciffic DeepLinkDelegate creation fully and support more constructor overrides.
Added updated tests for new features.
Added error when havong two @com.airbnb.deeplinkdelegate.DeepLinkHandler annotated classes in one package. Added test for that error case.
* Add type conversion support for generic types.
* Fixed R8/Proguard rule
Added support for no parameter class.
Added logging to handlers
Cleanup removed warnings.
* Fixed R8/Proguard rule
Added support for no parameter class.
Added logging to handlers
Cleanup removed warnings.
Moved type converters to functional interface so that the suopported set can change during runtime.
Renamed parameters to deepLinkArgs
* KSP to 1.0
* Keep registries public.
* fix handling of null returned from annotated methods.
added unit tests for the behavior.
* Update interface for deep link handler argument type conversion errors.
Add handler and handler arg class to DeepLinkResult.
Fix issue when handler was implemented on extension class plus added tests for this and further removed extension case.
* Cleanup documentation
Co-authored-by: Andreas Rossbacher <andreas.rossbacher@airbnb.com>1 parent 64b1834 commit 8d856d7
File tree
49 files changed
+4403
-1004
lines changed- deeplinkdispatch-base/src
- main/java/com/airbnb/deeplinkdispatch
- base
- handler
- test/java/com/airbnb/deeplinkdispatch
- deeplinkdispatch-processor/src
- main/java/com/airbnb/deeplinkdispatch
- test/java/com/airbnb/deeplinkdispatch
- deeplinkdispatch
- src
- main/java/com/airbnb/deeplinkdispatch
- handler
- test/java/com/airbnb/deeplinkdispatch
- sample-benchmark
- sample-kapt-library
- sample
- src
- main
- java/com/airbnb/deeplinkdispatch/sample
- handler
- typeconversion
- test/java/com/airbnb/deeplinkdispatch/sample
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
49 files changed
+4403
-1004
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
51 | 130 | | |
52 | 131 | | |
53 | 132 | | |
| |||
604 | 683 | | |
605 | 684 | | |
606 | 685 | | |
607 | | - | |
| 686 | + | |
608 | 687 | | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | | - | |
614 | | - | |
615 | | - | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
616 | 692 | | |
617 | 693 | | |
618 | 694 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
34 | 40 | | |
35 | 41 | | |
36 | 42 | | |
| |||
Lines changed: 29 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
43 | 51 | | |
44 | 52 | | |
45 | 53 | | |
| |||
78 | 86 | | |
79 | 87 | | |
80 | 88 | | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
| 89 | + | |
89 | 90 | | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
94 | 95 | | |
95 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
96 | 108 | | |
97 | 109 | | |
98 | 110 | | |
| |||
103 | 115 | | |
104 | 116 | | |
105 | 117 | | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | 118 | | |
Lines changed: 41 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
| 22 | + | |
| 23 | + | |
21 | 24 | | |
22 | 25 | | |
23 | 26 | | |
| |||
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| 35 | + | |
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
35 | 39 | | |
| 40 | + | |
| 41 | + | |
36 | 42 | | |
37 | 43 | | |
38 | 44 | | |
| |||
55 | 61 | | |
56 | 62 | | |
57 | 63 | | |
| 64 | + | |
58 | 65 | | |
59 | 66 | | |
60 | 67 | | |
| |||
91 | 98 | | |
92 | 99 | | |
93 | 100 | | |
94 | | - | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
95 | 104 | | |
96 | 105 | | |
97 | 106 | | |
| |||
105 | 114 | | |
106 | 115 | | |
107 | 116 | | |
| 117 | + | |
108 | 118 | | |
109 | 119 | | |
110 | 120 | | |
| |||
301 | 311 | | |
302 | 312 | | |
303 | 313 | | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
304 | 335 | | |
305 | 336 | | |
306 | 337 | | |
| |||
454 | 485 | | |
455 | 486 | | |
456 | 487 | | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
457 | 492 | | |
458 | 493 | | |
459 | 494 | | |
| |||
463 | 498 | | |
464 | 499 | | |
465 | 500 | | |
| 501 | + | |
466 | 502 | | |
467 | 503 | | |
468 | 504 | | |
| |||
668 | 704 | | |
669 | 705 | | |
670 | 706 | | |
671 | | - | |
| 707 | + | |
672 | 708 | | |
673 | 709 | | |
674 | 710 | | |
| |||
726 | 762 | | |
727 | 763 | | |
728 | 764 | | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
729 | 768 | | |
730 | 769 | | |
731 | 770 | | |
| |||
0 commit comments