36 lines
2.2 KiB
Markdown
36 lines
2.2 KiB
Markdown
# Office engine decision record
|
|
|
|
## Decision in 0.1.0
|
|
|
|
Ship an Android source implementation with local reading previews and a reusable Kotlin core.
|
|
Do not claim the LibreOfficeKit engine is bundled. Do not claim a reading preview preserves document
|
|
layout, all text, formula results or embedded objects.
|
|
|
|
The earlier high-level discussion made embedding LibreOfficeKit sound closer to adding a small
|
|
library dependency than it really is. LibreOffice's own Android notes describe bundling a native
|
|
LibreOffice core, bootstrapping it, a dedicated LOK thread, native callbacks and tiled rendering.
|
|
This is a substantive integration/build/security/licensing track; `SOURCES.md` points to the primary
|
|
upstream documentation. Its existing work remains valuable and is the preferred direction to
|
|
investigate rather than writing a new compatible Office layout engine.
|
|
|
|
## Required prototype deliverables
|
|
|
|
1. A pinned upstream revision, licence inventory and documented build recipe with real Android
|
|
binaries for the required ABIs. Do not assume a maintained public AAR exists.
|
|
2. A local open/page/tile/render prototype on actual hardware, including startup resources/fonts.
|
|
Do not redistribute fonts copied from the authoring environment.
|
|
3. Single-thread/queue ownership rules for engine calls and callbacks, a crash-isolated service,
|
|
and a bounded transport for page metadata, pixels, text and search results.
|
|
4. Explicit macro/external-link/font/network policies enforced inside the chosen engine and verified
|
|
against hostile documents, not just disabled in the host UI.
|
|
5. Fidelity tests across DOCX/XLSX/PPTX/ODF and only then legacy formats. Account for missing fonts,
|
|
unsupported layout behaviours, cached vs calculated spreadsheet values, and revision semantics.
|
|
6. Independent assessment of Apple build/distribution integration. The common Kotlin preview model
|
|
remains reusable; the native engine may need different platform bootstrapping/rendering adapters.
|
|
|
|
## Not done in this repository
|
|
|
|
There is no `liblo-native-code.so`, LOK JNI bridge, Collabora build, converted PDF cache, native engine
|
|
licence bundle or Office layout validation. The `FormatHandler` interface is an extension seam for
|
|
reading previews; it is not evidence of a full engine implementation.
|