feat(editor): live filter-preview thumbnails v1.093 User liked CamScanner's filter strip where each filter is a live preview of the actual document. Replaced the editor's text filter buttons with a horizontal strip of preview thumbnails. - FilterPreviews.generate downscales the flattened page to ~220px and applies every filter once, off the main thread, yielding one thumbnail per filter (original is copied so its buffer is owned independently). - FilterStripAdapter renders each thumbnail in a small rounded card with its label; the selected filter gets a brand border + brand label. - EditorActivity builds the strip in showFilterStage and selects the default (magicpro). Tapping a thumbnail applies the full-resolution filter to flattened (unchanged quality path) and moves the selection. - Removed the old text-button wiring and updateFilterHighlight. Constraint: thumbnails are preview-only (220px); the chosen filter is always re-applied to the full-res flattened bitmap. small preview base is recycled; per-filter thumbnails are held by the adapter for the activity's life. Confidence: high Scope-risk: module Reversibility: moderate Directive: next — show batch/multi-import as a grid with per-page progress (per user reference shots). Tested: assembleDebug + testDebugUnitTest exit=0 (22 tests); manual audit of preview bitmap ownership/recycle. Not-tested: on-device strip scroll/look and preview generation latency on a phone. Related: CamScanner single-image editor reference (filter thumbnail strip) 🐙 Autopus