Centralize all API call logic (fetchBoxInfo, saveBoxRecord,
updateBoxRecord, deleteBoxRecord) into BoxingApiActions class with
unified error categorization (network, duplicate, missingApiUrl).
Add helper methods to reduce repetitive error handling in boxing_page.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Unify all input fields (box number and quantity) to width 52 in both
single-code and multi-code boxing modes
- Flatten nested Row layout in multi-code submit row to ensure equal
8px spacing between quantity input, confirm button, and complete-box
button
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Multi-code boxing mode now shows a confirmation dialog when scanning a
code from a different paichan, matching the registration page pattern.
Scans are blocked while the dialog is visible.
Also removes the redundant _lastBoxNo variable. Box numbers now always
use _maxBoxNo + 1 from the backend, fixing a bug where switching to a
new paichan incorrectly carried over the previous paichan's box number.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Boxing number module:
- Data row base font size 12→15, quantity column / edit mode unified to 15
- Work order column width flex 24→30, quantity column flex 14→23, action column 64px→54px
- Multi-code boxing total row column width flex 22→26
- Center-align all table headers and data rows
Shelf registration module:
- Data row base font size 12→15
- Center-align all table headers and data rows (location number changed from right-align to center)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Unify optimization for single-code and multi-code boxing modes: after
completing a box, set the next box number to max(existing boxes) + 1,
avoiding duplicate box numbers when browsing historical boxes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- In multi-code boxing mode, scanning a completed total-row number shows a
clickable warning banner; clicking it or pressing P4 navigates to that
box number to view boxing details.
- Unify key handling across all pages to LogicalKeyboardKey named constants,
removing the _androidKeyCodeFromLogicalKey fallback path.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change single-code and multi-code boxing lists from card-style layout
(number + color bar + two-line content) to table-style layout
(column headers + flex columns + left border color bar),
matching the registration module design language.
Fields: Box No. / Total Row No. | Work Order | Quantity | Action Button
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Keep UI state after boxing completion for operator review instead of auto-reset
- Show real work order number instead of hardcoded "本次扫码" in assigned list
- Add double-vibration feedback when re-scanning already completed zongpai
- Change completed status banner and dot from green to red for clearer warning
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Move 完成本箱 button to same row as quantity input, each taking half width
- Add P3 (BUTTON_L2, key code 104) hardware key support for finishing box
- Display P3 shortcut label on the finish button
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Info bar: left-right layout with progress bar below, detail button on right
- Scan bar: remove '已识别' badge, show 工令号/总件数/已装X with larger font
- Mode switch: move to title right side, adopt rectangular style with 18px bold font
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merge box number and paichan info into a single header bar,
compress list rows to 40px with left color bars, fix bottom
operation area (scan/submit/finish) above status bar, and
shrink notification bars and status bar for more list space.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Home: add keyboard number shortcuts (1/2/3) for module navigation
- Boxing: add P2 key mode switching with pill-style AppBar header
- Registration: replace Switch with pill-style lock header matching boxing design
- Add Android keyCode fallback for scanner device compatibility
- Simplify home page cards to show only module name + shortcut hint
- Add lock redesign HTML preview document
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create FeedbackService as centralized sound/vibration dispatcher
- Create reusable StatusBar widget with StatusDotColor enum (blue/orange/green/red/yellow/amber)
- Extend SoundService with beep/error/alert sound types and loop playback
- Remove top feedback banners from both registration and boxing pages
- Route all feedback through bottom status bar per PRD requirements
- Add sound and vibration feedback to boxing module (was completely missing)
- Handle network errors with yellow status, general errors with red
- Enhance duplicate dialog with alert loop sound that stops on close
- Add beep/error/alert sound file selectors in settings page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add box_mode parameter to box submission API for one-to-one/one-to-many/many-to-one modes
- Allow re-scan override in one2one mode without clearing state
- Improve duplicate detection messages per boxing mode
- Disable Kotlin incremental compilation to fix cross-drive build failure
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add BoxInfoResult/BoxSaveResult data classes and API methods to ApiService
- Create BoxingPage with mode switching, auto-fill rules, duplicate detection
- Create BoxingDetailPage for read-only box detail view
- Activate boxing module in HomePage navigation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>