mirror of
https://github.com/status-im/react-native.git
synced 2025-02-26 08:05:34 +00:00
make mReactChoreographer final in Timing.java
Reviewed By: achen1 Differential Revision: D4883119 fbshipit-source-id: 1adb57f333742fca9c5e1ece6355ee18881c48a4
This commit is contained in:
parent
92f900c79d
commit
9c44630866
@ -23,7 +23,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||||||
|
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import com.facebook.infer.annotation.Assertions;
|
|
||||||
import com.facebook.react.bridge.Arguments;
|
import com.facebook.react.bridge.Arguments;
|
||||||
import com.facebook.react.bridge.ExecutorToken;
|
import com.facebook.react.bridge.ExecutorToken;
|
||||||
import com.facebook.react.bridge.LifecycleEventListener;
|
import com.facebook.react.bridge.LifecycleEventListener;
|
||||||
@ -125,8 +124,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
}
|
}
|
||||||
mTimersToCall.clear();
|
mTimersToCall.clear();
|
||||||
|
|
||||||
Assertions.assertNotNull(mReactChoreographer)
|
mReactChoreographer.postFrameCallback(ReactChoreographer.CallbackType.TIMERS_EVENTS, this);
|
||||||
.postFrameCallback(ReactChoreographer.CallbackType.TIMERS_EVENTS, this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,9 +144,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
mCurrentIdleCallbackRunnable = new IdleCallbackRunnable(frameTimeNanos);
|
mCurrentIdleCallbackRunnable = new IdleCallbackRunnable(frameTimeNanos);
|
||||||
getReactApplicationContext().runOnJSQueueThread(mCurrentIdleCallbackRunnable);
|
getReactApplicationContext().runOnJSQueueThread(mCurrentIdleCallbackRunnable);
|
||||||
|
|
||||||
Assertions.assertNotNull(mReactChoreographer).postFrameCallback(
|
mReactChoreographer.postFrameCallback(ReactChoreographer.CallbackType.IDLE_EVENT, this);
|
||||||
ReactChoreographer.CallbackType.IDLE_EVENT,
|
|
||||||
this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,8 +198,8 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
private final AtomicBoolean isRunningTasks = new AtomicBoolean(false);
|
private final AtomicBoolean isRunningTasks = new AtomicBoolean(false);
|
||||||
private final TimerFrameCallback mTimerFrameCallback = new TimerFrameCallback();
|
private final TimerFrameCallback mTimerFrameCallback = new TimerFrameCallback();
|
||||||
private final IdleFrameCallback mIdleFrameCallback = new IdleFrameCallback();
|
private final IdleFrameCallback mIdleFrameCallback = new IdleFrameCallback();
|
||||||
|
private final ReactChoreographer mReactChoreographer;
|
||||||
private @Nullable IdleCallbackRunnable mCurrentIdleCallbackRunnable;
|
private @Nullable IdleCallbackRunnable mCurrentIdleCallbackRunnable;
|
||||||
private @Nullable ReactChoreographer mReactChoreographer;
|
|
||||||
private boolean mFrameCallbackPosted = false;
|
private boolean mFrameCallbackPosted = false;
|
||||||
private boolean mFrameIdleCallbackPosted = false;
|
private boolean mFrameIdleCallbackPosted = false;
|
||||||
private final Set<ExecutorToken> mSendIdleEventsExecutorTokens;
|
private final Set<ExecutorToken> mSendIdleEventsExecutorTokens;
|
||||||
@ -232,6 +228,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
mTimerIdsToTimers = new HashMap<>();
|
mTimerIdsToTimers = new HashMap<>();
|
||||||
mSendIdleEventsExecutorTokens = new HashSet<>();
|
mSendIdleEventsExecutorTokens = new HashSet<>();
|
||||||
mIdleCallbackContextsToCall = new ArrayList<>();
|
mIdleCallbackContextsToCall = new ArrayList<>();
|
||||||
|
mReactChoreographer = ReactChoreographer.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -257,11 +254,6 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHostResume() {
|
public void onHostResume() {
|
||||||
if (mReactChoreographer == null) {
|
|
||||||
// Safe to acquire choreographer here, as onHostResume() is invoked from UI thread.
|
|
||||||
mReactChoreographer = ReactChoreographer.getInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
isPaused.set(false);
|
isPaused.set(false);
|
||||||
// TODO(5195192) Investigate possible problems related to restarting all tasks at the same
|
// TODO(5195192) Investigate possible problems related to restarting all tasks at the same
|
||||||
// moment
|
// moment
|
||||||
@ -271,11 +263,6 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHeadlessJsTaskStart(int taskId) {
|
public void onHeadlessJsTaskStart(int taskId) {
|
||||||
if (mReactChoreographer == null) {
|
|
||||||
// Safe to acquire choreographer here, as onHeadlessJsTaskStart() is invoked from UI thread.
|
|
||||||
mReactChoreographer = ReactChoreographer.getInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isRunningTasks.getAndSet(true)) {
|
if (!isRunningTasks.getAndSet(true)) {
|
||||||
setChoreographerCallback();
|
setChoreographerCallback();
|
||||||
maybeSetChoreographerIdleCallback();
|
maybeSetChoreographerIdleCallback();
|
||||||
@ -318,7 +305,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
|
|
||||||
private void setChoreographerCallback() {
|
private void setChoreographerCallback() {
|
||||||
if (!mFrameCallbackPosted) {
|
if (!mFrameCallbackPosted) {
|
||||||
Assertions.assertNotNull(mReactChoreographer).postFrameCallback(
|
mReactChoreographer.postFrameCallback(
|
||||||
ReactChoreographer.CallbackType.TIMERS_EVENTS,
|
ReactChoreographer.CallbackType.TIMERS_EVENTS,
|
||||||
mTimerFrameCallback);
|
mTimerFrameCallback);
|
||||||
mFrameCallbackPosted = true;
|
mFrameCallbackPosted = true;
|
||||||
@ -330,7 +317,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
HeadlessJsTaskContext.getInstance(getReactApplicationContext());
|
HeadlessJsTaskContext.getInstance(getReactApplicationContext());
|
||||||
if (mFrameCallbackPosted && isPaused.get() &&
|
if (mFrameCallbackPosted && isPaused.get() &&
|
||||||
!headlessJsTaskContext.hasActiveTasks()) {
|
!headlessJsTaskContext.hasActiveTasks()) {
|
||||||
Assertions.assertNotNull(mReactChoreographer).removeFrameCallback(
|
mReactChoreographer.removeFrameCallback(
|
||||||
ReactChoreographer.CallbackType.TIMERS_EVENTS,
|
ReactChoreographer.CallbackType.TIMERS_EVENTS,
|
||||||
mTimerFrameCallback);
|
mTimerFrameCallback);
|
||||||
mFrameCallbackPosted = false;
|
mFrameCallbackPosted = false;
|
||||||
@ -339,7 +326,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
|
|
||||||
private void setChoreographerIdleCallback() {
|
private void setChoreographerIdleCallback() {
|
||||||
if (!mFrameIdleCallbackPosted) {
|
if (!mFrameIdleCallbackPosted) {
|
||||||
Assertions.assertNotNull(mReactChoreographer).postFrameCallback(
|
mReactChoreographer.postFrameCallback(
|
||||||
ReactChoreographer.CallbackType.IDLE_EVENT,
|
ReactChoreographer.CallbackType.IDLE_EVENT,
|
||||||
mIdleFrameCallback);
|
mIdleFrameCallback);
|
||||||
mFrameIdleCallbackPosted = true;
|
mFrameIdleCallbackPosted = true;
|
||||||
@ -348,7 +335,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
|||||||
|
|
||||||
private void clearChoreographerIdleCallback() {
|
private void clearChoreographerIdleCallback() {
|
||||||
if (mFrameIdleCallbackPosted) {
|
if (mFrameIdleCallbackPosted) {
|
||||||
Assertions.assertNotNull(mReactChoreographer).removeFrameCallback(
|
mReactChoreographer.removeFrameCallback(
|
||||||
ReactChoreographer.CallbackType.IDLE_EVENT,
|
ReactChoreographer.CallbackType.IDLE_EVENT,
|
||||||
mIdleFrameCallback);
|
mIdleFrameCallback);
|
||||||
mFrameIdleCallbackPosted = false;
|
mFrameIdleCallbackPosted = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user