pub trait EmbedderClient {
Show 24 methods
// Required methods
fn frame(&mut self, views: &[ViewId], frame: Frame);
fn view_added(&mut self, id: ViewId);
fn view_metrics_changed(&mut self, id: ViewId);
fn view_removed(&mut self, id: ViewId);
fn pointer_data_packet(&mut self, packet: PointerDataPacket);
fn key_data(&mut self, data: KeyData) -> bool;
fn platform_brightness_changed(&mut self);
fn locales_changed(&mut self);
fn wake(&mut self, elapsed: Duration);
// Provided methods
fn screens_changed(&mut self) { ... }
fn view_focus_changed(&mut self, event: ViewFocusEvent) { ... }
fn drop_data(&mut self, data: DropData) { ... }
fn pop_route(&mut self) -> bool { ... }
fn view_close_requested(&mut self, view: ViewId) { ... }
fn window_changed(&mut self, view: ViewId) { ... }
fn view_request_failed(&mut self, request: RequestId, error: ViewError) { ... }
fn request_app_exit(&mut self, reply: AppExitReply) { ... }
fn app_lifecycle_state_changed(&mut self, state: AppLifecycleState) { ... }
fn system_fonts_changed(&mut self) { ... }
fn text_input_editing_value(
&mut self,
view: ViewId,
value: TextEditingValue,
) { ... }
fn text_input_action(&mut self, view: ViewId, action: TextInputAction) { ... }
fn text_input_closed(&mut self, view: ViewId) { ... }
fn system_context_menu_hidden(&mut self) { ... }
fn custom_context_menu_action(&mut self, callback_id: &str) { ... }
}Expand description
Complete frames and typed view lifecycle notifications.
The platform updates its view registry before sending a lifecycle method, so the client can immediately query the affected view.
Required Methods§
Sourcefn frame(&mut self, views: &[ViewId], frame: Frame)
fn frame(&mut self, views: &[ViewId], frame: Frame)
A screen refreshed at frame.elapsed: views are the views on it, in sight, that asked
for a frame (Platform::request_frame) before the
refresh began; one that asks during it is in the next.
The host never calls it from inside another call into the client.
Sourcefn view_added(&mut self, id: ViewId)
fn view_added(&mut self, id: ViewId)
A view arrived after launch: opened by the app, or given by the system. The views that
exist at launch are in Platform::views when the app starts, and none of them is
reported here.
Sourcefn view_metrics_changed(&mut self, id: ViewId)
fn view_metrics_changed(&mut self, id: ViewId)
Flutter’s window metrics event: something of id’s metrics changed, the screen it is on
included.
Sourcefn view_removed(&mut self, id: ViewId)
fn view_removed(&mut self, id: ViewId)
A view is gone; the app keeps running.
Sourcefn pointer_data_packet(&mut self, packet: PointerDataPacket)
fn pointer_data_packet(&mut self, packet: PointerDataPacket)
Flutter PlatformDispatcher.onPointerDataPacket.
Sourcefn key_data(&mut self, data: KeyData) -> bool
fn key_data(&mut self, data: KeyData) -> bool
Flutter PlatformDispatcher.onKeyData.
Returns whether the framework handled the event; a host that shares the keyboard with other native components should not propagate a handled one.
Sourcefn platform_brightness_changed(&mut self)
fn platform_brightness_changed(&mut self)
Flutter PlatformDispatcher.onPlatformBrightnessChanged: the host’s light or dark
preference changed, and Platform::platform_brightness already answers the new one.
Sourcefn locales_changed(&mut self)
fn locales_changed(&mut self)
Flutter PlatformDispatcher.onLocaleChanged: the host’s locale list changed, and
Platform::locales already answers the new one.
Sourcefn wake(&mut self, elapsed: Duration)
fn wake(&mut self, elapsed: Duration)
The wake asked for through Dispatcher::wake_at or
Dispatcher::wake_now.
elapsed is the platform clock, the same one Frame::elapsed reports. Dart’s
event loop runs due Timers itself; here the client advances its own clock.
Provided Methods§
Sourcefn screens_changed(&mut self)
fn screens_changed(&mut self)
Flutter FlutterEngineNotifyDisplayUpdate: a screen was added, removed or changed, and
Platform::screens already answers the new list. A view that is on another screen now
is reported through view_metrics_changed. The default drops it.
Sourcefn view_focus_changed(&mut self, event: ViewFocusEvent)
fn view_focus_changed(&mut self, event: ViewFocusEvent)
Flutter PlatformDispatcher.onViewFocusChange.
Sourcefn drop_data(&mut self, data: DropData)
fn drop_data(&mut self, data: DropData)
Files dragged from outside the application entered, moved over, were dropped on or left a view. No dart:ui hook; the default drops it.
Sourcefn pop_route(&mut self) -> bool
fn pop_route(&mut self) -> bool
The user asked to go back: Android’s back button or back gesture, and whatever a later host maps onto the same idea.
Answers whether the application went back. false means there was nothing left to
go back to, and the host should then do what the platform does without the
application, which on Android is to close the activity.
Flutter sends this as popRoute on SystemChannels.navigation, and has to ask the
framework in advance whether it handles back at all, because the answer cannot
cross its channel in time. This call answers on the spot instead.
Sourcefn view_close_requested(&mut self, view: ViewId)
fn view_close_requested(&mut self, view: ViewId)
The user asked to close view: its window’s close button, or the system’s Close
command. The host closes nothing itself; the application closes the window, through
HostWindow::close, or keeps it open, such as until its user
has chosen whether to save. Nothing waits for an answer.
Flutter’s engine reports this to the window’s controller, whose delegate’s
onWindowCloseRequested closes it by default. The default here keeps the view open.
Sourcefn window_changed(&mut self, view: ViewId)
fn window_changed(&mut self, view: ViewId)
The window of view was minimized or restored, became occluded or shown, or moved, and
its HostWindow already answers how it is now: as Flutter’s window
controllers notify their listeners at the platform’s word. A resize is reported as a
metrics change alone (view_metrics_changed). The default drops it.
Sourcefn view_request_failed(&mut self, request: RequestId, error: ViewError)
fn view_request_failed(&mut self, request: RequestId, error: ViewError)
A request for a view (crate::Platform::request_view) got no view: the host could not
make its window. The default drops it.
Sourcefn request_app_exit(&mut self, reply: AppExitReply)
fn request_app_exit(&mut self, reply: AppExitReply)
The system asked the application to quit, and the application may refuse: the user
chose Quit, or is logging out. Every request comes here, a second one while the first is
still being decided included, so that the application decides each; reply takes its
answer, and the host quits on AppExitResponse::Exit.
The answer may take as long as the application needs, such as asking its user whether to save first, and is given inside a call into this client: this one, or a later one.
Flutter sends this as System.requestAppExit on SystemChannels.platform and replies
once ServicesBinding.handleRequestAppExit’s Future has completed. The default
answers Exit at once, as ServicesBinding’s own answer does.
Sourcefn app_lifecycle_state_changed(&mut self, state: AppLifecycleState)
fn app_lifecycle_state_changed(&mut self, state: AppLifecycleState)
The application entered state: its views were shown, hidden, focused or unfocused, or
the system put it in the background or brought it back. The host sends the state it is
in, and the framework fills in the states between, as Flutter’s ServicesBinding does.
Flutter sends this as the state’s name on SystemChannels.lifecycle. The default drops
it.
Sourcefn system_fonts_changed(&mut self)
fn system_fonts_changed(&mut self)
Flutter PlatformDispatcher.onSystemFontsChanged: the host registered faces the
framework did not have when text last laid out.
Sourcefn text_input_editing_value(&mut self, view: ViewId, value: TextEditingValue)
fn text_input_editing_value(&mut self, view: ViewId, value: TextEditingValue)
Flutter TextInputClient.updateEditingValue. The default drops it.
Sourcefn text_input_action(&mut self, view: ViewId, action: TextInputAction)
fn text_input_action(&mut self, view: ViewId, action: TextInputAction)
Flutter TextInputClient.performAction. The default drops it.
Sourcefn text_input_closed(&mut self, view: ViewId)
fn text_input_closed(&mut self, view: ViewId)
Flutter TextInputClient.connectionClosed. The default drops it.
Flutter SystemContextMenuClient.handleSystemHide. The default drops it.
Flutter SystemContextMenuClient.handleCustomContextMenuAction. The default drops it.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".