Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.reactnativenavigation.viewcontrollers;

import android.app.Activity;
import androidx.annotation.CallSuper;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import android.view.View;
import android.view.ViewGroup;

Expand All @@ -13,6 +10,10 @@
import com.reactnativenavigation.viewcontrollers.navigator.Navigator;
import com.reactnativenavigation.views.Component;

import androidx.annotation.CallSuper;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public abstract class ChildController<T extends ViewGroup> extends ViewController<T> {
private final Presenter presenter;
private final ChildControllersRegistry childRegistry;
Expand Down Expand Up @@ -70,6 +71,7 @@ public void applyOptions(Options options) {
public void mergeOptions(Options options) {
if (options == Options.EMPTY) return;
if (isViewShown()) presenter.mergeOptions(getView(), options);
performOnParentController(parentController -> parentController.mergeChildOptions(options, this));
super.mergeOptions(options);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ public void mergeOptions(Options options) {
if (options == Options.EMPTY) return;
presenter.mergeOptions(getView(), options);
super.mergeOptions(options);
performOnParentController(parentController -> parentController.mergeChildOptions(options, this));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import android.app.Activity;
import android.content.Context;
import androidx.annotation.NonNull;
import android.view.MotionEvent;

import com.facebook.react.ReactInstanceManager;
Expand All @@ -16,6 +15,8 @@

import org.mockito.Mockito;

import androidx.annotation.NonNull;

import static com.reactnativenavigation.utils.ObjectUtils.perform;

public class SimpleViewController extends ChildController<SimpleViewController.SimpleView> {
Expand Down Expand Up @@ -51,12 +52,6 @@ public String toString() {
return "SimpleViewController " + getId();
}

@Override
public void mergeOptions(Options options) {
performOnParentController(parentController -> parentController.mergeChildOptions(options, this));
super.mergeOptions(options);
}

@Override
public int getTopInset() {
int statusBarInset = resolveCurrentOptions().statusBar.drawBehind.isTrue() ? 0 : 63;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.reactnativenavigation.presentation.Presenter;
import com.reactnativenavigation.viewcontrollers.ChildController;
import com.reactnativenavigation.viewcontrollers.ChildControllersRegistry;
import com.reactnativenavigation.viewcontrollers.ParentController;

import org.junit.Test;
import org.mockito.Mockito;
Expand All @@ -17,6 +18,7 @@

public class ChildControllerTest extends BaseTest {

private ParentController parent;
private ChildController uut;
private ChildControllersRegistry childRegistry;
private Presenter presenter;
Expand All @@ -32,6 +34,8 @@ public Options resolveCurrentOptions() {
return resolvedOptions;
}
};
parent = Mockito.mock(ParentController.class);
uut.setParentController(parent);
}

@Test
Expand Down Expand Up @@ -63,6 +67,13 @@ public void mergeOptions_emptyOptionsAreIgnored() {
verify(presenter, times(0)).mergeOptions(any(), any());
}

@Test
public void mergeOptions_mergeWithParentViewController() {
Options options = new Options();
uut.mergeOptions(options);
verify(uut.getParentController()).mergeChildOptions(options, uut);
}

@Test
public void destroy() {
uut.destroy();
Expand Down
2 changes: 1 addition & 1 deletion playground/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ allprojects {
url "$rootDir/../../node_modules/react-native/android"
}
maven { url "$rootDir/../../node_modules/detox/Detox-android" }
maven { url 'https://jitpack.io' }
maven { url 'https://www.jitpack.io' }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url "$rootDir/../../node_modules/jsc-android/dist" }
}
Expand Down
2 changes: 1 addition & 1 deletion playground/src/screens/FirstBottomTabScreen.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class FirstBottomTabScreen extends React.Component {
}
});

switchTabByComponentId = () => Navigation.mergeOptions(this, {
switchTabByComponentId = () => Navigation.mergeOptions('SecondTab', {
bottomTabs: {
currentTabId: 'SecondTab'
}
Expand Down