mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Adding interface to wrap surface interactions for LogBox
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
This commit is contained in:
committed by
Facebook GitHub Bot
parent
f2eecae63d
commit
652cb541a5
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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();
|
||||
}
|
||||
Reference in New Issue
Block a user