[2/2] Settings: Slims Hardware Key Rebinding
First thanks to CM team for the 2 years where we used their approach for our
custom hw key rebinding. This hardware key rebinding
patches did in the past a good job and we extended it prior 4.3 with a lot
Slim custom stuff.

But it is time to go new way and to do the complete
hardware key rebinding more flexible and more centralized. Especially due
that we have now all possible shorcutactions centralized in 4.4

Possible mapping are:
ACTION_HOME
ACTION_BACK
ACTION_SEARCH (in app search)
ACTION_VOICE_SEARCH
ACTION_MENU_BIG
ACTION_POWER
ACTION_NOTIFICATIONS
ACTION_QS
ACTION_RECENTS
ACTION_SCREENSHOT
ACTION_IME
ACTION_LAST_APP
ACTION_KILL
ACTION_ASSIST
ACTION_VIB
ACTION_SILENT
ACTION_VIB_SILENT
ACTION_POWER_MENU
ACTION_TORCH
ACTION_EXPANDED_DESKTOP
ACTION_THEME_SWITCH

and custom app/shorcut of course

Possible actions on all keys are:
normal tap / longpress / double tap

So to sumarize if it is in settings array enabled user can bind whatever of the above
actions to every hardware key action.

Main changes to prior solutions are:
- do not depend anymore on hardcoded integer values. We use now strings. This has
  the advantage that we can save whatever shorcut or intent URI we have into this
  value. And gives us the possibility in future without changing anything on the hw
  key rebinding code to get more options/or modify the options. Actions are holded
  like on all other of our features in ButtonsConstants.java
- All actions are peformed over our SlimActions like all other features. SlimActions
  takes care about all possible solutions the user can run into and sets the right
  open animation, keyguard handling etc etc. As well it is easier to maintain only
  one code base.
- Only observe and update the values on hardware key devices. On non hw key devices
  the complete code is non operational
- Removed in settings the not needed overlay due that we can use the fb one to
  check if it is a hw key device or not.
- Major cleanup of a lot old code.

This patch add as well one new SlimActions action....VOICE_SEARCH

To configure your device you need to add the device overlay as usual:

overlay/frameworks/base/core/res/res/values/config.xml
<!-- Hardware "softkeys" present on the device, stored as a bit field.
         This integer should equal the sum of the corresponding value for each
         of the following keys present:
            1 - Home
            2 - Back
            4 - Menu
            8 - Assistant (search)
           16 - App switch
        For example, a device with Home, Back and Menu keys would set this
        config to 7. -->
    <integer name="config_deviceHardwareKeys">7</integer>

Also requires fb commit.

Cheers HCP and kufi

Changes to prior patchsets:
- reflect fb changes
- simplify code
- code cleanup
- instance handling of error dialog
- some minor tweaks

PS:
- complete reworked....using now like on navbar etc custom dialogs to be
  consistent and pretty :D
- reset to default is not implemented yet...no idea if we want that or not. Any opinions on it?

PS:
- implement fb changes and use central HwKeyHelper class

PS:
- added reset button

PS:
- added double tap to all bindable keys

Change-Id: Ie4794073236f0b6fe308b931d7d6e9d02a1ddf02

This commit replaces CM's hardware key rebinding with Slims, the orignal patch is here:

SlimRoms/packages_apps_Settings@00eab39

Conflicts:
	res/values/axxion_strings.xml
Revert "Add back navigation bar customization."

This reverts commit 3d78c928b3cdee7c2bf54c73ed4e8efd02cf8b87.

Change-Id: I4568df520ba7378eb1320a5f808df77749a10a91

Conflicts:
	res/values/cm_strings.xml
RC: add nav bar config

Change-Id: I878faba4c7d769550b10abf2cacadce2c51ad140
Signed-off-by: Roman Birg <romanbirg@gmail.com>

Conflicts:
	res/values/axxion_arrays.xml
	res/values/axxion_ids.xml
	res/values/pac_dimens.xml
	res/values/pac_strings.xml
	res/xml/button_settings.xml
Navbar: handle images selected through the documents api

4.4 added a unified documents api to choose media files. Handle
the returnd data.

Change-Id: I0ecba27ce120ad63abad33aec5364ef00795de3c
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
Fix nav bar

Change-Id: I0abe6e76ebd95b3644cb9decd6642e425cac9216

Conflicts:
	res/values/axxion_attrs.xml
	res/xml/navbar_dimen_settings.xml
	src/com/android/settings/axxion/NavbarDimenSettings.java
Navbar: Hide landscape height dimensions for phone and width for tablets

Change-Id: I9c80cd3c380cb270e96143eaace41006026e98c0
Signed-off-by: Lokesh Chamane <lokesh.c703@gmail.com>
Add our old features back in

Change-Id: Idfb97375678a8ce7512ce0ebee286dacefd37a66

Conflicts:
	res/values/pac_strings.xml
Buttons Settings: Fix FC

-Also remove the Navbar left option if it's a table.

Change-Id: Id83a0271783a18aeccfb8d4ac961970f7e61b390
Signed-off-by: Lokesh Chamane <lokesh.c703@gmail.com>

Conflicts:
	src/com/android/settings/cyanogenmod/ButtonSettings.java