mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: This diff introduces a new interface named `SurfaceDelegate`. The interface abstracts the API for interacting with a surface, which is required for platforms other than mobile to implement how it wants to show and hide a surface. For existing Mobile use cases, the `LogBoxDialogSurfaceDelegate` is provided as a fallback solution so everything still works. Changelog: [Android][Added] - Add SurfaceDelegate abstraction to support interaction in multiple platforms and provide default implementation in LogBoxModule Reviewed By: mdvacca Differential Revision: D31132285 fbshipit-source-id: 13315a8bc5b7bcaee9b5e53ef5c6f6cc8cb01f31
41 lines
1.2 KiB
Java
41 lines
1.2 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.common;
|
|
|
|
/**
|
|
* Interface for handling a surface in React Native. In mobile platform a surface can be any
|
|
* container that holds some {@link View}. For example, a Dialog can be a surface to wrap content
|
|
* view object as needed. In VR platform, a surface is provided by Shell panel app sdk, which
|
|
* requires custom logic to show/hide. NativeModules requires a surface will delegate interactions
|
|
* with the surface to a SurfaceDelegate.
|
|
*/
|
|
public interface SurfaceDelegate {
|
|
/**
|
|
* Create the React content view that uses the appKey as the React application name
|
|
*
|
|
* @param appKey
|
|
*/
|
|
void createContentView(String appKey);
|
|
|
|
/**
|
|
* Check if the content view is created and ready to be shown
|
|
*
|
|
* @return true if the content view is ready to be shown
|
|
*/
|
|
boolean isContentViewReady();
|
|
|
|
/** Destroy the React content view to avoid memory leak */
|
|
void destroyContentView();
|
|
|
|
/** Show the surface containing the React content view */
|
|
void show();
|
|
|
|
/** Hide the surface containing the React content view */
|
|
void hide();
|
|
}
|