- Module structure mirrors location pattern (core/data, core/domain, core/providers, features) - Supports text, emoji, image and audio messages over POST /chat-messages multipart - Optimistic UI with status reconciliation via 4s polling and circuit breaker after 3 errors - Offline queue persisted in SharedPreferences, drained on conversation re-open - WhatsApp-style audio recorder with long-press, slide-to-cancel, haptics and animated overlay - Image picker (camera/gallery) with on-device 1024px JPEG compression - Single-audio playback coordinator across bubbles - Family group fan-out: N parallel POSTs sharing chatId, members derived from delegationId - Reuses LegacyOptionCard extracted from videocall idle screen - Tracking events legacy_chat_opened, message_sent, image_sent, audio_sent, permission_denied (no PII) - WebSocket ChatMessageEvent parser added for future backend support - Push command CHAT_MESSAGE handled in notifications_init for deep-linking - 15 unit tests covering id resolver, file url builder and repository Pending backend coordination: GET /chat-messages 500 (parseQueryParams), push routing heuristic, file size/mime limits.
28 lines
1.2 KiB
C++
28 lines
1.2 KiB
C++
//
|
|
// Generated file. Do not edit.
|
|
//
|
|
|
|
// clang-format off
|
|
|
|
#include "generated_plugin_registrant.h"
|
|
|
|
#include <audioplayers_linux/audioplayers_linux_plugin.h>
|
|
#include <file_selector_linux/file_selector_plugin.h>
|
|
#include <record_linux/record_linux_plugin.h>
|
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
|
|
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
|
g_autoptr(FlPluginRegistrar) audioplayers_linux_registrar =
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "AudioplayersLinuxPlugin");
|
|
audioplayers_linux_plugin_register_with_registrar(audioplayers_linux_registrar);
|
|
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
|
|
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
|
|
g_autoptr(FlPluginRegistrar) record_linux_registrar =
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "RecordLinuxPlugin");
|
|
record_linux_plugin_register_with_registrar(record_linux_registrar);
|
|
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
|
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
|
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
|
}
|