2.x

key remapping rewrite. 
A lot has been changed in PhoneWindowManager.java

Added action SwitchToPrevious app.

Consistent handling of actions:
 * Longpress is detected if keys are pressed for the longpress timeout, cancelled if any key is up.
 * Click is detected if not longpress and no other keys pressed.
 * Double tap detected if keys are pressed twice in sequence. The action is executed when the keys are down (this is different from click).  
 
This adds the possibility to get Longpress detection also for mapped actions. Previously all key codes were mapped to single clicks. The up key event is sent at next up event. If there are no more up events, it is sent immediately.
This means that Single key Click always have immediate up. All other events can get both single click and longpress.

An example, using actions using Menu key where click is mapped to Settings and longpress to Search.

If for example Vol+ is set to Menu, Click will always result in a single click on Menu. Longpress on Vol+ will give Menu with normal Longpress, Search if Vol+ is down for Lonpress*2.
Double tap holding the key at second down will result in a Longpress.

With multi-key setup, for example Vol+-Home, click action is executed if one of the keys is up before longpress timeout. As the Menu up is relayed to the system at the second up, both actions are possible. Similarly can multi long press and double tap give click/longpress.
 
In general, the key handling is restructured to be more "protocol" handled. Implementation as previously partly in BeforeQueing partly in BeforeDispatching, now only in BeforeQueueing. 
There 

License handling is now removed from PhoneWindowManager.java, only in Common.java

Major restructuring for key detection and replace.

The default action when adding a new key for double-tap is now default, which means that double click is not monitored. Default for Click/Longpress is to relay the action to other receivers.

Increased double tap timeout

Not done:
Gingerbread testing - to be dropped?