Agora Interactive Whiteboard Java API Reference
Classes | Public Member Functions | List of all members
com.herewhite.sdk.Room Class Reference
Inheritance diagram for com.herewhite.sdk.Room:
com.herewhite.sdk.Displayer

Public Member Functions

Boolean getDisconnectedBySelf ()
 
Boolean getWritable ()
 
Long getObserverId ()
 
void setGlobalState (GlobalState globalState)
 
void setMemberState (MemberState memberState)
 
void copy ()
 
void paste ()
 
void duplicate ()
 
void deleteOperation ()
 
void disableSerialization (boolean disable)
 
void redo ()
 
void undo ()
 
void setViewMode (ViewMode viewMode)
 
void disconnect ()
 
void disconnect (@Nullable final Promise< Object > promise)
 
void insertImage (ImageInformation imageInfo)
 
void completeImageUpload (String uuid, String url)
 
void insertImage (ImageInformationWithUrl imageInformationWithUrl)
 
void insertText (int x, int y, String text, Promise< String > promise)
 
void updateText (String id, String text)
 
GlobalState getGlobalState ()
 
void getGlobalState (final Promise< GlobalState > promise)
 
MemberState getMemberState ()
 
void getMemberState (final Promise< MemberState > promise)
 
RoomMember[] getRoomMembers ()
 
void getRoomMembers (final Promise< RoomMember[]> promise)
 
BroadcastState getBroadcastState ()
 
void getBroadcastState (final Promise< BroadcastState > promise)
 
SceneState getSceneState ()
 
void getSceneState (final Promise< SceneState > promise)
 
Scene[] getScenes ()
 
void getScenes (final Promise< Scene[]> promise)
 
double getZoomScale ()
 
void getZoomScale (final Promise< Number > promise)
 
RoomPhase getRoomPhase ()
 
void getRoomPhase (final Promise< RoomPhase > promise)
 
RoomState getRoomState ()
 
void getRoomState (final Promise< RoomState > promise)
 
void setScenePath (String path)
 
void setScenePath (String path, final Promise< Boolean > promise)
 
void setSceneIndex (Integer index, @Nullable final Promise< Boolean > promise)
 
void putScenes (String dir, Scene[] scenes, int index)
 
void moveScene (String sourcePath, String targetDirOrPath)
 
void removeScenes (String dirOrPath)
 
void cleanScene (boolean retainPpt)
 
void pptNextStep ()
 
void pptPreviousStep ()
 
void removePage (@Nullable Promise< Boolean > promise)
 
void removePage (int index, @Nullable Promise< Boolean > promise)
 
void zoomChange (double scale)
 
void debugInfo (final Promise< JSONObject > promise)
 
void disableOperations (final boolean disableOperations)
 
void setWritable (final boolean writable, @Nullable final Promise< Boolean > promise)
 
void disableEraseImage (boolean disable)
 
void disableCameraTransform (final boolean disableCameraTransform)
 
void disableDeviceInputs (final boolean disableOperations)
 
void setTimeDelay (double delaySec)
 
Double getTimeDelay ()
 
void syncBlockTimestamp (long utcMs)
 
void dispatchMagixEvent (AkkoEvent eventEntry)
 
void addApp (WindowAppParam appParam, Promise< String > promise)
 
void closeApp (String appId, Promise< Boolean > promise)
 
void focusApp (String appId)
 
void queryApp (String appId, Promise< WindowAppSyncAttrs > promise)
 
void queryAllApps (Promise< Map< String, WindowAppSyncAttrs > > promise)
 
void dispatchDocsEvent (WindowDocsEvent docsEvent, Promise< Boolean > promise)
 
void setSyncMode (boolean useSyncMode)
 
boolean isDisableInitialStateCallback ()
 
void setDisableInitialStateCallback (boolean disableInitialStateCallback)
 
- Public Member Functions inherited from com.herewhite.sdk.Displayer
void postIframeMessage (String string)
 
void postIframeMessage (WhiteObject object)
 
void getScenePathType (String path, final Promise< WhiteScenePathType > promise)
 
void getScene (String path, final Promise< Scene > promise)
 
void getEntireScenes (final Promise< Map< String, Scene[]> > promise)
 
void refreshViewSize ()
 
void scaleIframeToFit ()
 
void scalePptToFit ()
 
void scalePptToFit (AnimationMode mode)
 
void addMagixEventListener (String eventName, EventListener eventListener)
 
void addHighFrequencyEventListener (String eventName, FrequencyEventListener eventListener, Integer fireInterval)
 
void removeMagixEventListener (String eventName)
 
void convertToPointInWorld (double x, double y, final Promise< Point > promise)
 
void setCameraBound (CameraBound bound)
 
void setBackgroundColor (@ColorInt int intColor)
 
int getBackgroundColor ()
 
void getScenePreviewImage (String scenePath, final Promise< Bitmap > promise)
 
void getSceneSnapshotImage (String scenePath, final Promise< Bitmap > promise)
 
void disableCameraTransform (Boolean disable)
 
void moveCamera (CameraConfig camera)
 
void moveCameraToContainer (RectangleConfig rectangle)
 

Additional Inherited Members

- Protected Member Functions inherited from com.herewhite.sdk.Displayer
void post (Runnable runnable)
 
- Protected Attributes inherited from com.herewhite.sdk.Displayer
final JsBridgeInterface bridge
 
String uuid
 
int densityDpi
 
- Static Protected Attributes inherited from com.herewhite.sdk.Displayer
static final Gson gson = new Gson()
 

Detailed Description

The Room class, which provides methods to operate a live Interactive Whiteboard room.

Member Function Documentation

◆ getDisconnectedBySelf()

Boolean com.herewhite.sdk.Room.getDisconnectedBySelf ( )

Gets whether the SDK calls disconnect to disconnect from the live Interactive Whiteboard room.

This method can prevent the SDK from reconnecting to the room repeatedly.

◆ getWritable()

Boolean com.herewhite.sdk.Room.getWritable ( )

Gets whether the local user is in interactive mode in the room.

Returns
Whether the local user is in interactive mode:
  • true: In interactive mode. The user has read and write permissions on the whiteboard.
  • false: In subscription mode. The user has read-only access to the whiteboard.

◆ getObserverId()

Long com.herewhite.sdk.Room.getObserverId ( )

Gets the user ID of the local user.

Since
2.4.11
Returns
The user ID of the local user.

◆ setGlobalState()

void com.herewhite.sdk.Room.setGlobalState ( GlobalState  globalState)

Modifies the globalState object of the live Interactive Whiteboard room.

The globalState object of the live Interactive Whiteboard room is a public global variable. All users in the room can read the globalState object, while users in interactive mode can modify the globalState object. The modified globalState object will be updated to all users in the room immediately.

Parameters
globalStateThe global public state the room. See GlobalState.

◆ setMemberState()

void com.herewhite.sdk.Room.setMemberState ( MemberState  memberState)

Modifies the state of the whiteboard tool currently in use.

A successful call of this method updates the MemberState of the room immediately.

You can call getMemberState to get the latest MemberState.

Parameters
memberStateThe state of the whiteboard tool. See MemberState.

◆ copy()

void com.herewhite.sdk.Room.copy ( )

Copies the selected content.

Since
2.9.3

This method stores the selected content to the memory, but does not paste it to the whiteboard.

Note
This method takes effect only when you set disableSerialization as false.

◆ paste()

void com.herewhite.sdk.Room.paste ( )

Pastes the copied content.

Since
2.9.3

This method pastes the content copied by the copy method into the user view on the whiteboard.

Note
  • This method takes effect only when you set disableSerialization as false.
  • If you call this method multiple times, random offset may occur, which causes the pasted content not to center the user view.

◆ duplicate()

void com.herewhite.sdk.Room.duplicate ( )

Duplicates the selected content.

Since
2.9.3

This method copies and pastes the selected content copied into the user view on the whiteboard.

Note
  • This method takes effect only when you set disableSerialization as false.
  • If you call this method multiple times, random offset may occur, which causes the pasted content not to center the user view.

◆ deleteOperation()

void com.herewhite.sdk.Room.deleteOperation ( )

Deletes the selected content.

Since
2.9.3

◆ disableSerialization()

void com.herewhite.sdk.Room.disableSerialization ( boolean  disable)

Disables/Enables the local serialization.

Since
2.9.3

The following methods cannot take effect after the setting of disableSerialization(true):

  • redo
  • undo
  • duplicate
  • copy
  • paste
Warning
To set disableSerialization as false, ensure that every user in the room uses one of the following SDKs; otherwise, the application may crash:
  • Web SDK v2.9.3 or later
  • Android SDK v2.9.3 or later
  • iOS SDK v2.9.3 or later
Parameters
disableWhether to disable the local serialization:
  • true: (Default) Disable the local serialization.
  • false: Enable the local serialization.

◆ redo()

void com.herewhite.sdk.Room.redo ( )

Redoes an undone action.

Since
2.9.3
Note
This method takes effect only when you set disableSerialization as false.

◆ undo()

void com.herewhite.sdk.Room.undo ( )

Undoes an action.

Since
2.9.3
Note
This method takes effect only when you set disableSerialization as false.

◆ setViewMode()

void com.herewhite.sdk.Room.setViewMode ( ViewMode  viewMode)

Set the view modes of the user.

In the live Interactive Whiteboard room, you can set one of the following view modes for a user:

  • Broadcaster: Host mode.
  • Follower: Follower mode.
  • Freedom: (Default) Freedom mode.
Note
The view mode setting of a user is affected by the view mode setting of other users in the room as follows:
  • When there is no host in the room, all users are in Freedom view mode by default.
  • When a user’s view mode is set as Broadcaster, the view mode of every other user in the room (including users that join subsequently) is automatically set as 'Follower'.
  • When a user in Follower view mode operates the whiteboard, their view mode automatically switches to Freedom mode. If needed, you can call disableOperations(true) to disable the user from operating the whiteboard, so as to lock their view mode.

This method call is asynchronous. After calling this method, you can call the getBroadcastState[2/2] method to get the latest view mode of the user.

Parameters
viewModeThe view mode of the user. See ViewMode.

◆ disconnect() [1/2]

void com.herewhite.sdk.Room.disconnect ( )

Disconnects from the live Interactive Whiteboard room.

A successful call of this method allows the user to leave the room and releases all resources related to the room. The user that has left the room must call joinRoom[1/2] or joinRoom[2/2] again to join the room.

Note
This method does not trigger a callback to report whether the SDK successfully disconnects from the room. You can use disconnect[2/2] instead.

◆ disconnect() [2/2]

void com.herewhite.sdk.Room.disconnect ( @Nullable final Promise< Object >  promise)

Disconnects from the live Interactive Whiteboard room.

A successful call of this method allows the user to leave the room and releases all resources related to the room. The user that has left the room must call joinRoom[1/2] or joinRoom[2/2] again to join the room.

You can pass in an instance of the Promise<Object> interface to get the call result of this method.

Parameters
promiseThe Promise<Object> interface instance. See Promise. You can get the call result of disconnect through this interface:
  • The global state of the room, if the method call succeeds.
  • An error message, if the method call fails.

◆ insertImage() [1/2]

void com.herewhite.sdk.Room.insertImage ( ImageInformation  imageInfo)

Inserts an image placeholder on the whiteboard.

The method sets up and inserts an image placeholder on the whiteboard per imageInfo you pass in. You also need to call completeImageUpload to pass in the URL address of the image to insert and display the image in the placeholder.

Note
You can call insertImage to pass in the image information and URL address at the same time.
Parameters
imageInfoThe image information. See ImageInformation.

◆ completeImageUpload()

void com.herewhite.sdk.Room.completeImageUpload ( String  uuid,
String  url 
)

Displays an image in the specified image placeholder.

The method inserts and displays an image in the specified image placeholder.

Note
Ensure that you have called insertImage to insert an image placeholder on the whiteboard.
Parameters
uuidThe unique identifier of the image, which is the image UUID that you pass in ImageInformation of the insertImage method.
urlThe URL address of the image. Ensure the application client can access the URL; otherwise, the image cannot be displayed.

◆ insertImage() [2/2]

void com.herewhite.sdk.Room.insertImage ( ImageInformationWithUrl  imageInformationWithUrl)

Inserts and displays an image on the whiteboard.

This method wraps the insertImage and completeImageUpload methods. You can pass in the image information and URL address at the same time in this method to directly insert and display the image on the whiteboard.

Parameters
imageInformationWithUrlThe information and the URL address of the image. See ImageInformationWithUrl

◆ insertText()

void com.herewhite.sdk.Room.insertText ( int  x,
int  y,
String  text,
Promise< String >  promise 
)

Inserts text at a specified position.

Parameters
xThe X coordinate of the midpoint of the left edge of the first character in the world coordinate system.
yThe Y coordinate of the midpoint of the left edge of the first character in the world coordinate system.
textThe initial text. If you do not pass in a value, the content is empty.
promiseThe Promise<String> interface instance. See Promise. You can get the call result of this method through this interface:
  • The text identifier, if the method call succeeds.
  • An error message, if the method call fails.

◆ updateText()

void com.herewhite.sdk.Room.updateText ( String  id,
String  text 
)

Updates the content of the specified text.

Parameters
idThe text identifier, which is the callback value of the insertText method.
textThe text content.

◆ getGlobalState() [1/2]

GlobalState com.herewhite.sdk.Room.getGlobalState ( )

Gets the global state of the room.

Since
2.4.0
Note
  • This method call is synchronous.
  • This method can get and cast the custom GlobalState set by the setCustomGlobalStateClass method.
  • You can call this method immediately after calling the setGlobalState method.
Returns
The global state of the room. See GlobalState.

◆ getGlobalState() [2/2]

void com.herewhite.sdk.Room.getGlobalState ( final Promise< GlobalState promise)

Gets the global state of the room.

Deprecated:
This method is deprecated. Use getGlobalState[1/2] instead.
Note
  • This method call is asynchronous.
  • This method can get and cast the custom GlobalState set by the setCustomGlobalStateClass method.
Parameters
promiseThe Promise<GlobalState> interface instance. See Promise. You can get the call result of getGlobalState through this interface:
  • The GlobalState object, if the method call succeeds. See GlobalState.
  • An error message, if the method call fails.

◆ getMemberState() [1/2]

MemberState com.herewhite.sdk.Room.getMemberState ( )

Gets the state of the whiteboard tool currently in use.

Since
2.4.0
Note
  • This method call is synchronous.
  • You can call this method to get the latest MemberState immediately after calling the setMemberState method.
Returns
The state of the whiteboard tool currently in use. See MemberState.

◆ getMemberState() [2/2]

void com.herewhite.sdk.Room.getMemberState ( final Promise< MemberState promise)

Gets the state of the whiteboard tool currently in use.

Note
This method call is asynchronous.
Parameters
promiseThe Promise<MemberState> interface instance. See Promise. You can get the call result of getMemberState through this interface:
  • The MemberState object, if the method call succeeds. See MemberState.
  • An error message, if the method call fails.

◆ getRoomMembers() [1/2]

RoomMember[] com.herewhite.sdk.Room.getRoomMembers ( )

Gets the list of members in the room.

Note
  • This method call is synchronous.
  • Only users in interactive mode (with read and write permissions) are room members; users in subscription mode (with read-only permission) are not included in the member list.
Returns
The member list of the room. See RoomMember.

◆ getRoomMembers() [2/2]

void com.herewhite.sdk.Room.getRoomMembers ( final Promise< RoomMember[]>  promise)

Gets the list of members in the room.

Note
  • This method call is asynchronous.
  • Only users in interactive mode (with read and write permissions) are room members; users in subscription mode (with read-only permission) are not included in the member list.
Parameters
promiseThePromise<RoomMember[]> interface instance. SeePromise. You can get the call result of getRoomMembers through this interface:
  • The member list of the room, if the method call succeeds. See RoomMember.
  • An error message, if the method call fails.

◆ getBroadcastState() [1/2]

BroadcastState com.herewhite.sdk.Room.getBroadcastState ( )

Gets the view state of the user.

Since
2.4.0
Note
  • This method call is synchronous.
  • You cannot get the latest view state of the user by calling this method immediately after calling setViewMode. In this case, use getBroadcastState[2/2] instead.
Returns
The view state of the user. See BroadcastState.

◆ getBroadcastState() [2/2]

void com.herewhite.sdk.Room.getBroadcastState ( final Promise< BroadcastState promise)

Gets the view state of the user.

Note
  • This method call is asynchronous.
  • You cannot get the latest view state of the user by calling getBroadcastState[1/2] immediately after calling setViewMode. In this case, use this method instead.
Parameters
promiseThe Promise<BroadcastState> interface instance. See Promise. You can get the call result of getBroadcastState through this interface:
  • The view state of the user, if the method call succeeds. See BroadcastState.
  • An error message, if the method call fails.

◆ getSceneState() [1/2]

SceneState com.herewhite.sdk.Room.getSceneState ( )

Gets the state of the scenes under the current scene directory.

Since
2.4.0
Note

In ths case, use getSceneState[2/2] instead.

Returns
The state of the scenes under the current scene directory. See SceneState.

◆ getSceneState() [2/2]

void com.herewhite.sdk.Room.getSceneState ( final Promise< SceneState promise)

Gets the state of the scenes under the current scene directory.

Note
Parameters
promiseThe Promise<SceneState> interface instance. See Promise. You can get the call result of getSceneState through this interface:
  • The scene state under the current scene directory, if the method call succeeds. See SceneState.
  • An error message, if the method call fails.

◆ getScenes() [1/2]

Scene[] com.herewhite.sdk.Room.getScenes ( )

Gets the list of scenes under the current scene directory.

Since
2.4.0
Note
Returns
The list of scenes under the current scene directory. See Scene.

◆ getScenes() [2/2]

void com.herewhite.sdk.Room.getScenes ( final Promise< Scene[]>  promise)

Gets the list of scenes under the current scene directory.

Note
Parameters
promiseThe Promise<Scene[]> interface instance. See Promise. You can get the call result of getScenes through this interface:
  • The list of scenes under the current scene directory, if the method call succeeds. See Scene.
  • An error message, if the method call fails.

◆ getZoomScale() [1/2]

double com.herewhite.sdk.Room.getZoomScale ( )

Gets the scale of the view.

Since
2.4.0
Deprecated:
This method is deprecated.
Note
Returns
The scale of the view.

◆ getZoomScale() [2/2]

void com.herewhite.sdk.Room.getZoomScale ( final Promise< Number >  promise)

Gets the scale of the view.

Deprecated:
This method is deprecated.
Note
Parameters
promiseThe Promise<Number> interface instance. See Promise. You can get the call result of getZoomScale through this interface:
  • The scale of the view, if the method call succeeds.
  • An error message, if the method call fails.

◆ getRoomPhase() [1/2]

RoomPhase com.herewhite.sdk.Room.getRoomPhase ( )

Gets the connection state of the room.

Since
2.4.0
Note
  • This method call is synchronous.
  • You cannot get the latest connection state of the room through getRoomPhase[1/2] immediately after calling disconnect[1/2] or disconnect[2/2]. In this case, you can use getRoomPhase[2/2] instead.
Returns
The connection state of the room. See RoomPhase.

◆ getRoomPhase() [2/2]

void com.herewhite.sdk.Room.getRoomPhase ( final Promise< RoomPhase promise)

Gets the connection state of the room.

Note
  • This method call is asynchronous.
  • You cannot get the latest connection state of the room through getRoomPhase[1/2] immediately after calling disconnect[1/2] or disconnect[2/2]. In this case, you can use getRoomPhase[2/2] instead.
Parameters
promiseThe Promise<RoomPhase> interface instance. See Promise. You can get the call result of getRoomPhase through this interface:
  • The connection state of the room, if the method call succeeds. See RoomPhase.
  • An error message, if the method call fails.

◆ getRoomState() [1/2]

RoomState com.herewhite.sdk.Room.getRoomState ( )

Gets the current room state.

Since
2.4.0
Note
  • This method call is synchronous.
  • You cannot get the latest room state through getRoomState[1/2] immediately after modifying the RoomState variables. In this case, you can user getRoomState[2/2] instead.
Returns
The current room state. See RoomState.

◆ getRoomState() [2/2]

void com.herewhite.sdk.Room.getRoomState ( final Promise< RoomState promise)

Gets the current room state.

Note
  • This method call is synchronous.
  • You cannot get the latest room state through getRoomState[1/2] immediately after modifying the RoomState variables. In this case, you can user getRoomState[2/2] instead.
Parameters
promiseThe Promise<RoomState> interface instance. See Promise. You can get the call result of getRoomState through this interface:
  • The current room state, if the method call succeeds. See RoomState.
  • An error message, if the method call fails.

◆ setScenePath() [1/2]

void com.herewhite.sdk.Room.setScenePath ( String  path)

Switches to the specified scene.

A successful call of this method switches the whiteboard scene to the specified scene.

Note
  • This method call is synchronous.
  • To get the callback of the method call, use setScenePath[2/2] instead.

The scene switch may fail due to the following reasons:

  • The specified scene path is invalid. Ensure the scene path stars with / and consists of the scene directory and scene name.
  • The specified scene does not exist.
  • The path passed in is the path of the scene directory, not the path of the scene.
Parameters
pathThe path of the scene that you want to switch to. Ensure the scene path stars with / and consists of the scene directory and scene name. For example, /math/classA.

◆ setScenePath() [2/2]

void com.herewhite.sdk.Room.setScenePath ( String  path,
final Promise< Boolean >  promise 
)

Switches to the specified scene.

A successful call of this method switches the whiteboard scene to the specified scene.

Note
This method call is asynchronous.

The scene switch may fail due to the following reasons:

  • The specified scene path is invalid. Ensure the scene path stars with / and consists of the scene directory and scene name.
  • The specified scene does not exist.
  • The path passed in is the path of the scene directory, not the path of the scene.
Parameters
pathThe path of the scene that you want to switch to,Ensure the scene path stars with / and consists of the scene directory and scene name. For example, /math/classA.
promiseThe Promise<Boolean> interface instance. See Promise. You can get the call result of setScenePath through this interface:
  • true, if the method call succeeds.
  • An error message, if the method call fails.

◆ setSceneIndex()

void com.herewhite.sdk.Room.setSceneIndex ( Integer  index,
@Nullable final Promise< Boolean >  promise 
)

Switches to the specified scene under the current scene directory.

A successful call of this method switches the whiteboard scene to the specified scene.

Note
The specified scene must exist in the current scene directory; otherwise, the method call fails.
Parameters
indexThe index of the target scene in the current scene directory.
promiseThe Promise<Boolean> interface instance. See Promise. You can get the call result of setSceneIndex through this interface:
  • true, if the method call succeeds.
  • An error message, if the method call fails.

◆ putScenes()

void com.herewhite.sdk.Room.putScenes ( String  dir,
Scene[]  scenes,
int  index 
)

Inserts multiples scenes under the specified scene directory.

Note
This method does not switch the whiteboard scene to any of the newly inserted scenes. You need to call setScenePath( to switch to one of the newly inserted scenes.
Parameters
dirThe path of the scene directory, which must starts with / and cannot be the path of a scene. For example, "/math".
scenesAn array of scenes. For the files of a single scene, see Scene.
indexThe index of the first scene to be inserted. The index of scene under a scene directory can start from 0. If the index is greater than the total number of existing scenes under the scene directory, the new scene is put after the last scene.

Example


room.putScenes("ppt", new Scene[]{new Scene("page1", new PptPage("https://white-pan.oss-cn-shanghai.aliyuncs.com/101/image/alin-rusu-1239275-unsplash_opt.jpg", 1024d, 768d))}, 0);
room.setScenePath("ppt" + "/page1");

◆ moveScene()

void com.herewhite.sdk.Room.moveScene ( String  sourcePath,
String  targetDirOrPath 
)

Moves a scene.

After a scene is moved, the path of the scene changes.

Note
  • This method cannot move a scene directory, which means you can only pass in the path of a scene in the sourcePath parameter.
  • The method supports moving the specified scene under the current scene directory or to another scene directory. Therefore, you can pass in either the path of the target scene directory or the target path of the scene under the current directory in the targetDirOrPath parameter.
Parameters
sourcePathThe original path of the scene to be moved. It cannot be the path of a scene directory.
targetDirOrPathThe path of the target scene directory or the target path of the scene under the current directory:
  • If you pass in the path of the target scene directory, the path of the scene changes, but the name of the scene does not change.
  • If you pass in the target path of the scene under the current directory, both the path of the scene and the name of the scene change.

◆ removeScenes()

void com.herewhite.sdk.Room.removeScenes ( String  dirOrPath)

Deletes a scene or a scene directory.

Note
  • There must be at least one scene in the live Interactive Whiteboard room. If you delete all scenes, the SDK automatically creates an initial scene with the path of /init.
  • If you delete the current whiteboard scene, the whiteboard displays the last scene under the current scene directory.
  • If you delete a scene directory, all scenes under the directory will be deleted.
  • If you delete the current scene directory, for example, dirA, the SDK executes upward recursive logic to locate the new scene:
    1. If there is a scene directory after the deleted scene directory under the same directory, for example, dirB,the SDK switches the whiteboard scene to the first scene under dirB (with the index of 0).
    2. If there is no scene directory after the deleted scene directory under the same directory, then the SDK looks for scenes under the directory. If there are scenes under the directory, the SDK switches the whiteboard scene to the first scene (with the index of 0).
    3. If there is neither a scene directory after the deleted scene directory nor scenes under the same directory, then the SDK looks for scene directories before the deleted scene directory. If there is a scene directory, for example, dirC, before the deleted dirA, then the SDK switches the whiteboard scene to the first scene under dirC (with the index of 0). The SDK continues executing upward recursive logic until a new scene is found.
Parameters
dirOrPathThe path of a scene or a scene directory. If you pass in the path of a scene directory, this method deletes all scenes under the directory.

◆ cleanScene()

void com.herewhite.sdk.Room.cleanScene ( boolean  retainPpt)

Clears all contents on the current scene.

Parameters
retainPptWhether to retain the PPT slide:
  • true: Leave the PPT slide on the scene.
  • false: Clear the PPT slide together with all other contents.

◆ pptNextStep()

void com.herewhite.sdk.Room.pptNextStep ( )

Plays the next slide of the PPT file.

Since
2.2.0

When the current PPT slide finishes playing, the SDK switches to the next scene to play the next PPT slide.

◆ pptPreviousStep()

void com.herewhite.sdk.Room.pptPreviousStep ( )

Returns to the previous slide of the PPT file.

Since
2.2.0

When the current PPT slide is rolled back, the SDK switches back to the previous scene to play the previous PPT slide.

◆ removePage() [1/2]

void com.herewhite.sdk.Room.removePage ( @Nullable Promise< Boolean >  promise)

Removes the current page. When in multi-window mode, removes the current page of the main whiteboard scene.

Since
2.16.23

◆ removePage() [2/2]

void com.herewhite.sdk.Room.removePage ( int  index,
@Nullable Promise< Boolean >  promise 
)

Removes the current page. When in multi-window mode, removes the current page of the main whiteboard scene.

Since
2.16.23
Parameters
indexThe index number of the specified page.

◆ zoomChange()

void com.herewhite.sdk.Room.zoomChange ( double  scale)

Sets the scale of the view.

Deprecated:
This method is deprecated. Use moveCamera instead.
Parameters
scaleThe scale of the view.

◆ debugInfo()

void com.herewhite.sdk.Room.debugInfo ( final Promise< JSONObject >  promise)

Gets debug logs.

Since
2.6.2
Parameters
promiseThe Promise<JSONObject> interface instance. See Promise. You can get the call result of debugInfo through this interface:
  • The debug logs, if the method call succeeds.
  • An error message, if the method call fails.

◆ disableOperations()

void com.herewhite.sdk.Room.disableOperations ( final boolean  disableOperations)

Disables the whiteboard from responding to users' operations.

This method disables the whiteboard from responding to the following operations of users:

  • CameraTransform: Adjusting the view of the whiteboard, including moving and zooming the view.
  • DeviceInputs: Using the whiteboard tool.
Parameters
disableOperationsWhether to disable the whiteboard from responding to users' operations:
  • true: Disable the whiteboard from responding to users' operations.
  • false: (Default) Enable the whiteboard to respond to users' operations.

◆ setWritable()

void com.herewhite.sdk.Room.setWritable ( final boolean  writable,
@Nullable final Promise< Boolean >  promise 
)

Sets whether a user is in interactive mode in the room.

Since
2.6.1

Users in the live Interactive Whiteboard room can be in one of the following modes

  • Interactive mode, in which users have read and write permissions on the whiteboard, appear in the member list of the room, and are visible to all other users in the room.
  • Subscription mode, in which users have read-only access to the whiteboard, do not appear in the member list of the room, and are invisible to all other users in the room.
Parameters
writableWhether the user is in interactive mode:
  • true: The user is in interactive mode.
  • false: The user is in subscription mode.
promiseThe Promise<Boolean> interface instance. See Promise. You can get the call result of setWritable through this interface:
  • Whether the user is interactive mode, if the method call succeeds.
  • An error message, if the method call fails.

◆ disableEraseImage()

void com.herewhite.sdk.Room.disableEraseImage ( boolean  disable)

Disables the eraser from erasing images on the whiteboard.

Since
2.9.3
Parameters
disableWhether to disable the eraser from erasing images on the whiteboard:
  • true: Disable the eraser from erasing images.
  • false: (Default) Enable the eraser to erase images.

◆ disableCameraTransform()

void com.herewhite.sdk.Room.disableCameraTransform ( final boolean  disableCameraTransform)

Disables the local user from adjusting the view of the whiteboard, including moving and zooming the view.

Since
2.2.0
Parameters
disableCameraTransformWhether to disable the local user from adjusting the view of the whiteboard:
  • true: Disable the local user from adjusting the view of the whiteboard.
  • false: (Default) Enable the local user to adjust the view of the whiteboard.

◆ disableDeviceInputs()

void com.herewhite.sdk.Room.disableDeviceInputs ( final boolean  disableOperations)

Disables the whiteboard tools from responding to users' inputs.

Since
2.2.0
Parameters
disableOperationsWhether to disable the whiteboard tools from responding to users' inputs:
  • true: Disable the whiteboard tools from responding to users' inputs.
  • false: (Default) Enable the whiteboard tools to respond to users' inputs.

◆ setTimeDelay()

void com.herewhite.sdk.Room.setTimeDelay ( double  delaySec)

Sets the delay time (s) for displaying remote whiteboard contents on the local client.

After you set this parameter, when the local user receives the remote whiteboard contents, the SDK delays displaying the contents based on the value of timeDelay.

In scenarios with significant audio and video transmission delays, for example, when using a CDN to distribute audio and video streams, you can use this parameter to delay displaying the received remote whiteboard contents, so as to ensure that the whiteboard contents and the audio and video streams are synchronized.

Parameters
delaySecThe delay time in seconds, which must be equal to or greater than 0. The default value is 0.

◆ getTimeDelay()

Double com.herewhite.sdk.Room.getTimeDelay ( )

Gets the delay time (s) for displaying remote whiteboard contents on the local client.

Returns
The delay time in seconds.

◆ syncBlockTimestamp()

void com.herewhite.sdk.Room.syncBlockTimestamp ( long  utcMs)

Sets the Unix timestamp (ms) for displaying remote whiteboard contents on the local client.

Since
2.12.26

After you call this method, the SDK displays the received remote whiteboard contents based on the value of timestamp you set in this method.

In scenarios where users subscribe to audio and video streams and whiteboard contents at the same time, you can obtain time information from the SEI frame attached to the audio and video streams, and call this method to set the local display time for the remote whiteboard contents, so as to ensure audio and video streams and the whiteboard contents are synchronized in real time.

Parameters
utcMsThe Unix timestamp (ms) for displaying remote whiteboard contents on the local client.

◆ dispatchMagixEvent()

void com.herewhite.sdk.Room.dispatchMagixEvent ( AkkoEvent  eventEntry)

Send a custom event.

Note
All users that listen for this event receive the notification.
Parameters
eventEntryThe custom event. See AkkoEvent.

◆ addApp()

void com.herewhite.sdk.Room.addApp ( WindowAppParam  appParam,
Promise< String >  promise 
)

Inserts a window app.

In multi-window mode, you can insert a PPT or custom plugin as a window app to display it in a new window.

Parameters
appParamThe properties of the window app. See WindowAppParam.
promiseThe Promise<String> interface instance. See Promise. You can use this interface to get the result of calling addApp:
  • Returns the window app ID if the method call succeeds.
  • Returns an error message if the method call fails.
Note
Inserting the same window app multiple times will result in failure, and the returned appId will be nil.

◆ closeApp()

void com.herewhite.sdk.Room.closeApp ( String  appId,
Promise< Boolean >  promise 
)

Closes the window of the specified window app.

This method is only valid in multi-window mode, and the callback will be triggered regardless of whether the app ID is valid or not.

Parameters
appIdThe window app ID.
promiseThe Promise<Boolean> interface instance. See Promise. You can use this interface to get the result of calling closeApp:
  • Returns true if the method call succeeds and the window is closed.
  • Returns an error message if the method call fails.

◆ focusApp()

void com.herewhite.sdk.Room.focusApp ( String  appId)

Switches the focused window to the window of the specified window app.

This method is only valid in multi-window mode.

Parameters
appIdThe window app ID.

◆ queryApp()

void com.herewhite.sdk.Room.queryApp ( String  appId,
Promise< WindowAppSyncAttrs >  promise 
)

Queries the information of the specified window app.

This method is only valid in multi-window mode.

Parameters
appIdThe window app ID.
promiseThe Promise<Object> interface instance. See Promise. You can use this interface to get the result of calling queryApp:
  • Returns the information of the window app. See WindowAppSyncAttrs if the method call succeeds.
  • Returns an error message if the method call fails.

◆ queryAllApps()

void com.herewhite.sdk.Room.queryAllApps ( Promise< Map< String, WindowAppSyncAttrs > >  promise)

Queries the information of all window apps.

This method is only valid in multi-window mode.

Parameters
promiseThe Promise<Object> interface instance. See Promise. You can use this interface to get the result of calling queryAllApps:
  • Returns a dictionary containing the information of all window apps, with the app ID as the key. See WhiteAppSyncAttributes if the method call succeeds.
  • Returns an error message if the method call fails.

◆ dispatchDocsEvent()

void com.herewhite.sdk.Room.dispatchDocsEvent ( WindowDocsEvent  docsEvent,
Promise< Boolean >  promise 
)

Dispatches a doc event.

Parameters
docsEventThe content of the doc event. See WindowDocsEvent.
promiseThe Promise<Boolean> interface instance. See Promise. You can use this interface to get the result of calling dispatchDocsEvent:
  • Returns true, if the method call succeeds.
  • An error message, if the method call fails.

◆ setSyncMode()

void com.herewhite.sdk.Room.setSyncMode ( boolean  useSyncMode)

By default, all synchronization messages are processed at a relatively smooth pace to ensure a smooth user experience. If this option is set to true, all messages will be processed immediately upon receipt, ensuring real-time synchronization.

Parameters
useSyncModeWhether to enable sync mode:
  • true: Enable sync mode.
  • false: Disable sync mode.

◆ isDisableInitialStateCallback()

boolean com.herewhite.sdk.Room.isDisableInitialStateCallback ( )

Gets whether the initial state callback is disabled.

◆ setDisableInitialStateCallback()

void com.herewhite.sdk.Room.setDisableInitialStateCallback ( boolean  disableInitialStateCallback)

Disables the initial state callback.

Parameters
disableInitialStateCallback
  • true: Disable.
  • false: (Default) Do not disable.