react-native-navigation 7.24.3 → 7.25.0-snapshot.552
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.
- package/lib/android/app/build.gradle +12 -9
- package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +7 -9
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/BottomTabOptions.java +4 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/Options.java +2 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/OverlayOptions.java +3 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/OverlayOptions.kt +31 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutInsets.kt +44 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutOptions.kt +71 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/parsers/JSONParser.java +0 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/PrimitiveExt.kt +9 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +2 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +31 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +6 -13
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +37 -12
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java +4 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +25 -6
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManager.kt +104 -33
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/parent/ParentController.java +86 -9
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuController.java +12 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +18 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +51 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonController.kt +7 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonPresenter.kt +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +23 -7
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +0 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +24 -3
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabs.java +29 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainer.kt +1 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsLayout.java +10 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentLayout.java +10 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/overlay/AttachedOverlayContainer.kt +69 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/overlay/ViewTooltip.java +921 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/sidemenu/SideMenuRoot.java +9 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/StackLayout.java +14 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBar.java +0 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/toptabs/TopTabsStyleHelper.java +0 -1
- package/lib/dist/src/interfaces/Options.d.ts +34 -0
- package/lib/ios/RNNBasePresenter.m +17 -0
- package/lib/ios/RNNBottomTabsController.m +1 -0
- package/lib/ios/RNNBridgeManager.mm +5 -3
- package/lib/ios/RNNComponentViewController.m +5 -0
- package/lib/ios/RNNLayoutOptions.h +2 -1
- package/lib/ios/RNNLayoutOptions.m +4 -0
- package/lib/ios/RNNModalHostViewManagerHandler.h +11 -0
- package/lib/ios/RNNModalHostViewManagerHandler.m +40 -0
- package/lib/ios/RNNModalManager.h +2 -2
- package/lib/ios/RNNModalManager.m +0 -26
- package/lib/ios/RNNStackPresenter.m +1 -0
- package/lib/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +8 -0
- package/lib/src/interfaces/Options.ts +38 -0
- package/package.json +3 -1
- package/.buildkite/pipeline.yml +0 -59
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutOptions.java +0 -48
- package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +0 -178
- package/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +0 -43
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +0 -23
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java +0 -35
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +0 -62
- package/lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt +0 -8
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/BackDrawable.java +0 -30
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +0 -49
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +0 -18
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleComponentViewController.java +0 -15
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleOverlay.java +0 -54
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +0 -113
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +0 -79
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +0 -18
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestReactView.java +0 -71
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarButtonCreatorMock.java +0 -34
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java +0 -20
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java +0 -20
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +0 -21
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +0 -51
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +0 -315
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/OrientationOptionsTest.java +0 -81
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/TopBarButtonsTest.kt +0 -95
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +0 -122
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +0 -28
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -50
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +0 -64
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -56
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +0 -59
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/SideMenuPresenterTest.java +0 -35
- package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java +0 -102
- package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java +0 -24
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/AnimationHelper.kt +0 -33
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -241
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +0 -57
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +0 -17
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -78
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +0 -47
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java +0 -60
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/OptionHelper.java +0 -16
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +0 -26
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +0 -19
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +0 -27
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurerTest.kt +0 -357
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleBarHelper.java +0 -54
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +0 -29
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +0 -22
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java +0 -9
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -149
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -206
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +0 -62
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -589
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -173
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AfterInitialTabTest.java +0 -38
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +0 -86
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTabTest.java +0 -31
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/TogetherTest.java +0 -20
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/button/NavigationIconResolverTest.java +0 -78
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +0 -80
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +0 -56
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -216
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -97
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/FragmentCreatorMock.java +0 -34
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java +0 -8
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +0 -33
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorMock.java +0 -40
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -213
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -319
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -367
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -898
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -254
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -108
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -299
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -446
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -77
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -154
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +0 -114
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -241
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1165
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1081
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -61
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -43
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -120
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -432
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -249
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -337
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegateTest.java +0 -68
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/OverlayTouchDelegateTest.java +0 -60
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -477
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/TopBarTest.java +0 -82
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +0 -109
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreatorFake.kt +0 -36
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +0 -101
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +0 -40
- package/lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +0 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
package com.reactnativenavigation.viewcontrollers.viewcontroller;
|
|
2
2
|
|
|
3
|
+
import static com.reactnativenavigation.utils.CollectionUtils.forEach;
|
|
4
|
+
import static com.reactnativenavigation.utils.ObjectUtils.perform;
|
|
5
|
+
|
|
3
6
|
import android.app.Activity;
|
|
4
7
|
import android.content.res.Configuration;
|
|
5
8
|
import android.view.View;
|
|
@@ -9,11 +12,13 @@ import android.view.ViewTreeObserver;
|
|
|
9
12
|
|
|
10
13
|
import androidx.annotation.CallSuper;
|
|
11
14
|
import androidx.annotation.CheckResult;
|
|
15
|
+
import androidx.annotation.NonNull;
|
|
12
16
|
import androidx.annotation.Nullable;
|
|
13
17
|
import androidx.annotation.VisibleForTesting;
|
|
14
18
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
|
15
19
|
|
|
16
20
|
import com.reactnativenavigation.options.Options;
|
|
21
|
+
import com.reactnativenavigation.options.OverlayAttachOptions;
|
|
17
22
|
import com.reactnativenavigation.options.params.Bool;
|
|
18
23
|
import com.reactnativenavigation.options.params.NullBool;
|
|
19
24
|
import com.reactnativenavigation.react.CommandListener;
|
|
@@ -25,15 +30,13 @@ import com.reactnativenavigation.viewcontrollers.parent.ParentController;
|
|
|
25
30
|
import com.reactnativenavigation.viewcontrollers.stack.StackController;
|
|
26
31
|
import com.reactnativenavigation.viewcontrollers.viewcontroller.overlay.ViewControllerOverlay;
|
|
27
32
|
import com.reactnativenavigation.views.BehaviourAdapter;
|
|
33
|
+
import com.reactnativenavigation.views.overlay.ViewTooltip;
|
|
28
34
|
import com.reactnativenavigation.views.component.Component;
|
|
29
35
|
import com.reactnativenavigation.views.component.Renderable;
|
|
30
36
|
|
|
31
37
|
import java.util.ArrayList;
|
|
32
38
|
import java.util.List;
|
|
33
39
|
|
|
34
|
-
import static com.reactnativenavigation.utils.CollectionUtils.forEach;
|
|
35
|
-
import static com.reactnativenavigation.utils.ObjectUtils.perform;
|
|
36
|
-
|
|
37
40
|
public abstract class ViewController<T extends ViewGroup> implements ViewTreeObserver.OnGlobalLayoutListener,
|
|
38
41
|
ViewGroup.OnHierarchyChangeListener,
|
|
39
42
|
BehaviourAdapter {
|
|
@@ -157,6 +160,14 @@ public abstract class ViewController<T extends ViewGroup> implements ViewTreeObs
|
|
|
157
160
|
}
|
|
158
161
|
}
|
|
159
162
|
|
|
163
|
+
public ViewController<?> getTopMostParent(){
|
|
164
|
+
if(parentController!=null){
|
|
165
|
+
return parentController.getTopMostParent();
|
|
166
|
+
}else{
|
|
167
|
+
return this;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
160
171
|
@CallSuper
|
|
161
172
|
public void applyOptions(Options options) {
|
|
162
173
|
|
|
@@ -289,6 +300,7 @@ public abstract class ViewController<T extends ViewGroup> implements ViewTreeObs
|
|
|
289
300
|
if (view.getParent() instanceof ViewGroup) {
|
|
290
301
|
((ViewManager) view.getParent()).removeView(view);
|
|
291
302
|
}
|
|
303
|
+
setParentController(null);
|
|
292
304
|
view = null;
|
|
293
305
|
isDestroyed = true;
|
|
294
306
|
}
|
|
@@ -383,6 +395,15 @@ public abstract class ViewController<T extends ViewGroup> implements ViewTreeObs
|
|
|
383
395
|
|
|
384
396
|
}
|
|
385
397
|
|
|
398
|
+
protected View findTooltipAnchorView(OverlayAttachOptions options) {
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
public ViewTooltip.TooltipView showAnchoredOverlay(@NonNull View anchorView,
|
|
403
|
+
@NonNull OverlayAttachOptions overlayAttachOptions,
|
|
404
|
+
@NonNull ViewController<?> overlayViewController) {
|
|
405
|
+
return null;
|
|
406
|
+
}
|
|
386
407
|
public int getBottomInset() {
|
|
387
408
|
return perform(parentController, 0, p -> p.getBottomInset(this));
|
|
388
409
|
}
|
package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabs.java
CHANGED
|
@@ -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
|
}
|
|
@@ -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
|
+
}
|
package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentLayout.java
CHANGED
|
@@ -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
|
+
}
|