react-native-navigation 7.24.3 → 7.25.0-snapshot.543

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/lib/android/app/build.gradle +12 -9
  2. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +7 -9
  3. package/lib/android/app/src/main/java/com/reactnativenavigation/options/BottomTabOptions.java +4 -0
  4. package/lib/android/app/src/main/java/com/reactnativenavigation/options/Options.java +2 -0
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/options/OverlayOptions.java +3 -2
  6. package/lib/android/app/src/main/java/com/reactnativenavigation/options/OverlayOptions.kt +31 -0
  7. package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutInsets.kt +44 -0
  8. package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutOptions.kt +71 -0
  9. package/lib/android/app/src/main/java/com/reactnativenavigation/options/parsers/JSONParser.java +0 -2
  10. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/PrimitiveExt.kt +9 -0
  11. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +2 -1
  12. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +31 -4
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +6 -13
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +32 -10
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java +4 -0
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +25 -6
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManager.kt +104 -33
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/parent/ParentController.java +86 -9
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuController.java +12 -0
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +18 -1
  21. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +51 -0
  22. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonController.kt +7 -1
  23. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +23 -7
  24. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +0 -1
  25. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +24 -3
  26. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabs.java +29 -1
  27. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainer.kt +1 -0
  28. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsLayout.java +10 -1
  29. package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentLayout.java +10 -2
  30. package/lib/android/app/src/main/java/com/reactnativenavigation/views/overlay/AttachedOverlayContainer.kt +69 -0
  31. package/lib/android/app/src/main/java/com/reactnativenavigation/views/overlay/ViewTooltip.java +921 -0
  32. package/lib/android/app/src/main/java/com/reactnativenavigation/views/sidemenu/SideMenuRoot.java +9 -1
  33. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/StackLayout.java +14 -4
  34. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBar.java +0 -1
  35. package/lib/android/app/src/main/java/com/reactnativenavigation/views/toptabs/TopTabsStyleHelper.java +0 -1
  36. package/lib/dist/src/interfaces/Options.d.ts +34 -0
  37. package/lib/ios/RNNBasePresenter.m +17 -0
  38. package/lib/ios/RNNBottomTabsController.m +1 -0
  39. package/lib/ios/RNNComponentViewController.m +5 -0
  40. package/lib/ios/RNNLayoutOptions.h +2 -1
  41. package/lib/ios/RNNLayoutOptions.m +4 -0
  42. package/lib/ios/RNNStackPresenter.m +1 -0
  43. package/lib/src/interfaces/Options.ts +38 -0
  44. package/package.json +3 -1
  45. package/.buildkite/pipeline.yml +0 -59
  46. package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutOptions.java +0 -48
  47. package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +0 -178
  48. package/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +0 -43
  49. package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +0 -23
  50. package/lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java +0 -35
  51. package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +0 -62
  52. package/lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt +0 -8
  53. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/BackDrawable.java +0 -30
  54. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +0 -49
  55. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +0 -18
  56. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleComponentViewController.java +0 -15
  57. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleOverlay.java +0 -54
  58. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +0 -113
  59. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +0 -79
  60. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +0 -18
  61. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestReactView.java +0 -71
  62. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarButtonCreatorMock.java +0 -34
  63. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java +0 -20
  64. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java +0 -20
  65. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +0 -21
  66. package/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +0 -51
  67. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +0 -315
  68. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OrientationOptionsTest.java +0 -81
  69. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TopBarButtonsTest.kt +0 -95
  70. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +0 -122
  71. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +0 -28
  72. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -50
  73. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +0 -64
  74. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -56
  75. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +0 -59
  76. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/SideMenuPresenterTest.java +0 -35
  77. package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java +0 -102
  78. package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java +0 -24
  79. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/AnimationHelper.kt +0 -33
  80. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -241
  81. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +0 -57
  82. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +0 -17
  83. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -78
  84. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +0 -47
  85. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java +0 -60
  86. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/OptionHelper.java +0 -16
  87. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +0 -26
  88. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +0 -19
  89. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +0 -27
  90. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurerTest.kt +0 -357
  91. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleBarHelper.java +0 -54
  92. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +0 -29
  93. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +0 -22
  94. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java +0 -9
  95. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -149
  96. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -206
  97. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +0 -62
  98. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -589
  99. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -173
  100. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AfterInitialTabTest.java +0 -38
  101. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +0 -86
  102. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTabTest.java +0 -31
  103. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/TogetherTest.java +0 -20
  104. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/button/NavigationIconResolverTest.java +0 -78
  105. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +0 -80
  106. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +0 -56
  107. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -216
  108. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -97
  109. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/FragmentCreatorMock.java +0 -34
  110. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java +0 -8
  111. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +0 -33
  112. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorMock.java +0 -40
  113. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -213
  114. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -319
  115. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -367
  116. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -898
  117. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -254
  118. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -108
  119. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -299
  120. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -446
  121. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -77
  122. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -154
  123. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +0 -114
  124. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -241
  125. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1165
  126. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1081
  127. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -61
  128. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -43
  129. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -120
  130. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -432
  131. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -249
  132. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -337
  133. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegateTest.java +0 -68
  134. package/lib/android/app/src/test/java/com/reactnativenavigation/views/OverlayTouchDelegateTest.java +0 -60
  135. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -477
  136. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TopBarTest.java +0 -82
  137. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +0 -109
  138. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreatorFake.kt +0 -36
  139. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +0 -101
  140. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +0 -40
  141. package/lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +0 -1
@@ -12,7 +12,9 @@ import com.reactnativenavigation.R;
12
12
  import com.reactnativenavigation.options.LayoutDirection;
13
13
 
14
14
  import java.util.ArrayList;
15
+ import java.util.HashMap;
15
16
  import java.util.List;
17
+ import java.util.Map;
16
18
 
17
19
  import androidx.annotation.IntRange;
18
20
 
@@ -21,10 +23,11 @@ import static com.reactnativenavigation.utils.ViewUtils.findChildByClass;
21
23
 
22
24
  @SuppressLint("ViewConstructor")
23
25
  public class BottomTabs extends AHBottomNavigation {
26
+ public final static int TAB_NOT_FOUND = -1;
24
27
  private boolean itemsCreationEnabled = true;
25
28
  private boolean shouldCreateItems = true;
26
29
  private List<Runnable> onItemCreationEnabled = new ArrayList<>();
27
-
30
+ private final Map<String,Integer> idPositionMapping = new HashMap<>();
28
31
  public BottomTabs(Context context) {
29
32
  super(context);
30
33
  setId(R.id.bottomTabs);
@@ -132,4 +135,29 @@ public class BottomTabs extends AHBottomNavigation {
132
135
  private boolean hasItemsAndIsMeasured(int w, int h, int oldw, int oldh) {
133
136
  return w != 0 && h != 0 && (w != oldw || h != oldh) && getItemsCount() > 0;
134
137
  }
138
+
139
+
140
+ public void setTagForTabIndex(int index, String tag) {
141
+ if(tag==null){
142
+ String oldTag = null;
143
+ for(Map.Entry<String,Integer> e: idPositionMapping.entrySet()){
144
+ if(e.getValue() == index){
145
+ oldTag = e.getKey();
146
+ break;
147
+ }
148
+ }
149
+ if(oldTag!=null){
150
+ idPositionMapping.remove(oldTag);
151
+ }
152
+ }else{
153
+ idPositionMapping.put(tag,index);
154
+ }
155
+ }
156
+
157
+ public int getTabIndexByTag(String tag) {
158
+ if(tag!=null && idPositionMapping.containsKey(tag)){
159
+ return idPositionMapping.get(tag);
160
+ }
161
+ return TAB_NOT_FOUND;
162
+ }
135
163
  }
@@ -48,6 +48,7 @@ class BottomTabsContainer(context: Context, val bottomTabs: BottomTabs) : Shadow
48
48
  this.topOutLineView.visibility = View.GONE
49
49
 
50
50
  this.addView(linearLayout, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
51
+
51
52
  }
52
53
 
53
54
  override var shadowRadius: Float
@@ -10,12 +10,21 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout;
10
10
  import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
11
11
  import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
12
12
 
13
+ import com.reactnativenavigation.views.overlay.AttachedOverlayContainer;
14
+
13
15
  public class BottomTabsLayout extends CoordinatorLayout {
14
16
 
15
17
  private BottomTabsContainer bottomTabsContainer;
18
+ final private AttachedOverlayContainer attachedOverlayContainer ;
16
19
 
17
20
  public BottomTabsLayout(Context context) {
18
21
  super(context);
22
+ attachedOverlayContainer=new AttachedOverlayContainer(context);
23
+ this.addView(attachedOverlayContainer, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
24
+ }
25
+
26
+ public AttachedOverlayContainer getAttachedOverlayContainer() {
27
+ return attachedOverlayContainer;
19
28
  }
20
29
 
21
30
  @Override
@@ -33,4 +42,4 @@ public class BottomTabsLayout extends CoordinatorLayout {
33
42
  addView(bottomTabsContainer, lp);
34
43
  this.bottomTabsContainer = bottomTabsContainer;
35
44
  }
36
- }
45
+ }
@@ -4,15 +4,16 @@ import android.annotation.SuppressLint;
4
4
  import android.content.Context;
5
5
  import android.view.MotionEvent;
6
6
  import android.view.ViewGroup;
7
- import android.view.WindowInsets;
8
7
 
9
8
  import com.reactnativenavigation.options.ButtonOptions;
9
+ import com.reactnativenavigation.utils.CoordinatorLayoutUtils;
10
10
  import com.reactnativenavigation.viewcontrollers.viewcontroller.ScrollEventListener;
11
11
  import com.reactnativenavigation.options.Options;
12
12
  import com.reactnativenavigation.options.params.Bool;
13
13
  import com.reactnativenavigation.react.ReactView;
14
14
  import com.reactnativenavigation.react.events.ComponentType;
15
15
  import com.reactnativenavigation.viewcontrollers.stack.topbar.button.ButtonController;
16
+ import com.reactnativenavigation.views.overlay.AttachedOverlayContainer;
16
17
  import com.reactnativenavigation.views.touch.OverlayTouchDelegate;
17
18
 
18
19
  import androidx.coordinatorlayout.widget.CoordinatorLayout;
@@ -25,14 +26,21 @@ public class ComponentLayout extends CoordinatorLayout implements ReactComponent
25
26
  private boolean willAppearSent = false;
26
27
  private ReactView reactView;
27
28
  private final OverlayTouchDelegate touchDelegate;
29
+ final private AttachedOverlayContainer attachedOverlayContainer ;
28
30
 
29
31
  public ComponentLayout(Context context, ReactView reactView) {
30
32
  super(context);
31
33
  this.reactView = reactView;
34
+ attachedOverlayContainer = new AttachedOverlayContainer(context);
32
35
  addView(reactView.asView(), matchParentLP());
36
+ addView(attachedOverlayContainer, CoordinatorLayoutUtils.matchParentLP());
33
37
  touchDelegate = new OverlayTouchDelegate(this, reactView);
34
38
  }
35
39
 
40
+ public AttachedOverlayContainer getAttachedOverlayContainer() {
41
+ return attachedOverlayContainer;
42
+ }
43
+
36
44
  @Override
37
45
  public boolean isReady() {
38
46
  return reactView.isReady();
@@ -109,4 +117,4 @@ public class ComponentLayout extends CoordinatorLayout implements ReactComponent
109
117
  public boolean superOnInterceptTouchEvent(MotionEvent event) {
110
118
  return super.onInterceptTouchEvent(event);
111
119
  }
112
- }
120
+ }
@@ -0,0 +1,69 @@
1
+ package com.reactnativenavigation.views.overlay
2
+
3
+ import android.app.Activity
4
+ import android.content.Context
5
+ import android.graphics.Color
6
+ import android.view.View
7
+ import android.widget.FrameLayout
8
+
9
+ class AttachedOverlayContainer(context: Context) : FrameLayout(context) {
10
+
11
+ init {
12
+ z = Float.MAX_VALUE
13
+ }
14
+
15
+ fun addOverlay(overlayView: View) {
16
+ addView(overlayView)
17
+ }
18
+
19
+ fun addAnchoredView(anchorView: View, overlayView: View, gravity: String): ViewTooltip.TooltipView? {
20
+ return when (gravity) {
21
+ "top" -> {
22
+ showTooltip(overlayView, anchorView, ViewTooltip.Position.TOP)
23
+ }
24
+ "bottom" -> {
25
+ showTooltip(overlayView, anchorView, ViewTooltip.Position.BOTTOM)
26
+ }
27
+ "left" -> {
28
+ showTooltip(overlayView, anchorView, ViewTooltip.Position.LEFT)
29
+ }
30
+ "right" -> {
31
+ showTooltip(overlayView, anchorView, ViewTooltip.Position.RIGHT)
32
+ }
33
+ else -> {
34
+ showTooltip(overlayView, anchorView, ViewTooltip.Position.TOP)
35
+ }
36
+ }
37
+
38
+ }
39
+
40
+
41
+ private fun showTooltip(
42
+ tooltipView: View,
43
+ tooltipAnchorView: View,
44
+ pos: ViewTooltip.Position
45
+ ): ViewTooltip.TooltipView {
46
+ val tooltipViewContainer = ViewTooltip
47
+ .on(context as Activity, this, tooltipAnchorView)
48
+ .autoHide(false, 5000)
49
+ .clickToHide(false)
50
+ .align(ViewTooltip.ALIGN.CENTER)
51
+ .padding(0, 0, 0, 0)
52
+ .customView(tooltipView)
53
+ .distanceWithView(0)
54
+ .color(Color.WHITE)
55
+ .bubble(false)
56
+ .arrowHeight(0)
57
+ .arrowWidth(0)
58
+ .position(pos)
59
+
60
+ .onDisplay {
61
+ }
62
+ .onHide {
63
+
64
+ }
65
+ .show()
66
+ return tooltipViewContainer
67
+ }
68
+
69
+ }