Skip to content

refactor(bills): move bill decorators + modals into :shared:bills - #1218

Merged
bmc08gt merged 1 commit into
code/cashfrom
refactor/bill-decorators-to-shared
Aug 12, 2026
Merged

refactor(bills): move bill decorators + modals into :shared:bills#1218
bmc08gt merged 1 commit into
code/cashfrom
refactor/bill-decorators-to-shared

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Phase A of moving bill rendering to the app root: relocate the below-bill decorators and their modals out of :features:scanner into :shared:bills. Pure move — no behavior change — so the eventual root-level bill overlay can host them.

Moved (6 files):

  • decor/ScannableDecorator, PayableDecorator, TipCardDecorator
  • BillManagementOptions, modals/ReceivedFundsConfirmation, modals/TipUserModal

Details:

  • ScannableDecorator (sealed interface) + ScannableDecoratorContext become public — the scanner still consumes them, now cross-module. Concrete decorators/modals stay internal to :shared:bills.
  • :shared:bills gains a :shared:session dep (LocalSessionController). No dependency cycle (:shared:session doesn't depend on :shared:bills).
  • The 7 string resources resolve transitively (:core + :ui:resources); none moved. R import repointed to com.flipcash.shared.bills.R.
  • ScannableContainer repointed to the new package.

Follow-up (Phase B): a root-level BillOverlay in App.kt, scanner slim-down, frosting removal.

Test Plan

  • :shared:bills, :features:scanner, :app compile (verified: BUILD SUCCESSFUL)
  • Scanner still shows/dismisses bills, tip modal, received-funds confirmation exactly as before

Phase A of hosting bills at the app root: relocate the below-bill decorators
(ScannableDecorator/PayableDecorator/TipCardDecorator) and their modals
(BillManagementOptions, ReceivedFundsConfirmation, TipUserModal) out of
:features:scanner into :shared:bills, so the bill overlay can later be hosted
outside the scanner. Pure move — no behavior change.

- ScannableDecorator + ScannableDecoratorContext become public (the scanner
  now consumes them cross-module); the concrete decorators/modals stay
  internal to :shared:bills.
- :shared:bills gains a :shared:session dependency (for LocalSessionController).
  The 7 string resources resolve transitively (:core + :ui:resources), so none
  were moved.
- ScannableContainer repointed to the new com.flipcash.app.bills.decor package.
@github-actions github-actions Bot added area: payments Payments, transfers, intents, billing area: scanner QR/Kikcode scanning, camera type: refactor Code restructuring, no behavior change labels Aug 11, 2026
@bmc08gt bmc08gt changed the title refactor(bills): move bill decorators + modals into :shared:bills (Phase A) refactor(bills): move bill decorators + modals into :shared:bills Aug 12, 2026
@bmc08gt
bmc08gt merged commit aafb1b5 into code/cash Aug 12, 2026
3 checks passed
@bmc08gt
bmc08gt deleted the refactor/bill-decorators-to-shared branch August 12, 2026 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: payments Payments, transfers, intents, billing area: scanner QR/Kikcode scanning, camera type: refactor Code restructuring, no behavior change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant