Files
react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java
T
David Vacca 619e27e9a1 Annotate core classes of Fabric with NonNull and Nullable annotations
Summary:
This diff annotates core classes of Fabric with NonNull and Nullable annotations, this will help analysis of nullability plus improving integration with Kotlin clients

Changelog: Add NonNull annotation to Fabric core classes

Reviewed By: shergin

Differential Revision: D18010918

fbshipit-source-id: 40fe68470b97cdf740f52dfeb9130465aab5e6df
2019-10-25 15:11:51 -07:00

43 lines
1.3 KiB
Java

/*
* 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.
*/
package com.facebook.react.fabric;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.modules.core.ChoreographerCompat;
public abstract class GuardedFrameCallback extends ChoreographerCompat.FrameCallback {
@NonNull private final NativeModuleCallExceptionHandler mExceptionHandler;
@Deprecated
protected GuardedFrameCallback(@NonNull ReactContext reactContext) {
this(reactContext.getExceptionHandler());
}
protected GuardedFrameCallback(@NonNull NativeModuleCallExceptionHandler exceptionHandler) {
mExceptionHandler = exceptionHandler;
}
@Override
public final void doFrame(long frameTimeNanos) {
try {
doFrameGuarded(frameTimeNanos);
} catch (RuntimeException e) {
mExceptionHandler.handleException(e);
}
}
/**
* Like the standard doFrame but RuntimeExceptions will be caught and passed to {@link
* com.facebook.react.bridge.ReactContext#handleException(RuntimeException)}.
*/
protected abstract void doFrameGuarded(long frameTimeNanos);
}