BREAKING: Android: Refactor so uimanager can depend on modules/core

Summary:
cc astreet

The goal of this PR is to enable the buck module `uimanager` to depend on `modules/core` without introducing any dependency cycles.

PR #11008 relies on this PR. PR #11008 needs `uimanager` to depend on `modules/core` so that `uimanager` can fire events using `RCTDeviceEventEmitter` which is in `modules/core`.

This PR moved a number of classes and interfaces:
  - `com.facebook.react.modules.debug.DeveloperSettings` -> `com.facebook.react.modules.debug.interfaces.DeveloperSettings`
  - `com.facebook.react.devsupport.DevOptionHandler` -> `com.facebook.react.devsupport.interfaces.DevOptionHandler `
  - `com.facebook.react.devsupport.DevSupportManager` -> `com.facebook.react.devsupport.interfaces.DevSupportManager`
  - `com.facebook.react.devsupport.DevServerHelper.PackagerStatusCallback` -> `com.facebook.react.devsupport.interfaces.PackagerStatusCallback`
  - The class `com.facebook.react.devsupport.StackTraceHelper.StackFrame` was renamed to `StackFram
Closes https://github.com/facebook/react-native/pull/12329

Differential Revision: D4551160

Pulled By: astreet

fbshipit-source-id: 3a78443c4f30469b13ddfbdcc9bbef6af9e8381a
This commit is contained in:
Adam Comella 2017-02-13 11:01:30 -08:00 коммит произвёл Facebook Github Bot
Родитель 4161bada4a
Коммит ea6845ca22
37 изменённых файлов: 158 добавлений и 51 удалений

Просмотреть файл

@ -16,10 +16,10 @@ android_library(
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/cxxbridge:bridge'),
react_native_target('java/com/facebook/react/devsupport:devsupport'),
react_native_target('java/com/facebook/react/devsupport:interfaces'),
react_native_target('java/com/facebook/react/module/model:model'),
react_native_target('java/com/facebook/react/modules/core:core'),
react_native_target('java/com/facebook/react/modules/debug:debug'),
react_native_target('java/com/facebook/react/modules/debug:interfaces'),
react_native_target('java/com/facebook/react/shell:shell'),
react_native_target('java/com/facebook/react/uimanager:uimanager'),
],

Просмотреть файл

@ -30,7 +30,7 @@ import com.facebook.react.bridge.SoftAssertions;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.ApplicationHolder;
import com.facebook.react.common.futures.SimpleSettableFuture;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.modules.core.Timing;
import com.facebook.soloader.SoLoader;

Просмотреть файл

@ -8,7 +8,7 @@
package com.facebook.react.testing;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
public class ReactSettingsForTests implements DeveloperSettings {

Просмотреть файл

@ -11,11 +11,14 @@ DEPS = [
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/cxxbridge:bridge'),
react_native_target('java/com/facebook/react/devsupport:devsupport'),
react_native_target('java/com/facebook/react/devsupport:interfaces'),
react_native_target('java/com/facebook/react/jstasks:jstasks'),
react_native_target('java/com/facebook/react/module/annotations:annotations'),
react_native_target('java/com/facebook/react/module/model:model'),
react_native_target('java/com/facebook/react/modules/appregistry:appregistry'),
react_native_target('java/com/facebook/react/modules/core:core'),
react_native_target('java/com/facebook/react/modules/debug:debug'),
react_native_target('java/com/facebook/react/modules/debug:interfaces'),
react_native_target('java/com/facebook/react/modules/systeminfo:systeminfo'),
react_native_target('java/com/facebook/react/modules/toast:toast'),
react_native_target('java/com/facebook/react/uimanager:uimanager'),

Просмотреть файл

@ -37,7 +37,7 @@ import com.facebook.react.modules.core.Timing;
import com.facebook.react.modules.debug.AnimationsDebugModule;
import com.facebook.react.modules.debug.SourceCodeModule;
import com.facebook.react.modules.systeminfo.AndroidInfoModule;
import com.facebook.react.uimanager.AppRegistry;
import com.facebook.react.modules.appregistry.AppRegistry;
import com.facebook.react.uimanager.UIImplementationProvider;
import com.facebook.react.uimanager.UIManagerModule;
import com.facebook.react.uimanager.ViewManager;

Просмотреть файл

@ -53,15 +53,15 @@ import com.facebook.react.cxxbridge.JavaScriptExecutor;
import com.facebook.react.cxxbridge.NativeModuleRegistry;
import com.facebook.react.cxxbridge.ProxyJavaScriptExecutor;
import com.facebook.react.cxxbridge.UiThreadUtil;
import com.facebook.react.devsupport.DevServerHelper;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
import com.facebook.react.devsupport.DevSupportManagerFactory;
import com.facebook.react.devsupport.ReactInstanceDevCommandsHandler;
import com.facebook.react.devsupport.RedBoxHandler;
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.uimanager.AppRegistry;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
import com.facebook.react.modules.appregistry.AppRegistry;
import com.facebook.react.uimanager.DisplayMetricsHolder;
import com.facebook.react.uimanager.UIImplementationProvider;
import com.facebook.react.uimanager.UIManagerModule;
@ -409,7 +409,7 @@ public class ReactInstanceManager {
mDevSupportManager.handleReloadJS();
} else {
mDevSupportManager.isPackagerRunning(
new DevServerHelper.PackagerStatusCallback() {
new PackagerStatusCallback() {
@Override
public void onPackagerStatusFetched(final boolean packagerIsRunning) {
UiThreadUtil.runOnUiThread(

Просмотреть файл

@ -15,7 +15,7 @@ import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
import com.facebook.react.common.LifecycleState;
import com.facebook.react.cxxbridge.JSBundleLoader;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.RedBoxHandler;
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
import com.facebook.react.uimanager.UIImplementationProvider;

Просмотреть файл

@ -24,7 +24,7 @@ import com.facebook.react.bridge.WritableMap;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.uimanager.GuardedChoreographerFrameCallback;
import com.facebook.react.uimanager.ReactChoreographer;
import com.facebook.react.modules.core.ReactChoreographer;
import com.facebook.react.uimanager.UIManagerModule;
import java.util.ArrayList;

Просмотреть файл

@ -3,7 +3,7 @@ include_defs('//ReactAndroid/DEFS')
android_library(
name = 'devsupport',
manifest = 'AndroidManifest.xml',
srcs = glob(['**/*.java']),
srcs = glob(['*.java']),
deps = [
react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'),
react_native_dep('third-party/java/infer-annotations:infer-annotations'),
@ -14,8 +14,10 @@ android_library(
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/common/network:network'),
react_native_target('java/com/facebook/react/devsupport:interfaces'),
react_native_target('java/com/facebook/react/module/annotations:annotations'),
react_native_target('java/com/facebook/react/modules/debug:debug'),
react_native_target('java/com/facebook/react/modules/debug:interfaces'),
react_native_target('java/com/facebook/react/modules/systeminfo:systeminfo'),
react_native_target('java/com/facebook/react/packagerconnection:packagerconnection'),
react_native_target('res:devsupport'),
@ -24,3 +26,16 @@ android_library(
'PUBLIC',
],
)
android_library(
name = 'interfaces',
srcs = glob(['interfaces/*.java']),
deps = [
react_native_dep('third-party/java/jsr-305:jsr-305'),
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/modules/debug:interfaces'),
],
visibility = [
'PUBLIC',
],
)

Просмотреть файл

@ -16,7 +16,7 @@ import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.facebook.react.common.annotations.VisibleForTesting;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
/**
* Helper class for accessing developers settings that should not be accessed outside of the package

Просмотреть файл

@ -26,6 +26,7 @@ import com.facebook.infer.annotation.Assertions;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.common.network.OkHttpCallUtil;
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
import com.facebook.react.packagerconnection.JSPackagerWebSocketClient;
@ -88,10 +89,6 @@ public class DevServerHelper {
void onPokeSamplingProfilerCommand(@Nullable final JSPackagerWebSocketClient.WebSocketSender webSocket);
}
public interface PackagerStatusCallback {
void onPackagerStatusFetched(boolean packagerIsRunning);
}
private final DevInternalSettings mSettings;
private final OkHttpClient mClient;
private final Handler mRestartOnChangePollingHandler;

Просмотреть файл

@ -15,6 +15,8 @@ import java.lang.reflect.Constructor;
import android.content.Context;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
/**
* A simple factory that creates instances of {@link DevSupportManager} implementations. Uses
* reflection to create DevSupportManagerImpl if it exists. This allows ProGuard to strip that class

Просмотреть файл

@ -51,8 +51,11 @@ import com.facebook.react.common.ReactConstants;
import com.facebook.react.common.ShakeDetector;
import com.facebook.react.common.futures.SimpleSettableFuture;
import com.facebook.react.devsupport.DevServerHelper.PackagerCommandListener;
import com.facebook.react.devsupport.StackTraceHelper.StackFrame;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.devsupport.interfaces.DevOptionHandler;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
import com.facebook.react.devsupport.interfaces.StackFrame;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
import com.facebook.react.packagerconnection.JSPackagerWebSocketClient;
import okhttp3.MediaType;
@ -648,7 +651,7 @@ public class DevSupportManagerImpl implements
}
@Override
public void isPackagerRunning(DevServerHelper.PackagerStatusCallback callback) {
public void isPackagerRunning(PackagerStatusCallback callback) {
mDevServerHelper.isPackagerRunning(callback);
}

Просмотреть файл

@ -16,8 +16,11 @@ import java.io.File;
import com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.devsupport.StackTraceHelper.StackFrame;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.devsupport.interfaces.DevOptionHandler;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
import com.facebook.react.devsupport.interfaces.StackFrame;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
/**
* A dummy implementation of {@link DevSupportManager} to be used in production mode where
@ -132,7 +135,7 @@ public class DisabledDevSupportManager implements DevSupportManager {
}
@Override
public void isPackagerRunning(DevServerHelper.PackagerStatusCallback callback) {
public void isPackagerRunning(PackagerStatusCallback callback) {
}

Просмотреть файл

@ -35,7 +35,8 @@ import com.facebook.infer.annotation.Assertions;
import com.facebook.react.R;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.devsupport.StackTraceHelper.StackFrame;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.StackFrame;
import com.facebook.react.devsupport.RedBoxHandler.ReportCompletedListener;
import okhttp3.MediaType;

Просмотреть файл

@ -11,7 +11,7 @@ package com.facebook.react.devsupport;
import android.text.SpannedString;
import com.facebook.react.devsupport.StackTraceHelper.StackFrame;
import com.facebook.react.devsupport.interfaces.StackFrame;
/**
* Interface used by {@link DevSupportManagerImpl} to allow interception on any redboxes

Просмотреть файл

@ -15,6 +15,7 @@ import java.io.File;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.devsupport.interfaces.StackFrame;
/**
* Helper class converting JS and Java stack traces into arrays of {@link StackFrame} objects.
@ -24,14 +25,14 @@ public class StackTraceHelper {
/**
* Represents a generic entry in a stack trace, be it originally from JS or Java.
*/
public static class StackFrame {
public static class StackFrameImpl implements StackFrame {
private final String mFile;
private final String mMethod;
private final int mLine;
private final int mColumn;
private final String mFileName;
private StackFrame(String file, String method, int line, int column) {
private StackFrameImpl(String file, String method, int line, int column) {
mFile = file;
mMethod = method;
mLine = line;
@ -39,7 +40,7 @@ public class StackTraceHelper {
mFileName = new File(file).getName();
}
private StackFrame(String file, String fileName, String method, int line, int column) {
private StackFrameImpl(String file, String fileName, String method, int line, int column) {
mFile = file;
mFileName = fileName;
mMethod = method;
@ -105,7 +106,7 @@ public class StackTraceHelper {
if (frame.hasKey("column") && !frame.isNull("column")) {
columnNumber = frame.getInt("column");
}
result[i] = new StackFrame(fileName, methodName, lineNumber, columnNumber);
result[i] = new StackFrameImpl(fileName, methodName, lineNumber, columnNumber);
}
return result;
}
@ -117,7 +118,7 @@ public class StackTraceHelper {
StackTraceElement[] stackTrace = exception.getStackTrace();
StackFrame[] result = new StackFrame[stackTrace.length];
for (int i = 0; i < stackTrace.length; i++) {
result[i] = new StackFrame(
result[i] = new StackFrameImpl(
stackTrace[i].getClassName(),
stackTrace[i].getFileName(),
stackTrace[i].getMethodName(),

Просмотреть файл

@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.devsupport;
package com.facebook.react.devsupport.interfaces;
/**
* Callback class for custom options that may appear in {@link DevSupportManager} developer

Просмотреть файл

@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.devsupport;
package com.facebook.react.devsupport.interfaces;
import javax.annotation.Nullable;
@ -16,8 +16,7 @@ import java.io.File;
import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.devsupport.StackTraceHelper.StackFrame;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
/**
* Interface for accessing and interacting with development features.
@ -46,7 +45,7 @@ public interface DevSupportManager extends NativeModuleCallExceptionHandler {
void reloadSettings();
void handleReloadJS();
void reloadJSFromServer(final String bundleURL);
void isPackagerRunning(DevServerHelper.PackagerStatusCallback callback);
void isPackagerRunning(PackagerStatusCallback callback);
@Nullable File downloadBundleResourceFromUrlSync(
final String resourceURL,
final File outputFile);

Просмотреть файл

@ -0,0 +1,14 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.devsupport.interfaces;
public interface PackagerStatusCallback {
void onPackagerStatusFetched(boolean packagerIsRunning);
}

Просмотреть файл

@ -0,0 +1,46 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.devsupport.interfaces;
/**
* Represents a generic entry in a stack trace, be it originally from JS or Java.
*/
public interface StackFrame {
/**
* Get the file this stack frame points to.
*
* JS traces return the full path to the file here, while Java traces only return the file name
* (the path is not known).
*/
public String getFile();
/**
* Get the name of the method this frame points to.
*/
public String getMethod();
/**
* Get the line number this frame points to in the file returned by {@link #getFile()}.
*/
public int getLine();
/**
* Get the column this frame points to in the file returned by {@link #getFile()}.
*/
public int getColumn();
/**
* Get just the name of the file this frame points to.
*
* For JS traces this is different from {@link #getFile()} in that it only returns the file
* name, not the full path. For Java traces there is no difference.
*/
public String getFileName();
}

Просмотреть файл

@ -6,7 +6,7 @@ DEPS = [
react_native_dep('third-party/java/jsr-305:jsr-305'),
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/uimanager:uimanager'),
react_native_target('java/com/facebook/react/modules/appregistry:appregistry'),
]
android_library(

Просмотреть файл

@ -15,7 +15,7 @@ import com.facebook.infer.annotation.Assertions;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.LifecycleState;
import com.facebook.react.uimanager.AppRegistry;
import com.facebook.react.modules.appregistry.AppRegistry;
/**
* Helper class for dealing with JS tasks. Handles per-ReactContext active task tracking, starting /

Просмотреть файл

@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.uimanager;
package com.facebook.react.modules.appregistry;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.WritableMap;

Просмотреть файл

@ -0,0 +1,12 @@
include_defs('//ReactAndroid/DEFS')
android_library(
name = 'appregistry',
srcs = glob(['**/*.java']),
deps = [
react_native_target('java/com/facebook/react/bridge:bridge'),
],
visibility = [
'PUBLIC',
],
)

Просмотреть файл

@ -9,10 +9,9 @@ android_library(
react_native_dep('third-party/java/jsr-305:jsr-305'),
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/devsupport:devsupport'),
react_native_target('java/com/facebook/react/devsupport:interfaces'),
react_native_target('java/com/facebook/react/jstasks:jstasks'),
react_native_target('java/com/facebook/react/module/annotations:annotations'),
react_native_target('java/com/facebook/react/uimanager:uimanager'),
],
visibility = [
'PUBLIC',

Просмотреть файл

@ -18,7 +18,7 @@ import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.ReadableType;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.common.JavascriptException;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.module.annotations.ReactModule;

Просмотреть файл

@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.uimanager;
package com.facebook.react.modules.core;
import java.util.ArrayDeque;

Просмотреть файл

@ -35,11 +35,10 @@ import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.common.SystemClock;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.jstasks.HeadlessJsTaskEventListener;
import com.facebook.react.jstasks.HeadlessJsTaskContext;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.uimanager.ReactChoreographer;
/**
* Native module for JS timer execution. Timers fire on frame boundaries.

Просмотреть файл

@ -24,6 +24,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
/**
* Module that records debug information during transitions (animated navigation events such as

Просмотреть файл

@ -2,7 +2,7 @@ include_defs('//ReactAndroid/DEFS')
android_library(
name = 'debug',
srcs = glob(['**/*.java']),
srcs = glob(['*.java']),
deps = [
react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'),
react_native_dep('third-party/java/infer-annotations:infer-annotations'),
@ -10,6 +10,7 @@ android_library(
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/module/annotations:annotations'),
react_native_target('java/com/facebook/react/modules/debug:interfaces'),
react_native_target('java/com/facebook/react/uimanager:uimanager'),
],
visibility = [
@ -17,3 +18,12 @@ android_library(
],
)
android_library(
name = 'interfaces',
srcs = glob(['interfaces/*.java']),
deps = [
],
visibility = [
'PUBLIC',
],
)

Просмотреть файл

@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.modules.debug;
package com.facebook.react.modules.debug.interfaces;
/**
* Provides access to React Native developers settings.

Просмотреть файл

@ -19,6 +19,7 @@ android_library(
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/module/annotations:annotations'),
react_native_target('java/com/facebook/react/modules/core:core'),
react_native_target('java/com/facebook/react/modules/i18nmanager:i18nmanager'),
react_native_target('java/com/facebook/react/touch:touch'),
react_native_target('java/com/facebook/react/uimanager/annotations:annotations'),

Просмотреть файл

@ -29,6 +29,7 @@ import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.modules.core.ReactChoreographer;
import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
import com.facebook.systrace.Systrace;
import com.facebook.systrace.SystraceMessage;

Просмотреть файл

@ -24,7 +24,7 @@ import com.facebook.react.bridge.LifecycleEventListener;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.uimanager.ReactChoreographer;
import com.facebook.react.modules.core.ReactChoreographer;
import com.facebook.systrace.Systrace;
/**

Просмотреть файл

@ -20,7 +20,7 @@ rn_robolectric_test(
react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/common/network:network'),
react_native_target('java/com/facebook/react/devsupport:devsupport'),
react_native_target('java/com/facebook/react/devsupport:interfaces'),
react_native_target('java/com/facebook/react/jstasks:jstasks'),
react_native_target('java/com/facebook/react/modules/clipboard:clipboard'),
react_native_target('java/com/facebook/react/modules/common:common'),

Просмотреть файл

@ -16,10 +16,10 @@ import com.facebook.react.bridge.ExecutorToken;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.uimanager.ReactChoreographer;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.common.SystemClock;
import com.facebook.react.modules.core.JSTimersExecution;
import com.facebook.react.modules.core.ReactChoreographer;
import com.facebook.react.modules.core.Timing;
import org.junit.Before;