Support excluding multiple platforms.

Summary:
Currently the schema only allows to exclude a single platform (iOS OR Android). There are cases where we need to exclude multiple. This change converts the previous `excludePlatform` string property into an `excludePlatforms` array.

Changelog:
[Internal][Changed] - Added support to exclude multiple platforms in Codegen.

Reviewed By: sammy-SC

Differential Revision: D21426950

fbshipit-source-id: eff36ffa207109274794b4b300bf6313f8286161
This commit is contained in:
João Vieira
2020-05-07 09:43:52 -07:00
committed by Facebook GitHub Bot
parent 7bb1c4e1b8
commit 16ea9ba813
31 changed files with 499 additions and 19 deletions
@@ -0,0 +1,62 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GeneratePropsJavaDelegate.js
*/
package com.facebook.react.viewmanagers;
import android.view.View;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.uimanager.BaseViewManagerDelegate;
import com.facebook.react.uimanager.BaseViewManagerInterface;
import com.facebook.react.uimanager.LayoutShadowNode;
public class DatePickerManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & DatePickerManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
public DatePickerManagerDelegate(U viewManager) {
super(viewManager);
}
@Override
public void setProperty(T view, String propName, @Nullable Object value) {
switch (propName) {
case "date":
mViewManager.setDate(view, value == null ? 0f : ((Double) value).floatValue());
break;
case "initialDate":
mViewManager.setInitialDate(view, value == null ? 0f : ((Double) value).floatValue());
break;
case "locale":
mViewManager.setLocale(view, value == null ? null : (String) value);
break;
case "maximumDate":
mViewManager.setMaximumDate(view, value == null ? 0f : ((Double) value).floatValue());
break;
case "minimumDate":
mViewManager.setMinimumDate(view, value == null ? 0f : ((Double) value).floatValue());
break;
case "minuteInterval":
mViewManager.setMinuteInterval(view, value == null ? 1 : ((Double) value).intValue());
break;
case "mode":
mViewManager.setMode(view, (String) value);
break;
case "timeZoneOffsetInMinutes":
mViewManager.setTimeZoneOffsetInMinutes(view, value == null ? 0f : ((Double) value).floatValue());
break;
default:
super.setProperty(view, propName, value);
}
}
public void receiveCommand(DatePickerManagerInterface<T> viewManager, T view, String commandName, ReadableArray args) {
switch (commandName) {
case "setNativeDate":
viewManager.setNativeDate(view, (float) args.getDouble(0));
break;
}
}
}
@@ -0,0 +1,25 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GeneratePropsJavaInterface.js
*/
package com.facebook.react.viewmanagers;
import android.view.View;
import androidx.annotation.Nullable;
public interface DatePickerManagerInterface<T extends View> {
void setDate(T view, float value);
void setInitialDate(T view, float value);
void setLocale(T view, @Nullable String value);
void setMaximumDate(T view, float value);
void setMinimumDate(T view, float value);
void setMinuteInterval(T view, @Nullable Integer value);
void setMode(T view, @Nullable String value);
void setTimeZoneOffsetInMinutes(T view, float value);
void setNativeDate(T view, float date);
}
@@ -0,0 +1,51 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GeneratePropsJavaDelegate.js
*/
package com.facebook.react.viewmanagers;
import android.view.View;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ColorPropConverter;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.uimanager.BaseViewManagerDelegate;
import com.facebook.react.uimanager.BaseViewManagerInterface;
import com.facebook.react.uimanager.LayoutShadowNode;
public class PullToRefreshViewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & PullToRefreshViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
public PullToRefreshViewManagerDelegate(U viewManager) {
super(viewManager);
}
@Override
public void setProperty(T view, String propName, @Nullable Object value) {
switch (propName) {
case "tintColor":
mViewManager.setTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "titleColor":
mViewManager.setTitleColor(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "title":
mViewManager.setTitle(view, value == null ? null : (String) value);
break;
case "refreshing":
mViewManager.setRefreshing(view, value == null ? false : (boolean) value);
break;
default:
super.setProperty(view, propName, value);
}
}
public void receiveCommand(PullToRefreshViewManagerInterface<T> viewManager, T view, String commandName, ReadableArray args) {
switch (commandName) {
case "setNativeRefreshing":
viewManager.setNativeRefreshing(view, args.getBoolean(0));
break;
}
}
}
@@ -0,0 +1,21 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated by codegen project: GeneratePropsJavaInterface.js
*/
package com.facebook.react.viewmanagers;
import android.view.View;
import androidx.annotation.Nullable;
public interface PullToRefreshViewManagerInterface<T extends View> {
void setTintColor(T view, @Nullable Integer value);
void setTitleColor(T view, @Nullable Integer value);
void setTitle(T view, @Nullable String value);
void setRefreshing(T view, boolean value);
void setNativeRefreshing(T view, boolean refreshing);
}
@@ -11,6 +11,8 @@ package com.facebook.react.viewmanagers;
import android.view.View;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ColorPropConverter;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.uimanager.BaseViewManagerDelegate;
import com.facebook.react.uimanager.BaseViewManagerInterface;
import com.facebook.react.uimanager.LayoutShadowNode;
@@ -29,25 +31,33 @@ public class SwitchManagerDelegate<T extends View, U extends BaseViewManagerInte
mViewManager.setValue(view, value == null ? false : (boolean) value);
break;
case "tintColor":
mViewManager.setTintColor(view, value == null ? null : ((Double) value).intValue());
mViewManager.setTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "onTintColor":
mViewManager.setOnTintColor(view, value == null ? null : ((Double) value).intValue());
mViewManager.setOnTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "thumbTintColor":
mViewManager.setThumbTintColor(view, value == null ? null : ((Double) value).intValue());
mViewManager.setThumbTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "thumbColor":
mViewManager.setThumbColor(view, value == null ? null : ((Double) value).intValue());
mViewManager.setThumbColor(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "trackColorForFalse":
mViewManager.setTrackColorForFalse(view, value == null ? null : ((Double) value).intValue());
mViewManager.setTrackColorForFalse(view, ColorPropConverter.getColor(value, view.getContext()));
break;
case "trackColorForTrue":
mViewManager.setTrackColorForTrue(view, value == null ? null : ((Double) value).intValue());
mViewManager.setTrackColorForTrue(view, ColorPropConverter.getColor(value, view.getContext()));
break;
default:
super.setProperty(view, propName, value);
}
}
public void receiveCommand(SwitchManagerInterface<T> viewManager, T view, String commandName, ReadableArray args) {
switch (commandName) {
case "setValue":
viewManager.setValue(view, args.getBoolean(0));
break;
}
}
}