feat(batch): visible grid with per-page progress v1.094 User liked CamScanner showing batch/multi-import as a grid with a per-page spinner instead of a blocking modal dialog. - New BatchGridActivity: shows every source page in a 3-col grid up front, each cell with a spinner + page number, and processes them one by one (detect -> flatten -> magicpro) updating each cell to its result as it finishes. Header counts down remaining; back is blocked until done; then a share/save/done bar appears and tapping a page opens the pager viewer. - BatchGridAdapter holds per-cell state (source thumb + spinner -> result thumb). MediaSaver.saveBitmapToGroupUri returns the saved MediaStore URI so the grid can collect and act on results (saveBitmapToGroup now delegates to it). - Both entry points use it: shared multi-image (MainActivity) and multi-capture finish (MultiCapture) now launch BatchGridActivity. - Removed the now-unused BatchProcessor and MainActivity's modal-progress code (orphaned by this change). Constraint: pages process sequentially so saved.size is read consistently between iterations; back is disabled mid-processing to avoid a half-saved group. Confidence: high Scope-risk: module Reversibility: moderate Directive: model research (open deshadow) conclusion pending — DocShadow tested worse than classical, GCDRNet has no license, DocRes is MIT but a heavy generalist needing manual weight setup. Tested: assembleDebug + testDebugUnitTest exit=0 (22 tests); manual audit of coroutine ordering, bitmap recycle, orphan cleanup. Not-tested: on-device batch run look and FileProvider pending-thumb fallback. Related: CamScanner batch grid reference 🐙 Autopus