SystemUI: Smart Pull-Down - Any Notification (1/2)

Change-Id: I8656b75550ea0d30d4c620160221ca22ffe1af92
Framework: Shake To Perform Event (1/2)

PS2: Nautilus resize somehow turned the resized images
	completely black <_< resized manually via gimp
	to retain correct color for xhdpi, hdpi, mdpi
PS3: Dependency Update
PS4: Rebase Against Nav-Bar Arrows Commit
PS5: Same code, dependency
PS6: Same code, another dependency
PS7: Dependency
PS8: Dependency update
PS9: Dependency update

Change-Id: I4db35489b223ce5e4d8c84a3f666ffcd5f8c1dca
Framework: Keyguard Shake Events (1/2)

PS3: Abandon attempt at not inflating shake listener
	on boot due to double keyguard inflation.
	Set intent filter to catch the unlock event
	instead.
PS4: Rebase
PS5: Same code, dependency
PS6: Same code, another dependency
PS7: Dependency
PS8: Add "Keyguard camera" action
PS9: Derp whitespace

Change-Id: I576267cdd6f181f2349d6601f6415679adbf5097
Framework: Shake Sensitivity (1/2)

PS2: Same code, dependency
PS3: Dependency

Change-Id: I01919a2f2b8cc1457bfef565d71a1352d14bb7b9
Framework: Disabled Shake Apps (1/2)

User can set a group of apps that will nullify
	their shake events while the user is
	using these apps.
PS2: Dependency

Change-Id: Iafc6faf19899e4526d7566bbb151534282486569
Framework: Keyguard - Disable Shake if isHidden

If another activity (alarms, etc) is shown on
	the keyguard, disable shake temporarily

Change-Id: I984ac162c1105b56f5ce00cb0f7fb5aace0ae8de
Squashed CM Theme Engine [1/6]

[Summary]
Took the T-mobile theme engine, replaced redirection mechanism with a modified Sony idmap and then extended the feature set.

The new theme engine allows the following:
1. Simple creation of themes by compiling on the device
2. System level icon packs.
3. Font packs
4. Swappable boot animations
5. Lockscreen wallpaper
6. Alarms
7  Of course all the things the previous engine could do including skins, ringtones and
notifications. There is also legacy support for old themes.

[Theme Format]
For the time being themes are APKs with all theme elements in the assets folder. Since these resources
are compiled at runtime there is no reason we can't change it to a zip but creating an APK is well
understood by themers.

The directory structure looks like this:

AndroidManifest.xml
src/
res/
assets/
  boot-animation/
  fonts/
  icons/
    res/ (note: same dir structure as res/ in trebuchet icon packs)
  wallpapers/
  ringtones/
  notifications/
  alarms/
  overlays/
      [target-pkg-name1]
          res/
           drawable/
           drawable-hdpi/
           ...
           layouts/
           xml/
      [target-pkg-name2]
          res/

Where [target-pkg-name] is the package of the app you are trying to overlay. For example, to overlay
facebook's app you would make a directory under overlay called "com.facebook.katana". For frameworks
resources use the target name "android".

Under each target pkg is a res/ folder which follows the same format as a typical APK's res/. During
install time AAPT will actually compiling these res/ folders individually.

There are also non-overlay folders like boot-animation, wallpaper, fonts etc.

A theme APK is identified by meta-value data in AndroidManifest.xml. Here is an example:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.me.andytheme2"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-feature android:name="org.cyanogenmod.theme" />
    <meta-data android:name="org.cyanogenmod.theme.name" android:value="My Blue Theme"/>
    <meta-data android:name="org.cyanogenmod.theme.author" android:value="John Doe" />
</manifest>

By using meta-data we do not require special new tools.

[Changes to PackageManagerService]
During install time PackageManagerService will scan meta-data values in the manifest. If it finds
a meta-data name of "org.cyanogenmod.theme.name" then it will assume the APK is a theme and mark it as such.

Then PM will find all overlays from the theme. For each overlay target it will generate a resource table
and an idmap via Installd. Aapt will also run to compile 9patch and xml files. The new restable, idmap, and compiled resources
are stored under /data/resource-cache

[Changes to aapt]
Aapt has been extended to read zip entries and accept file descriptors to work with installd.

[Changes to frameworks/core]
Most of what TMO has done already here for runtime theme changes is kept so most changes
are simply plumbing to make Sony's overlays work at runtime. Additionally changes were made
to TMO classes to support mix n match better.

[Changes to libandroidfw]
Sony's idmap concept is one overlay apk -> one target apk, but themes support multiple target apks. So
most of the changes here are for support this. Also we support runtime overlay changes so functionality
had to be added to add/remove to the resource table during a configuration change.

[Security]
We run aapt in reduced priveledges via Installd. At the moment however a theme can overlay any resource. This
includes strings and layouts so any malicous theme could cause serious crashes to the device.

[See Also]
frameworks/native
external/skia
build
vendor/tmobile/providers/ThemeManager
vendor/tmobile/libs/com.tmobile.themes

[Contributors]
Andrew Mast <andy@cyngn.com>
Clark Scheff <clark@cyngn.com>
Special thanks to the T-Mobile theme team. This would not be possible without their efforts.
Special thanks to Mårten Kongstad and the rest of the Sony team for their work in idmap.

Change-Id: I864709c0899d6012112f87496d4c66c389ba2bae
Lockscreen Notifications [1/2]

My try on making notifications easily accessable from lockscreen.
Credits to ChameleonOS, I got the notification listener permission and some small other stuff from their ActiveDisplay implementation.

Lockscreen Notifications allow you to manage all your notifications directly on the lockscreen.

Features:
- Pocket mode turn screen on when phone is pulled out of pocket and turn it off when phone gets back in pocket
- Hide low priority notifications
- Hide non-clearable notifications
- Allow dismissing even non-clearable notifications from lockscreen
- Just turn screen on when there's currently a notification pending
- Toggle between expanded and normal notification view by longpressing
- Wake on new notification
- Configure notification count displayed at once
- Privacy Mode: Hide notifications content on secure lockscreen.
- Blacklist apps - thanks to ChameleonOS for the original implementation and @Der-Schubi for bringing it to lockscreen notifications
- Show all/dismiss all button, does not dismiss on going notifications, they must be swiped away

Overlay setting:
dynamic width is disabled by default, to enable it for a specific device, add
<bool name="config_lnDynamicWidth">true</bool>
to yourdevicetree/overlay/frameworks/base/packages/Keyguard/res/values/config.xml

PS3: Disabled by default
PS4: Removed many whitespaces

Change-Id: Ife8cbe1ef86691c391de061964bf4d14be03a59f
Signed-off-by: kecinzer <kecinzer@gmail.com>

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/statusbar/IStatusBar.aidl
	packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
	packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java
	packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
	packages/SystemUI/res/layout/navigation_bar.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java

Change-Id: Ife8cbe1ef86691c391de061964bf4d14be03a59f
[1/2] frameworks: Adding old-school (JB like) battery percents style
due to its better visibility.

Also added "No battery" style.

Added percents visibility while charging and
colorizing percents while charging

One selector made obvious

Removing unnecessary code

Setting green color for text 90+% charged

Now bolt color means color of circle battery, not percents

Fixing percentage color while charging for "text only" style

Fixing percentage color for JB style

Adding green percents color when charging and >90% for circles with percents too

Including Juba's changes regarding battery tile with no battery in statusbar
and styles order

How does it look like:
https://dl.dropboxusercontent.com/u/66673431/BattModPercentScreen1.jpg
https://dl.dropboxusercontent.com/u/66673431/BattModPercentScreen2.jpg

Settings change: https://gerrit.slimroms.net/#/c/5755/

Change-Id: I7505c7e35c252a0fac0bd37db4be33bbff89ef41
PackageManager: Fix concurrent access to shared state

Stop multiple threads from all calling add on the same HashMap.

Cleanup the use of a boolean flag by removing concurrent writes
to it.

Change-Id: I8d61fe7294dcb67ee7d0d7de88d90d2051c310e6
Merge commit 'refs/changes/41/7241/1' of https://gerrit.slimroms.net/SlimRoms/frameworks_base into HEAD
power: Add CPU boosting interface

 * Boosts CPU using Power HAL for the given duration.
 * Duration is given in microseconds.
 * Power HAL must implement POWER_HINT_CPU_BOOST.

Change-Id: Ic79baf7e3d0f75483c2fe8a242b4c3d93368b68b

Conflicts:
	services/jni/com_android_server_power_PowerManagerService.cpp

Change-Id: Ic79baf7e3d0f75483c2fe8a242b4c3d93368b68b
MediaFile: support more media types

Change-Id: Ib3109c5ebc762b97e45bd0bb5fa82ad77b0e6822