[2/2] Frameworks: HALO Forward port from jb.

Change-Id: Id1d6baa2ab95ecf405c02c5d82732d1f545fc10a
PS1: Initial port Fix conficts with notification LED Fix derp Major derp HALO Mods Rebase Fix blackist, code clean and added some TODOs
PS2: Fix build
PS3: Fix bubble sometimes doesn't respond on new notification
PS4: Align halo icon
PS5: Keep floating app in recents and disable transparent layer temporarily (NOT INCLUDED)
PS6: Fix conflict after recent merges
PS7: Cosmetic fixes: Fix buttons layout in status bar. Status bar button holders show halo + qs switch on notification and qs edit mode + notification switch on qs. Update new margins size. (PARTIALY INCLUDED)
PS8: Rebase Clean white spaces Toggle on/off from notification shade icon (remove red X) Standardize behavior (remove option to reverse tap/double tap)
PS9: Remove references to LayerActivity
PS14: Rebase
PS15: update halo strings to prevent conflict with latest changes
PS16: Wrap all things! Modify halo behavior
PS17: Get the correct activity stack: this makes all windows in the same stack to get the floating mode
PS18: Stop pop-out on rotation
      Catch "silent" notifications
PS19: Rebase
PS20: Rebase, fix conflicts with recent merges
PS21: Fix missing commit messages from previous undefined patchset (19) and other conflicts
Change-Id: I257b7109cc1efd146a1e7096143f45c4f9dc8f98

Conflicts:
	packages/SystemUI/res/layout/status_bar_expanded_header.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
HALO: make windows moveable and scaleable [WIP]

Change-Id: I8c3118f6d548dc70f186454fb8d15a4bae9bbeb0
Power menu QS tile (1/2)

- Simple press goes to power menu dialog
- Long press goes to reboot dialog

Change-Id: Ica86831bf02be60b88a693b6367be6f08e705ba6

Conflicts:
	packages/SystemUI/res/values/cr_strings.xml
Power menu into navring targets (1/2)

- This commit use the intent added here: 0efd6981a6c4b299204b8d4f5495bddb5049f30e

The intent added in  core/java/android/content/Intent.java is called when power menu is choosed

Change-Id: Ifcf898ce7e3221fc67c18b2a54806ef344f68e7f
fb: Incoming Call in Background (3/3)

Patch ported from 4.2 which was done by our lovely HCP. A
very popular one so we bring it back and adapt it to 4.4

Allows user to set that Incoming Call UI will remain in background
if screen is on. Instead, a notification is added to StatusBar, which
can be used to bring up the Incoming Call UI. Ringtone and vibration
still occur as per system settings.

This has the same effect as apps marked as "immersive". It prevents
the incoming call from backgrounding the current activity.

Change-Id: I8960ccc453c47d2db38af350b04018e092ef5756
 Navigation bar dimensions (1/2)

- Change height when in portrait
- Change width when in landscape
- Option to enable or disable nav bar

This is partially ported from SlimRoms
Thanks to @kufikugel

Change-Id: Ic2bfb32684c3d74062d123266db1516e09d92fb6

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

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Frameworks: Advanced low battery indicator options (1/2)

Based on a idea I saw on Liquid and from CR3C0 (thanks guys) which we
modified to an extended version

This commit introduces following new SlimBean modes to indicate low battery

     * 0 = show dialog + play sound (default)
     * 1 = fire notification + play sound
     * 2 = show dialog only
     * 3 = fire notification only
     * 4 = play sound only
     * 5 = none

Due that notification is a unique SlimBean feature some words on it. Notification
behaviour is the same as Pop-up. User can dismiss it manually or it is
dismissed automatically if charger is connected, click on notification opens
PowerUsageSummary. Also you get a status bar ticker message about the notification
and notification is always on first place of list. And last if vibration is enabled
notification vibrates.

Patchsets:
 - codestyle corrections

Patchst
 - add PowerUsageSummary intent

cheers

Change-Id: I2097afad8a090d2557a1e545cf978c87ca77d6c1
Lockscreen blur and blur radious (1/2)

Change-Id: Iab92bc2adfc2c861cd4f1baccdba2409a5deb788
Frameworks: Policy: implement a pin keypad shuffler [1/2]

this is to further prevent people using the tablet guessing your pin based on fingerprints left on the screen
example of the expected outcome - https://www.dropbox.com/sh/r3xb2q53ksaqni9/Oz1Eu8Dm7O

- correct coding style
- added reload button

PatchSet:
- simplify shuffle code
- fix over shifting in some cases
- add reload button functionallity
- add lockscreenutils method to detect only PIN lock
  for settings
- exclude sim and simpuk PIN lock
- add drawables for reload button

PatchSet
- cleanup

PatchSet:
- fix shuffle NumKeyPad even if a theme replaces the xml
  and reload button is not present.

PatchSet:
- add mode disabled/always/on request

cheers

kufi

Ported to new keyguard package on 4.4

Change-Id: Ie246a54c982e0dbfc26abe1d82f02ce2fd1acd75
Frameworks: LockBeforeUnlock the new way (1/2)

Due that aosp removed the whole LockBeforeUnlock controll (show slider
lockscreen before an unsecure internal lockscreen) we must try to find another way
without touching the security system itself. Long guess short solution, lmao

here it is, next SlimKat feature

cheers

PatchSet:
- bring eca button to front in lockbeforeunlock mode to make
  it clickable on slider lockscreen

adapted our 4.3 version to 4.4 and smaller fixes/code improvements

Change-Id: Ifa25896b60878c15a464a199f00d8144ea336b54

Conflicts:
	packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
Extended QS Options (1/2)
- 3, 4 or 5 tiles per row
- Duplicate tiles quantity in landscape mode

Change-Id: I992ca27632b2d106dfa1b903fda08afe7a49b9ea

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
Custom clear recents button (1/2)
    - Option to show/hide
    - Option to choose which corner to place (top left, top right, bottom left, bottom right)

Thanks omnirom team
Original commit: https://github.com/omnirom/android_frameworks_base/commit/dc9ddf62c4a0b1710ad3ce4bdf19ce5dcf63094c

Change-Id: I9c15fee94de38cd94a8d685b76a43af58c48bd5e
Ram bar (1/2)

Change-Id: I19003c1bbcf3226414e9e3168418afc912ae850e
Base: Allow hiding notification icons

When long pressing a notification, add another menu
item which allows the user to hide the notification icon
(but keep the actual notification in the dropdown).

This is meant for applications which have services running
in the statusbar which the user is aware of, so right now
we hide the icon by the package.

Change-Id: I60c8705e1fd02d7b26dbe90fe39a3b40febdbfcc
QS: let's welcome LocationTile to 4.4

we already modified to use the basic 4.4 location mechanism. Still
it was very basic. Now using the same attempt like in Settings to
controll location mode (high accuracy, battery saving, device only) and on/off state

longpress switches between the states. Normal click turns it on/off
Compared to settings turning on will recover last state where it was turned off. As
well it respects the sharing location warning dialog either when you switch on into
a mode which use it or you switch into a mode which uses it and it was not confimed.

Slight corrections to original AOSP code to reflect the changes in LocationController
even though this code is non operational

PatchSet:
- moved the complete handling into the LocationController. Way better
  to have in centralized. Who knows for what we will use it later.
PatchSet:
- cleanup

PatchSet:
- added drawables from kroz :)

Change-Id: I4638cb21303cf91288c08ff83e9217f23de4d403
Frameworks: notification drawer background (1/2)

so after keyguard is mostly done let us start notification drawer
and QS. First one custom background.....either color or picture
with custom alpha and ability to set a landscape picture seperatly
(landscape phone only)

Compared to the 4.3 included version completly recoded and better
integrated. No idea what I thought 1 year ago on the old implementation

cheeers

Change-Id: Ia823856b755a129ea1fcddc2e24cb043ac37d621
fb: notification transparency (1/2)

this add back notification transparency...compared to 4.3
it controlls as well the notification icon backgound transparency
which felt in the past dissplaced. As well codecleanup of the old
implementation.

largeIcon support I did not add due that google does not support it
as well at current status...it is only a placeholder in
NotificationData

Change-Id: Ia2c6761575dcf62adc5eae248125d4e0ad67be5e
QS tiles custom background + adjustments in Extended QS options

- Some replacements in Extended QS options (put thing in right places)
- No need to observe settings twice;
- Link dynamically ribbon background with QS backround

This commit is not for my own and instead of this the owner is @kufikugel
original commit (only background codes): https://github.com/SlimRoms/frameworks_base/commit/d85304fac9bde550beeeeca0dba2cd49686f20d7
Again, thanks to him.

Change-Id: Iaafdb6785bb3b6a54d9b8d070bccf4cd965b2a6f

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
Keyguard: do not show maximized on simpin and several fixes

- to show a maximzed widget container on first boot when simpin
  or puk is requested does not make any sense. In this case
  show it as normal view
- fix sometimes unresponsive unlock handle on maximized widgets
  and bring it to front (happened only in combination with
  lock before unlock)
- a bit codecleanup and centralize
- fix animation was visible on screnn turn on. Now it is directly
  maximized visible

Change-Id: Id4dce13efee29ce44def60b4de9200a4680e2007
fb: TRDS 3.0 and new theme engine preparation (1/4)

For the one who do not know this feature see as reference
the first two versions here:

SlimRoms/frameworks_base@b330fde

SlimRoms/frameworks_base@3194015

we got now over a year now a lot experience how to handle the qualifier fallback
as well how to theme it and how to handle other apps. Based on this knowledge we
redid some parts of TRDS engine with following new features/additions and fixes
to have now a final perfect working TRDS

- compared to the old versions where it was needed on some apps to restart them
  in background this is not needed any more. All is handled about the internal
  AOSP resource handling and on qualifier change the caches are cleared
  and the apps get an onconfigurationchanged to restart the activity
  like it is doing on orientation change eg
- inverted folder is now depreciated and the new folders are holodark
  and hololight which allows on the one hand a dark theme (at least
  how TRDS started) and a light based theme hololight
- This name change is mainly because of the new theme engine which
  will come which uses this as base to add 2 external themes at the same
  time and give the user the ability to switch between them. But this is
  still in early stages and this commit is just the preparation for it
- Two new automodes are now integrated. User can enable the twilight modus
  which enables/disables holodark/hololight depending on the daytime...means
  on the evening it switches to holodark on normal day it is hololight.
  The other automode is based on light conditions....means that if it is
  dark outside it switches to holodark....if we have bright light conditions
  it switches immediatelly to hololight. Due of the resource cache handling now
  this happens immediatelly for the user and feels completly system integrated
  and happens without delay. A bit comparable to some navigation tool for cars
  which can switch automatically from dark to light and back
- currently the auto modes as well the manual mode switches between holodark
  and hololight. Due that we do not have currently anything hololight themed
  in the source hololight = stock theme. We will give the user the ability
  later when done to choose between which modes the user want to switch
  (stock/holodark/hololight). But this does not make sense at the moment.
  As soon as we have done the light theme or theme engine (lets see what
  comes first) we will open the ability to choose it. This is only a small code change
- a lot small tweaks and fixes went as well into the new version

Whatever this commit as usual adds the support for it. The themeing is done in the
other commits by kroz which is as well way more extended then on the older versions

cheers

PatchSets:
- minor code cleanup

PatchSet5:
- use one value for auto modes

PatchSet6:
- kill resource caches on configuration change

PatchSet7:
- register settings observer lol

PatchSet8:
- fix not assigment of config mode change (typo lol)

PatchsSet 9 -11:
- playing around aosp qualifier is not that flexible then I thought
whatever back in most parts to original implementation handling

PatchSet 12:
- now no restarts of any application needed any more like it was on 4.3...yeaaah
- fix wrong shifting in native adapter
- fix wrong call of twilightmode
- disable debug
- cleanup

PatchSet 13:
- fix lightsensor

Patchset 14:
- no need currently to recreate the navbar we can do if a theme needs it

Patchset 16:
- synchronize on sending config change
- only send if system is ready
- fire first update when system is ready

-rebase

============================================

PS: Added two classes (part of SlimRoms)
TRDSConstant.java
TRDSActions.java

Those two will be used to control enable/disable TRDS

Change-Id: I5fb21c022ad507b6c49c2909d4897955311a9436