handleInput method
Handle input from the user during the interactive session Returns true if input was handled, false if session should exit
Implementation
@override
bool handleInput(String input) {
if (!_isActive) return false;
input = input.trim();
if (input.toLowerCase() == 'q' || input.toLowerCase() == 'quit') {
_outputStream.writeln(green.wrap("Exiting interactive mode"));
exit();
return false;
}
if (_waitingForAction) {
return _handleActionInput(input);
}
if (input.toLowerCase() == 'l' || input.toLowerCase() == 'list') {
_showKeyList();
return true;
}
final index = int.tryParse(input);
if (index == null || index < 1 || index > _keys.length) {
_outputStream.writeln(red.wrap("Invalid selection. Enter a number 1-${_keys.length}, 'l' to relist, or 'q' to quit."));
return true;
}
final selectedKey = _keys[index - 1];
_outputStream.writeln(green.wrap("Selected: ${selectedKey.toString()}"));
_outputStream.writeln(cyan.wrap("Enter 'v' to view or 'd' to delete:"));
_waitingForAction = true;
_selectedKeyIndex = index - 1;
return true;
}