Frameworks: Statusbar clock and date customizations

Some things changed on kitkat + our old code needed in general a bit
rework. All done with this patchset.

This commit add support for:

- Clock and date enable/disable
- Clock and date position
- AM/PM styles multilang support
- color
- Date format
- Date style

Change-Id: I73d854ed5cfb57fa19e4b5554bb10cb2e1ce9b65

Conflicts:
	core/java/android/provider/Settings.java
[1/2] base: volume panel styles and tweaks

From CM - Support different styles of the volume dialog
allows expanding the dialog to show all adjustable volumes

New setting MODE_VOLUME_OVERLAY defines the style
0 = unchanged - single slider
1 = expandable - button beside to slider to expand - this is the default
2 = expanded - open already expanded

This also adds using setting VOLUME_LINK_NOTIFICATION
to allow adjusting the separation of notification and ringer volumes
default=1

This also already adds the new setting
VOLUME_ADJUST_SOUNDS_ENABLED default=1
to allow disabling the volume adjust sound

PS2:
the usual whitespace cleanup :)

PS3:
change commit message

PS4:
added missing change for VOLUME_LINK_NOTIFICATION in AudioService

PS5:
nitpicks are good :)

Conflicts:
	core/java/android/provider/Settings.java
	media/java/android/media/AudioService.java

Change-Id: I94e0f944f76ee9751663de8ac40d99a342884259
Fix error when cpufreq is loaded at runtime

Change-Id: I4691bbfbb1a49b130ba4b9a0ed5ded3601e220fc
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

Conflicts:
	core/java/com/android/internal/os/ProcessStats.java
SystemUI: always use transparent notification shade

Devices with less than 512MB of memory have a solid
black notification shade. Remove the isHighEndGfx()
check to force a transparent notification shade on
all devices.

Change-Id: I9a68a2a8b0d36685f8899f3bbed43bb6bccb47b1

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
bootanimation: performance/speedup enhancements (squashed from CM10)

bootanim: Don't cache textures if they're expected to use a lot of VRAM (rmcc)
https://github.com/CyanogenMod/android_frameworks_base/commit/14f9eecd3f543a25c4a2053d6155a9396a777a3a#cmds/bootanimation

bootanimation: performance enhancements (turl)
https://github.com/CyanogenMod/android_frameworks_base/commit/e6b54405aa70d7503a114d9c90ef7518abdd7133#cmds/bootanimation

bootanimation: fix usage of LOGW (intervigilium)
https://github.com/CyanogenMod/android_frameworks_base/commit/e45cf7d232490f44aecf8f2447220a8b5ace4c10#cmds/bootanimation

bootanimation: allow using RGB565 instead of ARGB8888 (tpruvot)
https://github.com/CyanogenMod/android_frameworks_base/commit/204282870a9c69b04ad5ddecd73fafbd7996cbc0#cmds/bootanimation

Change-Id: I203fa23f77d1349fb822a7662e2cd3998ba4c814

bootanim: Don't cache textures if they're expected to use a lot of VRAM

bootanimation cached all the textures generated until the animation
was completed.
For Hi-res animations with lots of frames (like the new CM9 anim on
xhdpi devices), this implied using large amounts of video RAM, more
than most devices actually have available, causing the animation to
stall (and in some cases, gralloc to lock up); so if an animation is
expected to use a lot of RAM (rough estimation based on frame size
and number of frames), disable cache entirely and generate the textures
on demand

Change-Id: I157e5cdde2aab1d82d980d77cbedd9f127c83a1d

Conflicts:

	cmds/bootanimation/BootAnimation.cpp

bootanimation: performance enhancements

This patch implements two simple performance enhancements, which
might benefit devices. They are completely opt-in by setting
the following variables.

  * TARGET_BOOTANIMATION_PRELOAD: will preload the bootanimation
    zip to memory; this is handy on devices where the storage
    might be slow. By preloading it, we get quick access to the
    zip file, and the animation doesn't stutter.

  * TARGET_BOOTANIMATION_TEXTURE_CACHE: allows maintainers to
    force texture cache on/off.

Also fixes the sign warnings related to int / size_t comparison

Change-Id: Ie92d1b0aa90b43ba39c368a2a33657a60c3a64b5

Conflicts:

	cmds/bootanimation/BootAnimation.cpp

bootanimation: fix usage of LOGW

Change-Id: I1d59df9f44f414d80058a532644cbbb40e22c701

bootanimation: allow using RGB565 instead of ARGB8888

RGB565 uses considerably less memory, and together with texture
cache, it allows us to offer a really smooth bootanimation on
not so powerful devices.

Change-Id: I9da8fd7e6a587b5895519dd0983ec9b8f676771b
change default for unknown sources & verify apps

Change-Id: I04467c0c1ef3985b416f6e58013ddc3ce4137712
frameworks_base:Switch to new Google location provider(Fix Location)
fb: volume rocker controll (wake up and volume) thanks to

CM and omni for the proxy sensor idea

Change-Id: I60f5f88e32a129afda80f5b0f4f41cb0a322b691
fb: fix google observer derp

the way it was it does not detect any observer change on the
immsersive value. Fixed it by settings it to Secure completly

Change-Id: If8cf887650668e2399367e09614e91cc30b7f70b
increase touch sensitivity

Change-Id: I77e6aeca3667808e630dc142a2e561d3ddddef80
Fix infinite recursive loop

There is an apparent recursive loop at IntProperty.java
in method set(Object, Integer)

This method unconditionally invokes itself. This would seem
to indicate an infinite recursive loop that will result in a stack overflow.

This was brought over from out original JB branch.  Somehow, this got
overlooked, and never made it into JB42.

Change-Id: I344f7d774d4a9c688dda1e10f796def0f503d037
framework-res: Remove gingerbread scrolls
modify config values in frameworks and systemUI

Change-Id: I32b884b032e0ddeb701103e361840559daea2a2b

Conflicts:
	core/res/res/values/config.xml
calm soothing zen gradients

we have the images.. so lets use them.

PS2:  Fix all those crazy tabs, and align properly.  lol

Change-Id: I67fc0f1e878d19688ac0cca02dae7bab47358a7c
set default longpress time from 500 -> 375

just a little tweakaroonie.. this is what we had it set to for 4.1

Change-Id: I208c498f6999a76d7dae557ecbed7361dec46b98
Remove GB alert drawable from reboot menu

Change-Id: I77cd3fabaed76c6cdd1ba051d628254c2f79974c
frameworks/base: Fix for the race in Wallpaperservice

Wallpaperservice has a race among message handler of
DO_DETACH and service's onDestroy. In certain cases,
the engine kept track in mActiveEngines is removed by
message handler of DO_DETACH and service's onDestroy
doesn't get a entry in mActivieEngines and isn't able
to invoke detach. This keeps the broadcast receiver,
mReceiver active and is unregistered by the framework
and a corresponding leak is reported.

  Later, the message handler of DO_DETACH continues
and invokes detach on mEngine, which attempts to
unregister mReceiver and framework throws an exception
"Receiver not registered: android.service.wallpaper.
WallpaperService$Engine$1@40874580" and causes the
framework to reboot.

  In case of system_server, WindownManagerPolicy and
android.server.ServerThread contest for access of
shared members, mActiveEngines and mEgine. Fix is to
protect the critical section via synchronized block.

Change-Id: Ice79cb8344fb54bcc6e9f76f4b143daac2608d7b
Reduce EntropyMixer seed size from 4096 to 512 bytes.

The suggested seed size from Linux drivers/char/random.c is 512 bytes
rather than the 4096 bytes currently used.

Change-Id: I3dd55105f0a95ce9cda34b4cf08987b8a28c4ac9
build core/jni with fstrict

Change-Id: Ic2418b7b9a359a47ff8efc501c69b926c3c91c5a

Conflicts:
	core/jni/Android.mk
Make EntropyMixer mix in output of Hardware RNG into Linux RNG.

On devices with Hardware RNG (HW RNG), this makes EntropyMixer
periodically (every three hours) read 512 bytes from HW RNG and mix
them into the Linux RNG.

This is done without increasing Linux RNG's entropy estimates to
avoid having to trust the quality of the HW RNG. This approach cannot
reduce the quality of the Linux RNG output, but may increase it.

Change-Id: Ifde851004301ffd41b2189151a64a0c5989c630f