Use generated Java delegate for setting properties on ReactModalHostManager

Summary: This diff migrates `ReactModalHostManager` to use the generated `ModalHostViewManagerDelegate` for setting its properties.

Reviewed By: mdvacca

Differential Revision: D17205817

fbshipit-source-id: 6724302fd4301f9df92df04fcfb41f0c2c939d9f
This commit is contained in:
Oleksandr Melnykov
2019-09-23 07:18:08 -07:00
committed by Facebook Github Bot
parent 5925b3d408
commit 1eb8ef59ad
2 changed files with 38 additions and 3 deletions
@@ -23,6 +23,7 @@ rn_android_library(
react_native_target("java/com/facebook/react/uimanager/annotations:annotations"),
react_native_target("java/com/facebook/react/views/common:common"),
react_native_target("java/com/facebook/react/views/view:view"),
react_native_target("java/com/facebook/react/viewmanagers:viewmanagers"),
react_native_target("res:modal"),
],
)
@@ -8,6 +8,8 @@ package com.facebook.react.views.modal;
import android.content.DialogInterface;
import android.graphics.Point;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.uimanager.LayoutShadowNode;
@@ -16,16 +18,26 @@ import com.facebook.react.uimanager.StateWrapper;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.UIManagerModule;
import com.facebook.react.uimanager.ViewGroupManager;
import com.facebook.react.uimanager.ViewManagerDelegate;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.facebook.react.uimanager.events.EventDispatcher;
import com.facebook.react.viewmanagers.ModalHostViewManagerDelegate;
import com.facebook.react.viewmanagers.ModalHostViewManagerInterface;
import java.util.Map;
/** View manager for {@link ReactModalHostView} components. */
@ReactModule(name = ReactModalHostManager.REACT_CLASS)
public class ReactModalHostManager extends ViewGroupManager<ReactModalHostView> {
public class ReactModalHostManager extends ViewGroupManager<ReactModalHostView>
implements ModalHostViewManagerInterface<ReactModalHostView> {
public static final String REACT_CLASS = "RCTModalHostView";
private final ViewManagerDelegate<ReactModalHostView> mDelegate;
public ReactModalHostManager() {
mDelegate = new ModalHostViewManagerDelegate<>(this);
}
@Override
public String getName() {
return REACT_CLASS;
@@ -52,21 +64,38 @@ public class ReactModalHostManager extends ViewGroupManager<ReactModalHostView>
view.onDropInstance();
}
@Override
@ReactProp(name = "animationType")
public void setAnimationType(ReactModalHostView view, String animationType) {
view.setAnimationType(animationType);
public void setAnimationType(ReactModalHostView view, @Nullable String animationType) {
if (animationType != null) {
view.setAnimationType(animationType);
}
}
@Override
@ReactProp(name = "transparent")
public void setTransparent(ReactModalHostView view, boolean transparent) {
view.setTransparent(transparent);
}
@Override
@ReactProp(name = "hardwareAccelerated")
public void setHardwareAccelerated(ReactModalHostView view, boolean hardwareAccelerated) {
view.setHardwareAccelerated(hardwareAccelerated);
}
@Override
public void setPresentationStyle(ReactModalHostView view, @Nullable String value) {}
@Override
public void setAnimated(ReactModalHostView view, boolean value) {}
@Override
public void setSupportedOrientations(ReactModalHostView view, @Nullable ReadableArray value) {}
@Override
public void setIdentifier(ReactModalHostView view, int value) {}
@Override
protected void addEventEmitters(ThemedReactContext reactContext, final ReactModalHostView view) {
final EventDispatcher dispatcher =
@@ -108,4 +137,9 @@ public class ReactModalHostManager extends ViewGroupManager<ReactModalHostView>
view.updateState(stateWrapper, modalSize.x, modalSize.y);
return null;
}
@Override
public ViewManagerDelegate<ReactModalHostView> getDelegate() {
return mDelegate;
}
}