Unified Tool Pro v5.8
v5.8 = full UI overhaul + architecture refactor
UI / UX
- Sidebar rebuilt with pack() layout, per-page accent colour bars, icon column
- Page cache system — Device Check and Battery persist data across navigation
- Flash ROM tabs no longer show inline console; replaced with popup progress window
- FlashProgressWindow: step counter, elapsed timer, progress bar, Copy Log, Cancel
- Cancel flash mid-operation with InterruptedError propagation through all loops
- ADB Terminal: macOS-style console (traffic light dots, dark bg), reboot panel
redesigned with ADB/Fastboot source toggle on left, targets on right - Toast notification system (bottom-right, auto-dismiss, success/error/info/warning)
- Buttons show loading state while running, re-enable with original text on done
- Device Check: chip grid layout replacing plain list; stat values colour-coded
- Battery: 5×2 card grid, temperature/health colour-coded green→amber→red
- Section titles use per-page accent colours
- Header: single device status pill, Fastboot badge, app.ico logo (no blue frame)
- Credits: YouTube (@sairb_op) and Instagram (@imnotaino) buttons added
- Font sizes bumped across entire UI; palette shifted to higher-contrast values
- Window layout uses grid() for right panel so console anchors to bottom edge
Architecture
- flash.py is now single source of truth for all flash operations
- All flash functions accept log_cb(msg, tag) and cancel_cb() callbacks
- ui.py _do_port_flash delegates entirely to FLASH.flash_port_rom()
- No more duplicated command sequences between ui.py and flash.py
- _clean() staticmethod strips ADB daemon startup noise from all getprop output
Bug fixes
- Fixed: No module named 'ui' in PyInstaller build (--paths + --add-data)
- Fixed: Failed to remove temporary directory popup on exit (4-layer suppression)
- Fixed: Cancel button stuck on "Cancelling..." — _finished flag + force close
- Fixed: Stray red dot in header device label
- Fixed: Sidebar nav items invisible (place() → pack() layout)
- Fixed: Welcome screen stuck (grab_set timing, _entered guard, after() navigation)
- Fixed: Device model showing ADB daemon startup lines
- Fixed: Page stacking when returning to cached page from non-cached page
- Fixed: Flash ROM console in wrong position requiring scroll to see it
- Fixed: ADB/Fastboot reboot had no source selector (always ran adb reboot)
- Fixed: Double NAVIGATION label in sidebar