change default for unknown sources & verify apps

Change-Id: I04467c0c1ef3985b416f6e58013ddc3ce4137712
PowerManagerService: Implement setButtonBrightnessOverrideFromWindowManager method

Differs from Android 4.1 (and earlier) implementation in that the
overridden button light still turns off after BUTTON_ON_DURATION instead of
staying on until screen off.  However, button lights are annoying, and
really the purpose of this is to allow apps (e.g., Screen Filter) to
_disable_ the button lights altogether.
Keyboard light: Fix the physical keyboard not light when it's visiable.

Change-Id: I595afd3cb6b422a17ae0f6ec20aa51979db13810
keyboard: adding functional alt/shift lights

This is useful for devices that has QWERTY keyboard
and leds for the Alt/Shift (Fn/Caps) keys, like
htc doubleshot.

Depends on libhardware patch for the light ids:
http://review.cyanogenmod.org/34902

Change-Id: I66ebc2d881438f5b51db77eaa885421e65a7da0d
Keep keyboard lit until the screen is dimmed

Do not use button timeout for keyboard (which is intrusive on QWERTY
sliders). Keep it lit until the screen dims instead of turning it off
like the buttons after 5 seconds. Also consider setting keyboard
visibility as a user activity.
Add back backlight brightness curve adjustment.

Change-Id: I58408111d6366a281303afb469d78588ae88d275

Conflicts:
	services/java/com/android/server/power/DisplayPowerController.java
Fix race condition in backlight adjustment.

When configuring the automatic backlight levels, there's a race
condition in setting the lux and brightness settings as the settings
provider doesn't allow storing multiple settings atomically. When
deleting rows, there's quite a high chance of DisplayPowerController
picking up a state where the lux values already have the lower number of
rows, but the brightness values do not, effectively leading to an
ArrayIndexOutOfBoundsException.

Fix that by
- waiting a second of cool-down time until applying the settings and
- adding a sanity check for the very unlikely case that the delay
  between writing both values is > 1 second

Change-Id: I44e41530fc5334aaefc4ab7d3a90542f78fabe0c
JIRA:CYAN-755
Improve auto-brightness handling

- Add a setting to control the auto-brightness algorithm responsitivity
- Make the algorithm react much faster when the ambient brightness
  increases quickly, e.g. when receiving a call in bright sunlight.

Change-Id: Ic608901c476609dde69cae982228c09567140a83
Frameworks: Controll electronic beam animation (1/2)

thanks Team EOS for the idea

cheers

Change-Id: I32e5d3d847d7d812b81d9714099fdd0387f7faca

Conflicts:
	core/java/android/provider/Settings.java
	services/java/com/android/server/power/DisplayPowerRequest.java
	services/java/com/android/server/power/PowerManagerService.java
Frameworks: ElectronBeam get some love (1/2)

This commit removes the CRT On animation because it is just
not nice implemented from AOSP and not really needed. If ppl
turn on the screen they want to see fast their content. But still
CRT animation needed some love. So this commit introduces another
SlimBean mode. Crt animation mode:

Features:
- Crt Off animation controll (on/off like it was before)
- You can select different crt off animation modes
- always horizontal (stock behaviour)
- always vertical (screen collapse from left and right to the middle)
- orientation dependent (means portrait = horizontal animation, landscape = vertical animation)

cheers

Change-Id: I193313619e8b26f7c4a08e864310d4eaa62225f3

Conflicts:
	services/java/com/android/server/power/DisplayPowerRequest.java
	services/java/com/android/server/power/ElectronBeam.java
	services/java/com/android/server/power/PowerManagerService.java
Detect whether overflow button should be shown based on menu key state

Some devices may have hardware keys but not contain a hardware menu key.
Hardware keys are also able to remapped. The overflow button detection logic
currently does not take that into account. This change allows detects
whether any key is capable of emitting the MENU_ACTION keystroke in
order to determine whether the overflow button should be shown or not.

Change-Id: I8699bd0242560314f8eadc54b187c69c992cf875

Conflicts:
	services/java/com/android/server/wm/WindowManagerService.java
[2/2] Permit home button wake to be configurable

Change-Id: Ie52247d5c23c8f840ababc880dd41992049cefd1

Conflicts:
	core/java/android/provider/Settings.java
PowerMenu : Improve keyguard filtered actions

Replaces the check for visibility of lockscreen with the state
of the keyguard instead. This avoids the situation where actions
returning false from showDuringKeyguard, are still shown if user enters
emergency call screen.

Change-Id: Idb5df14813d9479bd4178dbb9eb3b91cbecda5de

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Frameworks: Configure wake on Power, Home or Both [1/2]

Allows users with Home button to specify which buttons to use to wake
device. Options are:

- Power Button only
- Home Button only
- Power or Home Button (default)

Essentially the same as current functionality, but now enables user to
"disable" Wake on Power Button, by selecting "Home Button only".

Note: requires config_home_wakeScreen device overlay:

packages/apps/Settings/res/values/bools.xml

Based on Xposed addon by Daniel Bergløv aka SpazeDog

PS 2: modify default to Both, integrate http://review.cyanogenmod.org/45621

Change-Id: I6d9f08c23aed4e63429b3a735c869c6a179582f5

Conflicts:
	core/java/android/provider/Settings.java
change "next" to "done" in minute IME option under 24-hour format

We don't need "next" button under 24-hour format any more.
So, we changed from "next" button to "done" in IME option
when setting minute under 24-hour format

Change-Id: Ic9b1673248183060ba7279b63648a85dc39ca3b9
Check themes of current user, not user 0.

Change-Id: I1688dbd1b89a9da50b6372eb2faac56e61679c50
Fix theme provider crashing for non-primary user.

PackageManagerService's context is for user 0, so if the theme provider
for other users was invoking the getInstalledThemePackages() method, the
themes provider crashed as it doesn't have the INTERACT_ACROSS_USERS
permission.
Fix that (and simplify code) by making getInstalledThemePackages()
return the installed themes for the current user, which was probably the
intent anyway.

Change-Id: I02002cee005b74128f3b2f7cc7a93b9b8514f1f3
Don't assume any ringtone is present on external storage.

If that assumption doesn't hold true, the user will lose his ringtone
and won't know why.

Change-Id: I89409e1351792d020c5458f5104f4bb9f2a040f2
Prevent audio players starting on startup.

Previously, (at least) Apollo was started on startup (in that it
appeared in the notification bar) because it listens to the AUDIO_BECOMING_NOISY
intent to silence itself in that case. This intent is broadcast by
AudioService when there's a user switch to silence any potential audio
players for the old user. As the system also sends around a
USER_SWITCHED intent on startup, this led to the aforementioned player
startup.
As the intent of AudioService was to act on a user backgrounding anyway,
send out AUDIO_BECOMING_NOISY as reaction to a USER_BACKGROUND intent
instead of the USER_SWITCHED intent.

Change-Id: Iba35844a1274c9dd195f104068304e6a7ffa809e
Framework: Fix multi-user support in AudioService

Change-Id: Iddeeeac0734a237103e238bcdaa1e85806a64e4f

Conflicts:
	media/java/android/media/AudioService.java