Add notification draining with color categories

This commit is contained in:
thePR0M3TH3AN
2025-07-14 11:20:05 -04:00
parent 4ea1e98e52
commit 19d9c45d6f
2 changed files with 21 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ from utils import (
pause,
clear_and_print_fingerprint,
)
import queue
from local_bip85.bip85 import Bip85Error
@@ -100,6 +101,22 @@ def confirm_action(prompt: str) -> bool:
print(colored("Please enter 'Y' or 'N'.", "red"))
def drain_notifications(pm: PasswordManager) -> None:
"""Display all queued notifications."""
queue_obj = getattr(pm, "notifications", None)
if queue_obj is None:
return
while True:
try:
note = queue_obj.get_nowait()
except queue.Empty:
break
category = note.level.lower()
if category not in ("info", "warning", "error"):
category = "info"
print(color_text(note.message, category))
def handle_switch_fingerprint(password_manager: PasswordManager):
"""
Handles switching the active fingerprint.
@@ -932,6 +949,7 @@ def display_menu(
for handler in logging.getLogger().handlers:
handler.flush()
print(color_text(menu, "menu"))
drain_notifications(password_manager)
try:
choice = timed_input(
"Enter your choice (1-8) or press Enter to exit: ",

View File

@@ -20,6 +20,9 @@ _COLOR_MAP = {
"index": "yellow",
"menu": "cyan",
"stats": "green",
"info": "cyan",
"warning": "yellow",
"error": "red",
"default": "white",
}