Get desktop application:
View/edit binary Protocol Buffers messages
Creates a shared memory buffer. This is a method that doesn't generate a message as a response. Instead the buffer id is send as a signed 32bit integer. If the integer is negative, creation failed. If the integer is positive, creation succeeded and you will get another byte (the value can be discarded) with a file descriptor for the memory region as ancillary data.
Used in:
The buffer format.
The buffer width.
The buffer height.
Available color formats.
Used in:
Use the ARGB8888 format.
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Send when Airplane mode changes.
Used in:
Allow the WebView to open content URIs.
Used in:
Allow Javascript to run in the WebView. The user gets asked for this and can deny it.
Used in:
Allow clicking links to navigate in the WebView.
Used in:
Send when a back button press is intercepted.
Used in:
Blit the buffer to the underlying image inside the plugin. Refreshing ImageViews or setting the ImageView to show this buffer will now show the updated contents.
Used in:
Bring a Task to the front, showing it to the user.
Used in:
The id of the Task.
Dismiss a notification.
Used in:
Send when a View is clicked. Enabled automatically for Views it makes sense for (i.e. Buttons).
Used in:
The checked status for View that can be checked.
Send when the configuration of an Activity updates, i.e. because the screen was rotated.
Used in:
The configuration of an Activity.
Used in:
,Is dark mode enabled?
The current country code.
The current language code.
The current screen orientation. Only valid values are landscape, portrait and unspecified
Is the software keyboard showing?
Screen width in pixels.
Screen height in pixels.
The font scale, such that sp = fontscale * px
The density of the display.
Sets the behaviour of the status and navigation bar.
Used in:
The id of the Activity.
The bars that should be shown.
How the bars should behave to user input.
Whether the Activity will be shown under display cutouts. This is a no-op before API level 30.
How the hidden bars should behave.
Used in:
Show the bars on system gestures like swipe from the top or the bottom of the screen.
Like BAR_BEHAVIOUR_DEFAULT, but the bars will be shown transparent, temporarily and overlay over the window.
Which bars should be hidden/shown.
Used in:
,Both the navigation and the status bar.
Navigation bar only.
Status bar only.
No bar.
Information necessary for the creation of View, encapsulated as a message type for simplicity.
Used in:
, , , , , , , , , , , , , , , , , , , ,The Activity of the View.
The parent View id. Use -1 if you want to set the top level View.
The initial visibility.
Used in:
Whether the text should be in small caps.
The initial text.
Used in:
The initial text.
The initial checked status.
Used in:
A small line is displayed under an EditText. This option removes it.
The content type.
The initial text.
The type of input. Determines the layout of keys in the software keyboard. See https://developer.android.com/reference/android/text/InputType .
Used in:
Used in:
Used in:
Used in:
The number of rows in the layout.
The number of columns in the layout.
Creates a shared HardwareBuffer for rendering with GLES or Vulkan. The flags AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER and AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE are always set, as the plugin reads the buffer as a texture and the client needs to write to it as a framebuffer. This is a method that doesn't generate a message as a response. Instead the buffer id is send as a signed 32bit integer. If the integer is negative, creation failed. If the integer is positive, creation succeeded and you will get the HardwareBuffer over the socket. Receiving the HardwareBuffer has to be done with AHardwareBuffer_recvHandleFromUnixSocket from hardware_buffer.h in the NDK.
Used in:
Width in pixels.
Height in pixels.
The buffer format.
How often the CPU will read the buffer.
How often the CPU will write to the buffer.
Used in:
Possible buffer formats. See https://developer.android.com/ndk/reference/group/a-hardware-buffer#ahardwarebuffer_format.
Used in:
Corresponding to AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM.
Corresponding to AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM.
Corresponding to AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM.
Corresponding to AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM.
Used in:
Snaps to children.
Visibility of the scroll bar.
Makes the View take up the whole with/height, event if the content doesn't require it.
Used in:
If true, makes the ImageView work with the soft & hardware keyboard and send key events
Used in:
Whether the LineaLayout lays out its children horizontally or vertically.
Used in:
Snaps to children.
Visibility of the scroll bar.
Makes the View take up the whole with/height, event if the content doesn't require it.
Create a channel for notifications.
Used in:
The id the channel should have. This isn't shown to the user, but to identify the channel.
The name of the channel shown to the user.
The initial importance of the channel. Higher means the notifications fill be more intrusive.
Create a notification.
Used in:
The main notification data.
Use -1 to create a new notification. Use an existing id to update a notification.
An icon for the notification. Optional.
The channel the notification should be in.
The importance of the notification. Newer Android versions will use the channel importance instead.
Whether to alert the user only once or also on updates.
Whether to show the timestamp.
Actions the user can use.
The timestamp in millisecond time since the Unix epoch.
When a notification is ongoing, it cannot be dismissed by the user. All notifications will be dismissed when the connection is closed though.
A notification showing an image.
Used in:
The image to show.
Whether to show a thumbnail when the notification is folded up.
A notification with a custom layout.
Used in:
The layout id for the normal layout.
The layout id for an expanded layout. Optional. Set to -1 when not using.
The layout id for an HUD layout. Optional. Set to -1 when not using.
A notification with longer text, allowing the user to expand the notification to see it all.
Used in:
A normal notification.
Used in:
-1 indicates an error.
Used in:
Used in:
The initial text.
The initial checked status.
Used in:
Create a new remote layout. You can then place remote Views in the layout.
Used in:
(message has no fields)
an rid of -1 indicates a failure.
Used in:
Used in:
Used in:
If true, makes the SurfaceView work with the soft & hardware keyboard and send key events
Secure flag, like for Activities.
Used in:
Used in:
The initial text.
The initial checked status.
Used in:
Used in:
The initial text.
Sets the text to be selectable by the user.
Sets links to be clickable by the user.
Used in:
The initial checked status.
Used in:
Deletes a shared buffer. To actually free the memory, you also have to unmap it and close the file descriptor you received.
Used in:
Removes the children of a View.
Used in:
Delete a remote Layout.
Used in:
Removes a View.
Used in:
Used in:
Destroys a HardwareBuffer in the plugin. To free the resources, you also have to destroy the HardwareBuffer in the client and unmap all texture and other mappings.
Used in:
Directions for applying paddings and margins.
Used in:
,Use all directions.
Error return codes as failure reasons for unsuccessful methods. 0 means no error, negative numbers are non-fatal informational codes send along a successful method if needed, positive codes are fatal errors send with failed methods.
Used in:
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,No error.
The Activity the method tried to act on has been stopped by the system. Retry the method when you get a start event for the Activity.
The Activity the method tried to act on has been destroyed, or was never created (in case an invalid id was used).
An exception occurred while handling the method. Retrying the method or issuing other methods may or may not work, depending on the type of error.
The View id wasn't found in the Activity.
The View id was found, but doesn't correspond to a valid View type for the method.
The remote layout with the specified ID wasn't found.
An image was too big to be used by Android. Images for remote ImageViews and Task icons have to be smaller than 2 MB.
The specified notification channel wasn't found.
The specified notification widget wasn't found.
An enumeration value wasn't recognized.
The specified Task id wasn't found.
The ratio in SetPiPParamsRequest was out of range for Android PiP window ratios.
The method can't work, because the feature was introduced in a later Android version.
The specified buffer wasn't found.
Run Javascript in the WebView.
Used in:
Finish an Activity.
Used in:
The id of the Activity.
Finish a Task, including all its Activities.
Used in:
The id of the Task.
Send when the focus changes from or to a View.
Used in:
Get the current Activity configuration.
Used in:
The id of the Activity.
Gets the View size in a specified unit.
Used in:
The unit for the returned size.
Negative values for one of these denote an error.
Gets the log for this connection.
Used in:
Whether to clear the log after getting it.
The log for this connection.
Gets the scroll position of a NestedScrollVIew or HorizontalScrollView.
Used in:
The unit of the scroll amounts.
Negative values for one of these denote an error.
Gets the text in a View.
Used in:
The text of the View.
Get the plugin version code.
Used in:
(message has no fields)
Go back to the last page.
Used in:
Go forward to the next page (if there is one in the back list).
Used in:
Hide the software keyboard.
Used in:
The id of the Activity.
Importance values for notifications.
Used in:
,Send when the system bar status changes.
Used in:
The bars that are now visible.
Sets whether the back button is intercepted. See NewActivityRequest.
Used in:
The id of the Activity.
Sets whether the volume button(s) is intercepted. Instead of changing the volume, you will get an event.
Used in:
The id of the Activity.
Whether to intercept volume up.
Whether to intercept volume down.
Check whether the device is locked.
Used in:
(message has no fields)
Current lock state.
Possible lock states.
Used in:
Lock state unknown.
Device locked.
Device unlocked.
Send when an item or tab is selected in a Spinner or TabLayout. Automatically enabled.
Used in:
The index of the tab/item. -1 if nothing was selected.
Requests to keep the screen on while the Activity is shown.
Used in:
The id of the Activity.
Whether to keep the screen on while the Activity is shown.
Used in:
* {@link #getAction} value: the key has been pressed down.
* {@link #getAction} value: the key has been released.
Auto-generated from Android SDK sources, DO NOT TOUCH / For documentation, see https://developer.android.com/reference/android/view/KeyEvent#KEYCODE_0
Send when an ImageView or SurfaceView is set to use the keyboard.
Used in:
The Android keycode, refer to https://developer.android.com/reference/android/view/KeyEvent for the values. Values are provided in the KeyCode enum.
Bits are according to the Modifier enum.
The unicode code point of the character.
The Action, that is if the key was pressed or released.
The flags of the key event.
* This mask is set if the key event was generated by a software keyboard.
* This mask is set if we don't want the key event to cause us to leave touch mode.
* This mask is set if an event was known to come from a trusted part of the system. That is, the event is known to come from the user, and could not have been spoofed by a third party component.
* This mask is used for compatibility, to identify enter keys that are coming from an IME whose enter key has been auto-labelled "next" or "done". This allows TextView to dispatch these as normal enter keys for old applications, but still do the appropriate action when receiving them.
* When associated with up key events, this indicates that the key press has been canceled. Typically this is used with virtual touch screen keys, where the user can slide from the virtual key area on to the display: in that case, the application will receive a canceled up event and should not perform the action normally associated with the key. Note that for this to work, the application can not perform an action for a key until it receives an up or the long press timeout has expired.
* This key event was generated by a virtual (on-screen) hard key area. Typically this is an area of the touchscreen, outside of the regular display, dedicated to "hardware" buttons.
* This flag is set for the first key repeat that occurs after the long press timeout.
* Set when a key event has {@link #FLAG_CANCELED} set because a long press action was executed while it was down.
* Set for {@link #ACTION_UP} when this event's key code is still being tracked from its initial down. That is, somebody requested that tracking started on the key down and a long press has not caused the tracking to be canceled.
* Set when a key event has been synthesized to implement default behavior for an event that the application did not handle. Fallback key events are generated by unhandled trackball motions (to emulate a directional keypad) and by certain unhandled key presses that are declared in the key map (such as special function numeric keypad keys when numlock is off).
Load a URI in the WebView.
Used in:
Send when the locale changes.
Used in:
Send when a View is clicked and hold for some time.
Used in:
Activity, Task and global methods
View creation methods
Move a Task to the back, hiding it and returning the user to the homescreen.
Used in:
The id of an Activity in the Task.
Create a new Activity.
Used in:
Use -1 to start in a new Task stack.
The type you want to launch.
Whether the back button is intercepted and send as an event instead of closing the Activity or not.
The type of Activity that you want to launch.
Used in:
A normal Activity.
Launch as a dialog. Is destroyed when the user navigates away or clicks outside.
Launch as a dialog. Is destroyed when the user navigates away.
Launch in PiP-mode.
Display also on the lockscreen. Make sure the Activity is secure, as the device doesn't need to be unlocked to interact with the Activity.
Display in an overlay over everything else like Termux:Float.
A message with aid = -1 and tid = -1 indicates an error. For overlays, the tid is invalid though.
The id of the new Activity.
The id of the Task of the Activity.
Send when the user presses a notification action.
Used in:
Send when the user dismisses a notification.
Used in:
Send when the user taps a notification.
Used in:
Possible Activity orientation settings. See https://developer.android.com/reference/android/R.attr#screenOrientation for the meanings.
Used in:
,Send when a pinch gesture is used on an overlay Activity. Unreliable.
Used in:
Used in:
Send when PiP-mode changes.
Used in:
Send when a SwipeRefreshLayout is refreshed. Automatically enabled.
Used in:
Refresh an ImageView after blitting the buffer it uses to show the new image.
Used in:
Send for a click in a remote layout.
Used in:
Shift the focus to a View.
Used in:
Request an unlock. Will bring up the UI for the user to unlock the device.
Used in:
The id of the Activity.
Used in:
Send when the screen is turned off.
Used in:
(message has no fields)
Send when the screen is turned on.
Used in:
(message has no fields)
Select an item in a Spinner.
Used in:
Select a tab in a TabLayout.
Used in:
Send when a RadioButton is selected in a RadioGroup. Automatically enabled.
Used in:
The id of the currently selected RadioButton in the group-
Used in:
Used in:
Used in:
For overlay Activities. Not reliable.
Used in:
Used in:
Used in:
Sets the background color of a View.
Used in:
Set an ImageView to show the contents of a shared memory buffer.
Used in:
Sets whether a View is checked, like a CheckBox, RadioButton, Switch or ToggleButton.
Used in:
Set whether a View should be clickable. Click events have to be enabled separately. Conversely, setting a View to emit click events automatically marks it a clickable.
Used in:
Set the data to be shown in the WebView. You should always set base64 to true and use base64 encoded data.
Used in:
The MIME type of the data.
Sets the gravity of the text in a View.
Used in:
The horizontal gravity.
The vertical gravity.
Gravity values.
Used in:
Center the text.
Align to the top/left.
Align to the right/bottom.
Sets View parameters for Views in a GridLayout.
Used in:
The starting row of the View.
The starting column of the View.
The amount of rows the View should occupy.
The amount of columns the View should occupy.
Alignment of the View in the row.
Alignment of the View in the column.
Alignment of the View inside the cell.
Used in:
Sets the View height.
Used in:
Set the image of an ImageView.
Used in:
The image. Has to be a PNG/JPG.
Configures how the Activity responds to the software keyboard.
Used in:
The id of the Activity.
The requested mode.
How the Activity responds to the software keyboard.
Used in:
Pan the Activity, hiding some content at the top to make room for the keyboard.
Resize the Activity, shifting the Layout to make room for the keyboard.
Sets View parameters for Views in a LinearLayout.
Used in:
Use a negative number to keep the current weight.
Use 0 to keep the current position. The position starts at 1, to make the default message smaller.
Set the items of a Spinner.
Used in:
The items to be displayed in the spinner.
Set the logging level for this connection.
Used in:
The log level. Should be from 0 to 10 (inclusive).
Sets the margins of a View.
Used in:
The margin size.
The direction for the margin to apply.
Set the Orientation of the Activity.
Used in:
The id of the Activity.
The orientation value.
Sets the padding of a View.
Used in:
The padding size.
The direction for the padding to apply.
Set whether PiP-mode should be entered automatically when the user exits the Activity.
Used in:
The id of the Activity.
Whether PiP-mode should be entered automatically when the user exits the Activity.
Enter or leave PiP-mode.
Used in:
The id of the Activity.
Whether PiP-mode should be enabled.
Configures the PiP-mode of the Activity.
Used in:
The id of the Activity.
The numerator of the aspect ratio.
The denominator of the aspect ratio.
Set the position of an overlay Activity.
Used in:
The id of the Activity.
The x position in pixels from the left.
The y position in pixels from the top.
Sets the progress of a ProgressBar.
Used in:
THe progress from 0 to 100 (inclusive).
Sets whether a SwipeRefreshLayout is in the refreshing state. You have to set this to false when your refreshing action has completed.
Used in:
Sets View parameters for Views in a RelativeLayout.
Used in:
Used in:
Beware, the Image has to be smaller than 2 MB.
Used in:
Used in:
Used in:
For remote progress bars you get to choose the maximum value.
Used in:
Used in:
Used in:
Used in:
Sets the scroll position of a NestedScrollVIew or HorizontalScrollView.
Used in:
The horizontal scroll.
The vertical scroll.
Whether to scroll abruptly or smooth to the position.
Set the secure flag for the Activity, making screenshots impossible and showing a blank Activity in the task switcher if on.
Used in:
The id of the Activity.
Used in:
The id of the Activity.
Images have to be a PNG or JPEG file in binary format (not base64 encoded like for JSON). If empty (length 0), resets the icon to the default.
The Activity label (seems unused in Android).
Sets the text color of a View.
Used in:
Sets the Text of a View.
Used in:
Sets the text size for a View.
Used in:
Sets the Activity theme. The text color is only applied to newly created Views, not retroactively.
Used in:
The id of the Activity.
The status bar color.
The primary color.
The background color.
The text color.
The accent color.
Sets the absolute position of a View. Useful in a FrameLayout. Can also set the View to show on top of the others in the Layout.
Used in:
The unit for x and y
Whether to show on top of the siblings.
Sets the View visibility.
Used in:
Set a Widget to show a remote layout.
Used in:
Sets the View width.
Used in:
Sets whether the cursor is shown in an EditText.
Used in:
Whether the cursor is shown.
The protobuf implementation allows you to specify more size units, so it's encapsulated in a message type.
Used in:
, , , , , ,The value.
The unit of the value.
see https://developer.android.com/guide/topics/resources/more-resources.html#Dimension
Used in:
, , ,density-independent pixels
scale-independent pixels
pixels
millimeters
inches
points
Used in:
Used in:
Sets configurations for a SurfaceView.
Used in:
In case the buffer is too small, this is the color the rest of the surface gets filled up with
What happens on an x dimension mismatch.
What happens on an y dimension mismatch.
The targeted framerate for the Surface. The system doesn't need to respect this value. If it does, the frequency of SurfaceViewSurfaceChangedEvents changes accordingly. It is ignored on Android versions lower than 11.
What should happen in case the buffer dimensions for an axis don't match the Surface dimensions.
Used in:
The top/left side of the buffer will be displayed starting at the top/left side of the Surface. If the buffer is too large, the content at the bottom/right of the buffer won't be displayed.
The content of the buffer is centered on the axis of the Surface, meaning the outer parts won't be displayed if the buffer is too large.
Send for each frame for a SurfaceView. You should try to submit a frame as fast as possible after this, and not submit another one until the next event, to prevent rendering images that don't get shown to the user.
Used in:
The id of the SurfaceView.
The timestamp for the frame rendering completion in milliseconds since system boot.
Sets a SurfaceView to present the contents of a HardwareBuffer. After this method completes, the client can use the old buffer again. If you want to unset the buffer, use -1. -1 is returned for the old buffer if there was none. If a buffer fits the SurfaceView size, it is displayed fully as the contents of the SurfaceView. If the buffer is too small, it is centered in the SurfaceView. If the buffer is too large, it is drawn such that the upper left corner starts at the upper left corner of the SurfaceView. This is done for both dimensions independently, i.e. a SurfaceView with a size of 100 x 200 and a buffer of 50x300 gets centered horizontally in the SurfaceView, while the upper edge of the buffer aligns with the upper edge of the SurfaceView.
Used in:
The new buffer that is being used.
The old buffer that is available again.
Send when the Surface of a SurfaceView changes. If the size is different, your next buffer should have the updated size.
Used in:
The id of the SurfaceView.
The new width of the Surface.
The new height of the Surface.
Send when text changes in a TextView. Unreliable.
Used in:
Send when the timezone changes.
Used in:
Send a Toast.
Used in:
The text to display.
Whether the text should be displayed for a loner or shorter time.
Send when a View is touched. See the Android documentation for MotionEvent for info: https://developer.android.com/reference/android/view/MotionEvent
Used in:
The touches in this event. Multiple can be returned if it's a move event.
The pointer index the event is for, if any.
A timestamp for when the event happened, use for gestures and the like.
See the Android documentation for MotionEvent for info.
Used in:
Used in:
A list of pointer currently touching the display.
A pointer on the display.
Used in:
Coordinates inside the View.
The pointer id.
Turn the screen on.
Used in:
(message has no fields)
Send when the user leaves an Activity. This is the right moment to enter PiP-mode if you need to.
Used in:
Information uniquely identifying a View.
Used in:
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,The Activity of the View.
The id of the View in the Activity.
A type for View sizing. Only used for setWidth and setHeight, to include the special constants MATCH_PARENT and WRAP_CONTENT.
Used in:
,The value is either a constant or a size value.
Special constants.
Used in:
Math the parent size.
Match the content size
Visibility states for Views.
Used in:
, ,The View is visible.
The View is invisible, but takes up space in the layout.
The View is invisible and doesn't take up space in the layout.
Send when a volume key is pressed and it was configured to be intercepted. Down presses are repeated as long as the key is down.
Used in:
Which volume key was pressed.
Whether the key was pressed or released.
The Volume keys.
Used in:
Volume up.
Volume down.
Send when JS writes a console message in a WebView.
Used in:
Send when a WebView was destroyed by the system. You have to delete and recreate it.
Used in:
Send when an error happened in a WebView.
Used in:
Send when an HTTP error happened in a WebView.
Used in:
Send when a navigation was attempted in a WebView.
Used in:
Send when the progress bar changes in a WebView.
Used in: