To address this problem, in my current Dialin Branch I've created a dict_update convenience function that allows you to add or update a dictionary's key and value. It will return a new dictionary object without modifying the original. The default python update call modifies the original and doesn't return a new object. So, using dict_update allows a simple one-liner for situations like these.
Once merged with my branch, you can use
ui.utils.dict_update
and this operation can be simplified to a one-liner:
You can't adjust the size of the keyboard, change what buttons are available, or adjust the opaque black background that's blocking half the screen without adjusting the styling.
In here you will find a couple of screenshots for comparison:
By using the template function notify in lines 349,350,351 they are not required anymore. This shows how good/correct implementation helps to have a clean code.
Be careful of using this. When you push and pop in order it's fine but when pop to an item randomly it's not safe. If the object is not currently in the stack you may get an error and I don't know what is going to happen to the Application !!! preferably don't use this, it's a stack and has to be pushed and popped in order.
It's an effort that can be done later when we transitioning all the APIs to use the CANMessageHandler. All the currently defined API methods are using the same camelCase naming. it needs also to change all the test suits we already have. So I don't think that's what we need to address as part of this code review.