@@ -6,25 +6,45 @@ namespace Android.Support.CustomTabs
66 public partial class CustomTabsClient
77 {
88 public delegate void OnNavigationEventDelegate ( int navigationEvent , Bundle extras ) ;
9+ public delegate void ExtraCallbackDelegate ( string callbackName , Bundle args ) ;
910
10- public CustomTabsSession NewSession ( OnNavigationEventDelegate callback )
11+ public CustomTabsSession NewSession ( OnNavigationEventDelegate onNavigationEventHandler )
1112 {
12- return NewSession ( new CustomTabsCallbackImpl ( callback ) ) ;
13+ return NewSession ( new CustomTabsCallbackImpl ( onNavigationEventHandler ) ) ;
14+ }
15+
16+ public CustomTabsSession NewSession ( OnNavigationEventDelegate onNavigationEventHandler , ExtraCallbackDelegate extraCallbackHandler )
17+ {
18+ return NewSession ( new CustomTabsCallbackImpl ( onNavigationEventHandler , extraCallbackHandler ) ) ;
1319 }
1420
1521 internal class CustomTabsCallbackImpl : CustomTabsCallback
1622 {
17- OnNavigationEventDelegate callback ;
23+ OnNavigationEventDelegate onNavigationEventHandler ;
24+ ExtraCallbackDelegate extraCallbackHandler ;
25+
26+
27+ public CustomTabsCallbackImpl ( OnNavigationEventDelegate onNavigationEventHandler )
28+ {
29+ this . onNavigationEventHandler = onNavigationEventHandler ;
30+ }
31+
32+ public CustomTabsCallbackImpl ( OnNavigationEventDelegate onNavigationEventHandler , ExtraCallbackDelegate extraCallbackHandler )
33+ {
34+ this . onNavigationEventHandler = onNavigationEventHandler ;
35+ this . extraCallbackHandler = extraCallbackHandler ;
36+ }
1837
19- public CustomTabsCallbackImpl ( OnNavigationEventDelegate callback )
38+ public override void OnNavigationEvent ( int navigationEvent , Bundle extras )
2039 {
21- this . callback = callback ;
40+ if ( onNavigationEventHandler != null )
41+ onNavigationEventHandler ( navigationEvent , extras ) ;
2242 }
2343
24- public void OnNavigationEvent ( int navigationEvent , Bundle extras )
44+ public override void ExtraCallback ( string callbackName , Bundle args )
2545 {
26- if ( callback != null )
27- callback ( navigationEvent , extras ) ;
46+ if ( extraCallbackHandler != null )
47+ extraCallbackHandler ( callbackName , args ) ;
2848 }
2949 }
3050 }
0 commit comments