Multi-Grup Sumber & UI:
- Model ReceiptGroup: satu struk bisa punya banyak grup sumber (
revenue)
- Tombol "Tambah Sumber" dengan dashed border (max 10 grup)
- Hapus label "Dari:" di SourceAccountSelector (chip saja)
- Default 1 grup kosong di ReceiptProvider constructor &
_resetState
Akun Tujuan ke Config:
- Pindah DestinationAccountSelector dari receipt body ke Config
screen
- Persist & load via SharedPreferences (permanen, tidak di-reset)
- Dropdown auto-load dari cache/mirror saat buka Config
- Tombol "Sinkronisasi Manual" sekarang simpan ke mirror &
refresh dropdown
Batch Send via SubmissionTask:
- Model SubmissionTask: konteks per-grup (group/tip +
destination + date)
- TransactionSubmissionDialog refactor: terima
List<SubmissionTask>
- Helper buildTasksFromReceipt &
buildTasksFromAllUnsubmittedReceipts
- LocalReceiptsScreen: tombol "Kirim Semua Nota" + post-process
status
Bug Fix:
- copyWith sentinel pattern: field nullable (tipSourceAccount,
destinationAccount, fireflyUrl, accessToken) kini bisa di-set
ke null
- Tip dapat dibersihkan dengan "Batal Tip" & reset antar
transaksi
- Hapus tombol "Muat Akun" (redundan dgn Sinkronisasi Manual)
Lainnya:
- Date picker untuk tanggal transaksi
- Font courier prime caching via CourierStyles
- Perf: compute() untuk decode image, cancel stream bluetooth,
fix rebuild loop
- External link: <queries> AndroidManifest + skip canLaunchUrl
- Layout cetak: hapus Ke:, sederhanakan separator grup, hapus
TIP: TIDAK
- Hapus TransactionLinksScreen, ganti inline copy/open di popup
This commit removes the confusing default account mapping feature and implements a more reliable offline-first account mirroring system. The changes include:
BREAKING CHANGES:
- Remove all default account mapping functionality (saveDefaultAccount, getDefaultAccount, etc.)
- Simplify account selection to use direct account choice instead of default mapping
FEATURES:
- Implement account mirroring system that stores all FireFly III accounts locally
- Add offline-first approach: server accounts > mirrored accounts > fallback
- Automatic account sync when connection is available
- Manual sync capability in config screen
- Enhanced offline reliability - app works completely without server connection
IMPROVEMENTS:
- Faster startup times using local account cache
- More predictable account selection behavior
- Reduced confusion about which accounts are being used
- Better error handling for offline scenarios
- Simplified architecture without complex default mapping logic
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Mengimplementasikan ReceiptScreen dengan pola provider untuk manajemen state yang lebih baik. Memisahkan logika bisnis ke service terpisah dan membuat widget komponen yang reusable untuk struk. Menambahkan fitur konfigurasi informasi toko dan teks kustom (disclaimer, thank you note, pantun).