Frameworks: Update DocumentsUI for theme chooser combatibility

PS2: credit: djdarkknight96
PS3: this time, use the correct owner info
PS:4 fix typo in styles.xml

Change-Id: I121099de6c09d33ef9f02019996eac1c6f1d3731

Conflicts:
	packages/DocumentsUI/AndroidManifest.xml
	packages/DocumentsUI/res/layout/activity.xml
	packages/DocumentsUI/res/layout/fragment_save.xml
	packages/DocumentsUI/res/layout/item_doc_grid.xml
	packages/DocumentsUI/res/values/colors.xml
	packages/DocumentsUI/res/values/styles.xml
fb: use on virtual POWER_KEY own global menu handling

we use the POWER_KEY down event to call the global menu from SlimActions
to allow to add shorcuts to the global menu.

Handle this undependent of non virtual key events and call the global menu
directly without vibration and without delay.

Just put it into the message que and done

Change-Id: I7d9af04605696d41bee949cfd99f6de4c4be6baa

Conflicts:

	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

(cherry picked from commit a84bb09ad4c91c31645bb8549acdee8bb6ea1d17)
SystemUI: Pimp-up Media Tile (1/1)

Allow double-click to start a sleep timer
	for the currently playing media.

PS:
- clearer button descriptions on different states
- if timer is in progress restore and show the time the
  user had set up and notify that he is in timer progress

Change-Id: I7848523e7bc3d9577361ff55f010a9909d46e665

Conflicts:

	packages/SystemUI/AndroidManifest.xml

(cherry picked from commit b3ebd78a24fbb205298c78cc4e869838740795a8)
[1/2] Slims Hardware Key Rebinding

Temasek notes
=============
Include removal of cm hardware key rebinding codes

..
..
..

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 Settings commit (https://gerrit.slimroms.net/#/c/2389/)
and overlay to function correctly

cheers HCP and kufi

PS:
- code cleanup and some code comments
PS:
- fix softkey devices
PS:
- fix back button (I think lol)
PS:
- fix wrong null checks lol
PS
- revert back to last ps due of more derp
PS
- added some debbugging lines
PS
- redefine injectInputEvent code and get rid of the handler we used to fix
  exception due that PhoneWindowManager is no UI thread and cannot handle the handler
  and to speed up navbar/navring etc. No need to delay it for 30ms
PS
- reworked the complete interpretation code. To fix up the initial issues we had on first patchsets
  and as well the new ones. Nuked vibrations as well and lets handle it like all other over SlimActions
  cleanup again
PS
- I remember that jeff had similar problem in the past and got the solution. We just check now
  who is really calling home key event. If it is a VIRTUAL key then launch home....for all other
  lauch the saved action on the home event. As well this fixes the wrong launch if DoubleTap
  timed out and launches home (now it launches the saved action for home like it should).
PS
- cleanup
PS
- finally fixed home button
PS
- last major cleanup
- cancel recent preloads only if it is really required
PS
- introduce central HwKeyHelper class to avoid code duplication in PhoneWindowManager and as well
  in Settings
PS
- fix small logical error in home key handling to avoid to go over SlimActions if button is set to default
  home
PS
- fix wrong menu default value
PS
- added double tap to all bindable buttons
- fixed reported missing vibration on longpress
- possible fix menu shows up on longpress menu
PS
- small cleanup
PS
- fix home/assist/appswitch call when it is set on the natural button as longpress or doubletapp.
PS
- attempt to fix the problem mentioned in PatchSet above on the other keys + simplify this fix
  Please test
PS
- fix navbar
PS
- fix double vibration if double tap is pending
- fix deprecated System.SHOW_PROCESS value call and call Global instead
- execute on assist and appswitch default action if no other action was executed before
- HwKeyHelper do not call provider values if not needed
- cleanup
PS
- menu and back button: if normal tap action does not equal natural back action return -1
  to avoid processing back/menu action
PS
- reset the indicating boolean for prevend second vibration when we reset the doubletap
  callback - this fixes the reported issue that vibration is suddenly completly gone
PS
- return on back and menu hardware trigger always the action and let it use the virtual
  key to process the final action
PS
- handle virtual key on back and menu a bit other
- rename vibration var
PS
- fix double vibration if double tap is disabled
PS
- fix back key wrong condition on double tap which caused 2 action calls
PS
- do not assume that double tap has always a pending vibration...check for the action
- respect keyguard on APP_SWITCH key
PS
- remove again the keyguard check lol....I forgot that I was some months ago allready
intelligent enough to check this in SlimActions lol. So no need to check it twice

Change-Id: Ic5c9b4eb03d2baa3b0ddfb3e9fcaf10d6e45dcd3

Conflicts:

	core/java/android/provider/Settings.java
	core/res/res/values/config.xml
	core/res/res/values/slim_symbols.xml
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

(cherry picked from commit 42906994ecc5fc2a8547edcddb420196608ce231)

Conflicts:
	core/java/android/provider/Settings.java
	core/res/res/values/config.xml
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Added sahlnaskh arabic font and give it higher precedence than DroidNaskh

sahlnaskh font is a fork of DroidNaskh font with some issues fixed.
Details of fixes are in https://github.com/khaledhosny/sahl-naskh

This should fix Jira issue: http://jira.omnirom.org/browse/OMNI-307

Change-Id: I9251eaf6c22288428f49916aa798be4ff3eaaead
(cherry picked from commit dd89634ad04ddad8efc566d1f6a16ae9d537eef1)
[2/2] Framework AppOps: Forward port ops from cm-10.2

    Squash of:

    Author: Sam Mortimer <sam@mortimer.me.uk>
    Date:   Fri Sep 27 21:30:34 2013 -0700
    [2/2] AppOps: Add alarm wakeup op
    When alarm wakeups are denied/ignored,
    the alarm types are remapped as follows:
    RTC_WAKEUP -> RTC
    ELAPSED_REALTIME_WAKEUP -> ELAPSED_REALTIME
    Change-Id: I3a5023e1f6260004319290e776bdb2daf73e9fdf

    Author: Kun Liang <kunliang@codeaurora.org>
    Date:   Fri Aug 30 23:56:59 2013 -0700
    AppOps: Add data connect control into AppOps
    Check user permission before enabling/disabling mobile data.
    Change-Id: I6e1895b130788dfccbc0a8523dadf1559b698988

    Author: Shashank Mittal <mittals@codeaurora.org>
    Date:   Thu Sep 5 17:24:44 2013 -0700
    AppOps: Add Bluetooth enable control into AppOps
    Check user permission before enabling bluetooth.
    Change-Id: Iefa4ea3319b33b2639beaf38d261d83649bbcf85

    Author: Shashank Mittal <mittals@codeaurora.org>
    Date:   Tue Sep 3 19:23:10 2013 -0700
    wifi: Confirm user permission before toggling wifi.
    Check user permissions before enabling/disabling wifi.
    Change-Id: I1ddae6e47f42b6d3fc831c2c135ece75cf9e935d

    Author: Qaweck <qaweck@gmail.com>
    Date:   Dec 6, 2013 06:21
    Fix bluetooth and data enable with ProfileManager
    Handle the case of system uid in AppOpsManager
    Change-Id: I5f9c3ba2e2ed0b1c825b995bf2724066ae796bb4

Change-Id: I1d403d4325f105cd91f815f790cb01dd9b9f5516
(cherry picked from commit 51d0cc6e10b098aa02596c7e5340dc155196e48d)
[2/2] Framework AppOps: Add per Op allowed and ignored counters

Port from cm-10.2

Change-Id: Ifb3d25e17dbab082b816a0a655b4796a83af336b
(cherry picked from commit 8ced699d493c2c1b07ef95f1c192669b7c30c2d3)
[2/2] Framework AppOps: Add BOOT_COMPLETED operation.

Add BOOT_COMPLETED operation in AppOps.

This operation is used to allow user to control auto start of
applications and services at bootup.

Change-Id: Ie8488ec1b4683c8617ca569cfc858709f0d35ba2
(cherry picked from commit aa03b29a86de8467675388bca1ebe69b778c03eb)
Revert "Turn off carrier provisioning by default"

This reverts commit 78511f621406bf8da153b6fec2da424fe27e6b11.

Change-Id: Idb612d82fb0391b73c7c5f2263f79599791fc533
(cherry picked from commit d9522bddfc0577210752f84f9521f000ce4b20ed)
Allow override of DUN settings

Allow override of system DUN settings by setting
persist.sys.dun.override
to one of the following values:
2 = not set, 0 = DUN not required, 1 = DUN required
If the prop is not set or is set to an invalid value the system setting
will be used.

Change-Id: I296f303a23351e4ab29898895abfcd313c747db9
(cherry picked from commit c3c953f52d1222ad6bab1e819616733a968dadfb)
Keyguard: Fix PIN layout on sw320dp-mdpi devices

Fix a long standing lockscreen layout problem that was introduced in 4.2

Before: http://i.imgur.com/9sVKHRR.png
After: http://i.imgur.com/DLY4DRu.png

Change-Id: Ia3cdc0d10217a0a2504a7287f480d9f036e66eee
(cherry picked from commit 7701f05ae297a12db6203ad6fd85f6a221a776c0)
don't disable lockscreen widgets on low memory devices (1/2)

Change-Id: I4ed76e259d156be43b85645e1473f35b762f18d7
(cherry picked from commit 70be95419dce92637673b8e93f3f88058b791992)
Don't confuse stat and stat64.

Cherry-picked from AOSP: https://android-review.googlesource.com/#/c/79462/

Change-Id: I45e65036d86c58943b9c273777f3f8be79a6966f
(cherry picked from commit 658adb5f44441eb81f0deb4fa0c0d55877249568)
Fix incorrect name in eglSwapBuffers log wrapper

Change-Id: Ica8bae5540e51ce96ab35523049d61a9c621a2da
(cherry picked from commit c271683547dfb6da56f8592c7ee4dac966dfbfd6)
Remove dead code.

This hasn't been used since at least 2011, and we're no longer
shipping the data supporting it either.

Change-Id: Ibe42057650b49794c65d6f0d54ed7a492f3b594b
(cherry picked from commit e1fb5044b1b168571852ed820b5f9376293b9aad)
Webkit: add to support file uploading

This change adds one function in WebChromeClient for supporting
uploading file in browser. In Android 4.4, browser is based on
chromium not webkit engine, chromium engine support uploading file
and will callback to client to show file chooser, but android_webview
client has empty implementation within this callback for file chooser.

So we solve this issue by adding implementation in framework chromium
client which extends android_webview client, function in framework
webkit client and corresponding functions in browser app.

Change-Id: I6baef44eef28eb2b380ab6181200bf0b9cc0316c
(cherry picked from commit a61682eb4ab868421ee056194a037f60cdbfff9a)
Drop Lockscreen vibrate option [1/2]

It doesn't make sense to keep haptic feedback on, but
disable it only for that little unlock icon.
This option didn't do anything more than that.
Let's drop it and don't confuse users.

Change-Id: I0211deea61b2d5b048deb118c30fc1397a56d3ee

Conflicts:

	core/java/android/provider/Settings.java

(cherry picked from commit 253ac2729f5f7eb3aa2ae7548c7abdfdcbd1d85f)

Conflicts:
	core/java/android/provider/Settings.java
lights: Add music light support (2/2)

Change-Id: I734e0d09bf9b01c149d456035eaa8ea5db009dad
(cherry picked from commit 2beefc167f64977f9e02d560420713d44b2be1bd)
Set Settings.Global.WIFI_SUSPEND_OPTIMIZATIONS_ENABLED default value

To be able to customize the "WiFi optimization"
setting we need to set a default value.

Change-Id: I9cd2f204cf46c0b4c70a4a147da2f1d73a708308
(cherry picked from commit 46672ae24312fbce4f6019d2b47a0bf848a07312)
Perform NTP lookup at Mobile data connections

If NITZ isn't supported by the current carrier the Android framework
relies instead on a remote NTP server to set the system clock. The
NetworkTimeUpdateService class polls for NTP time during the first 4
minutes after boot, failing to get NTP time within these minutes will
increase the polling interval to 24 hours. Hence, if a data connection
isn't activated directly after boot it can take a long time for the
system clock to be updated. To prevent this situation, NTP lookup is
scheduled as soon as a Mobile data connection has been established.

Change-Id: I046e0330147e7ace4b720a7e70f9d5047d42cfe6
(cherry picked from commit ea14e73ec391b9a903a64901e7c95dd7d16bb8ad)