Thanks for the clarification. I'm afraid that this is not how KeyboardHelper and KeyboardContext have been designed. Settings related operations should be invisible to KeyboardContext. We can let KeyboardHelper notifying the timing of displaying the warning dialog instead of initiating the default check in KeyboardContext.