mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-02 22:41:18 +08:00
Native Animated - Restore default values when removing props on Android
Summary: Rebased version of #12842 that was reverted because of failing fb internal tests. Closes https://github.com/facebook/react-native/pull/15919 Differential Revision: D5823956 Pulled By: hramos fbshipit-source-id: 4ece19a403f5ebbe4829c4c26696ea0575ab1d0e
This commit is contained in:
committed by
Facebook Github Bot
parent
dd400f842b
commit
2b4ff6ea19
@@ -39,6 +39,8 @@ import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugL
|
||||
import com.facebook.react.uimanager.events.EventDispatcher;
|
||||
import com.facebook.systrace.Systrace;
|
||||
import com.facebook.systrace.SystraceMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nullable;
|
||||
@@ -112,6 +114,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
private final Map<String, Object> mCustomDirectEvents;
|
||||
private final UIImplementation mUIImplementation;
|
||||
private final MemoryTrimCallback mMemoryTrimCallback = new MemoryTrimCallback();
|
||||
private final List<UIManagerModuleListener> mListeners = new ArrayList<>();
|
||||
|
||||
private int mBatchId = 0;
|
||||
|
||||
@@ -662,6 +665,9 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
SystraceMessage.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "onBatchCompleteUI")
|
||||
.arg("BatchId", batchId)
|
||||
.flush();
|
||||
for (UIManagerModuleListener listener : mListeners) {
|
||||
listener.willDispatchViewUpdates(this);
|
||||
}
|
||||
try {
|
||||
mUIImplementation.dispatchViewUpdates(batchId);
|
||||
} finally {
|
||||
@@ -699,10 +705,28 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
}
|
||||
});
|
||||
*/
|
||||
public void addUIBlock (UIBlock block) {
|
||||
public void addUIBlock(UIBlock block) {
|
||||
mUIImplementation.addUIBlock(block);
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedule a block to be executed on the UI thread. Useful if you need to execute
|
||||
* view logic before all currently queued view updates have completed.
|
||||
*
|
||||
* @param block that contains UI logic you want to execute.
|
||||
*/
|
||||
public void prependUIBlock(UIBlock block) {
|
||||
mUIImplementation.prependUIBlock(block);
|
||||
}
|
||||
|
||||
public void addUIManagerListener(UIManagerModuleListener listener) {
|
||||
mListeners.add(listener);
|
||||
}
|
||||
|
||||
public void removeUIManagerListener(UIManagerModuleListener listener) {
|
||||
mListeners.remove(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a reactTag from a component, find its root node tag, if possible.
|
||||
* Otherwise, this will return 0. If the reactTag belongs to a root node, this
|
||||
|
||||
Reference in New Issue
Block a user