FW: AOKP Ribbon

This creates a series of options for shortcuts in a few places

The AOKP Swipe ribbon
Lockscreen ribbon
Notifications ribbon
Quick Settings ribbon

Options for Long Press, Icons size, Custom Icons,
  Text on and off, Text color, and options for
  Swipe ribbon color and Opacity.

Change-Id: I6bfb541801bd428b5eee06ef1c3f7d23ef7eeede

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/util/aokp/AwesomeConstants.java
	packages/SystemUI/res/layout/status_bar_expanded.xml
	packages/SystemUI/src/com/android/systemui/aokp/AwesomeAction.java
	packages/SystemUI/src/com/android/systemui/statusbar/WidgetView.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java

FW: Ribbons Padding, Click options, autohide updates 1/2

Adjustable padding
vibrate on click optional
if no short action set use long action icon and
  dont set short click listener - long press only mode...
Autohide flakiness fixed
Don't unlock on torch

Change-Id: I45c9f29453220e80249300b66bb61d5a7afc784f

Conflicts:
	core/java/com/android/internal/util/aokp/AokpRibbonHelper.java
	core/java/com/android/internal/util/aokp/RibbonTarget.java
	packages/SystemUI/src/com/android/systemui/aokp/AokpSwipeRibbon.java

FW Ribbons Swipe ribbons seperated && logic adjust for navbar

If you have an enabled navbar weither by default or user seleted
the bottom ribbon has not been available. If the user manually
hides the navbar I will allwo them to use the bottom ribbon.
They can also long press the hidden navbar handle to get the
bottom ribbon.

This also makes the left right and bottom their own ribbons.

Change-Id: Icba9c4ec510149bef74382a3bf59fd79b3ef87c4

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/util/aokp/AokpRibbonHelper.java
	packages/SystemUI/src/com/android/systemui/aokp/AokpSwipeRibbon.java

xFW: Ribbons Colorize action icons, unlockmethod

Unlock method for if action should be unlock or not.

now torch, notification, and power shouldnt unlock.

Change-Id: Ic0978f145c8ad4f6f944cd603bfe744415d44561

Conflicts:
	core/java/com/android/internal/util/aokp/AokpRibbonHelper.java
	core/java/com/android/internal/util/aokp/RibbonTarget.java
	packages/SystemUI/src/com/android/systemui/aokp/AokpSwipeRibbon.java

FW: Ribbons - Long swipe App window.

Window similar to recents with all the users apps.
Options to control app color, background color, and
background opacity.

On touch listeners for targets and close button
Make dividers colorize with text.

Fixed animations make columns spacing work automagiclly

Change-Id: I6147dee1e97436f252a7dae349d1eff1d6e5dbf9

Conflicts:
	core/java/com/android/internal/util/aokp/AokpRibbonHelper.java
	core/java/com/android/internal/util/aokp/AwesomeConstants.java
	core/java/com/android/internal/util/aokp/RibbonTarget.java
	packages/SystemUI/src/com/android/systemui/aokp/AokpSwipeRibbon.java
	packages/SystemUI/src/com/android/systemui/aokp/AwesomeAction.java
	packages/SystemUI/src/com/android/systemui/aokp/RibbonGestureCatcherView.java
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java

FW: Ribbon - Toggles

Fix for some toggles not getting set properly
fix user toggle fc
fix some toggles hieght being HUGE

respect users click vib setting.

respect ribbon padding

sync custom toggle if in multiple places

fix theme issues.

Fixed Icon from Nitroz

Change-Id: Ia225e822485b715e6daddeb7b62e232e72db5e36

Conflicts:
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/src/com/android/systemui/aokp/AokpSwipeRibbon.java
	packages/SystemUI/src/com/android/systemui/aokp/StatusbarToggleShortcut.java
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/toggles/CustomToggle.java
	packages/SystemUI/src/com/android/systemui/statusbar/toggles/RebootToggle.java
	packages/SystemUI/src/com/android/systemui/statusbar/toggles/SwaggerToggle.java

FW: Ribbon v1.0 overhaul

Thickness Increase max && decrease min
Configurable long swipe and long press swipe areas

consolidate and cache views for smoother animations
User adjustable animantion duration

Add dismiss options for swipe ribbon
 - Always dismiss on click
 - never dismiss on click
 - Don't dismiss for navbar action

fix app window crash if user has fast fingers and to much time
  on their hands...

Swipe ribbon drag handles now get their own location, height,
   width, and opacity.

Hide apps from app window
Hooks to dismiss app window if softkeys or navbar buttons pressed

Fix app window to pull all components also IE camera and messenger.

Rub some unicorn polish on the on touch glow. The giant boxes were
a bit ridiculous.

If ribbon is empty but toogles are not, just show toggles no flipper.

add adb wireless to toggle map

Phase 1 of the Animation chooser. Simple helpers to let users
choose the animation for the swipe ribbon and app window.
ill be adding some fancier animations for now just some of
the stock AOSP one.

Add lots o animation options. Also preload animations instead
of creating them at run time, should smooth things out a bit.

Keyboard IME hide, Vertical spacing App window, Cache resources.

Fix IME hide when navbar hidden.

Longpress on app window now takes you to app info.

Change-Id: I7c59fc915473fe320639eda446a735dee8500efa

Conflicts:
	core/java/com/android/internal/util/aokp/AokpRibbonHelper.java
	core/java/com/android/internal/util/aokp/RibbonTarget.java
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/src/com/android/systemui/aokp/AokpSwipeRibbon.java
	packages/SystemUI/src/com/android/systemui/aokp/AppWindow.java
	packages/SystemUI/src/com/android/systemui/aokp/RibbonGestureCatcherView.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

FW: Fix AwesomeAction constants

Fixes 3 'Blank' entries in NavBar/Custom Toggle actions.
This was due to someone (SteveSpear!! :))  Adding actions
to the AwesomeActions variables without putting appropriate
string & drawable returns.

Change-Id: I8d12808337152b6010be6deb9a7d8984e6980a05
Signed-off-by: Zaphod <mwilson@acesappraisal.com>

Conflicts:
	core/java/com/android/internal/util/aokp/AwesomeConstants.java
Revert "PowerManager: Don't wake up device when charger is plugged/unplugged (1/2)"

This reverts commit 59a7f88c5aacfdbcffa71194d5f7bc5cc8ffd055.

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

Change-Id: Id6b04288d53a2055d01589a72190ba9c5aae737f
Merge branch 'jb3' of https://github.com/CarbonDev/android_frameworks_base into jb3
FW: settings: arrayList API rework

There is nothing wrong with the current implementation
it just requires some implicit knowledge about the internals
which should not be used for an API added at such a central
location

To reset the value back to "" you must know that setString
musst be used instead of providing just an empty list which
would be a more "logical" approach

With this the client code would also become easier cause
the check for size()>0 would not be longer required
e.g. in RibbonTargets

I would also suggest to change getArrayList so that it
returns an empty list for the case that the value is ""
instead of an list with size 1 and the single item ""

Allthough this would be a change in the API it would
make the API sync with the putArrayList and would also
be the more "logical" return value for this case

I think I have checked all current uses of getArrayList
and as far as I can see that change would have no impact
on the existing code. But please correct me if I am
wrong with this.

Change-Id: I58a34e1238fefbfe088252e785cfed3d8c3acf4b
Signed-off-by: maxwen <max.weninger@gmail.com>
Remove option for long press challange unlock.
Add PowerManager integration for button and keyboard backlight.

Allows setting button and keyboard backlight brightness as well as
button timeout.

Change-Id: I550cccafc0a8f90d6347de9261adb26b75955cc4

Conflicts:
	core/java/android/provider/Settings.java
	services/java/com/android/server/power/PowerManagerService.java
Add UsbDebuggingManager and UsbDebuggingActivity to LegacyUsbManager

The UsbDebuggingManager listens to adbd requests and displays a dialog
when the public key authentification fails, for the user to confirm if it
wants to allow USB debugging from the attached host. If the user chooses
to always allow USB debugging, the UsbDebuggingManager writes the public
key to adbd's config file so that the public key authenfication succeeds
next time.

Change-Id: I819b8a0428ba34b68dadeb9fa67c53abb9a85fbc
Add option for switching between UMS and MTP/PTP mode. (1/2)

Change-Id: I8e692d468cb36ccc97ca69b8a2eb11afeb711eae

This adds support for switching between UMS and MTP/PTP.
Framework part (this part) will only enable UMS if the config setting is set.
Standard is to enable UMS if the primary volume supports UMS.

It's only porting this http://review.cyanogenmod.org/#/c/21117/
Allow USB notification to show when primary SD allows UMS and MTP

Previously if primary SD is set to allowMassStorage="true" the USB
dialog would never show.  This checks if persist.sys.usb.config is
set to mtp,adb and then allows the USB notification to show. With
this you can then have the option to select from MTP, PTP and Mass
storage when clicking the pull down notification. When Mass Storage
is selected it activates the USB connected dialog to turn on USB
storage. When set back to MTP the USB connected notification disappears.

Change-Id: I2287075ec93cae75f19e8fb59965d9dddb234aca
wifi: Set the mode at native layer

 * Set normal/AP mode so that the HAL can specify correct module
   arguments when loading the driver.

Change-Id: I6eee2cc53b5f1e70306e252e52c909833f220515

Conflicts:
	wifi/java/android/net/wifi/WifiNative.java
	wifi/java/android/net/wifi/WifiStateMachine.java
wifi: Fix StringIndexOutOfBoundsException for incorrectly encoded SSIDs

If the last character of a SSID is a unescaped backslash then WifiSsid
convertToBytes() will throw a StringIndexOutOfBoundsException and takes the
whole ROM down.

The issue was reported by andreip in the HTC One X XDA thread. His SSID was
set to "/ Andrew \".

04-10 21:33:54.265 E/AndroidRuntime(10479): *** FATAL EXCEPTION IN SYSTEM PROCESS: WifiStateMachine
04-10 21:33:54.265 E/AndroidRuntime(10479): java.lang.StringIndexOutOfBoundsException: length=10; index=10
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.net.wifi.WifiSsid.convertToBytes(WifiSsid.java:89)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.net.wifi.WifiSsid.createFromAsciiEncoded(WifiSsid.java:54)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.net.wifi.WifiStateMachine.setScanResults(WifiStateMachine.java:1522)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.net.wifi.WifiStateMachine.access$7100(WifiStateMachine.java:103)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.net.wifi.WifiStateMachine$SupplicantStartedState.processMessage(WifiStateMachine.java:2511)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:905)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:760)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.os.Looper.loop(Looper.java:137)
04-10 21:33:54.265 E/AndroidRuntime(10479):     at android.os.HandlerThread.run(HandlerThread.java:60)

Change-Id: I8273decacfffea4e4cae3bb957c925833dab09e2
Allow mounting of multiple volumes via mass storage (framework part)

(cherry-picked from CM10)

The volumes to mount is taken from storage_list.xml (allowMassStorage)
rather than ro.additionalmounts in CM7.

Hand ported from the following patches:

commit 0233209827d95221399b1fe0185f79863fc6bf26
Author: Tony Layher <layhertony@gmail.com>
Date:   Sun Jan 2 12:46:38 2011 -0500

    forward port of 93bb95929a0c017498625a87654b4d114fe17b96 to allow mounting and sharing of mulitple volumes to MountService.

    Change-Id: I9fa3994e6e7b85360b451f57c1cdd4df921bc035

(the second part of the above patch was not ported)

commit 678fadf517126c8468ef2d8dcaea9c9fce96035b
Author: Josh Stone <cuviper@gmail.com>
Date:   Sun Nov 7 13:38:58 2010 -0800

    MountService: Remount all volumes after USB disconnect

    If USB was removed while UMS was enabled, the MountService was only
    remounting the primary share.  Any other shares, like the HTC Inc's
    emmc, were left in limbo.  This patch now iterates over *all* shared
    volumes to remount after disconnect.

    Change-Id: Ie6fd49ad80ba6fa0e4e194a386549cac786b4bbe
    Signed-off-by: Josh Stone <cuviper@gmail.com>

commit b1da9ed003edcd10ccda56fdf087e8f1b0f77b2a
Author: Josh Stone <cuviper@gmail.com>
Date:   Sat Jan 22 12:03:53 2011 -0800

    MountService: Only notify PackageManager for true ASEC changes

    MountService can be dealing with multiple mounts (emmc, sdcard), but
    only the EXTERNAL_STORAGE has any ASEC mounts on it.  Since the PMS
    updateExternalMediaStatus doesn't specify the path, we need to make sure
    it's only called for the real ASEC mount.  Otherwise we get into nasty
    race conditions when multiple mounts are coming and going, like during
    UMS transitions, and sdcard-installed apps tend to break.

    Change-Id: I85c6a601e84afd30b44270b0892686c2d864ce8d

commit c8c58f3d14fbb8c77ab1e90541e59fb74bef54cf
Author: Josh Stone <cuviper@gmail.com>
Date:   Sun Mar 6 12:34:50 2011 -0800

    MountService: Unmount secondary volumes more carefully

    Use the same message handler for unmounting both the ASEC external-
    storage path and any secondary paths like emmc.  This seems to help with
    additional race conditions encountered on Inc.

    Change-Id: Icca71756fa6721bd85da1f35b8b8c7fc7caa1eb1

commit 47495ab860ed97499e0c4268bf40b1f9c429bf99
Author: atinm <atinm.dev@gmail.com>
Date:   Sun Apr 10 14:50:41 2011 -0400

    Allow multiple shareable SD Cards by using getShareableVolumes()
    to get all the volumes that are shareable and allowing
    sharing/unsharing for all of them rather than just the hardcoded
    getExternalStorage calls.

    Unmount immediately if PM is not updating and not an ASEC
    mount. Change from Josh Stone.
    Change-Id: Iaf1a7a4484deac373e1c1d7bf16d5f22ca49fd64

    Only allow package manager for sdcard (packages aren't on
    external card).

    Change-Id: I0d148ea52dc1285905a9dd061d1ceedcfb761b52

    Take out extra logging.

    Change-Id: I6beb007700ef4be04c3eb273bbf2069c87b30011

Change-Id: I5ea83afeda6cdaf63dd15857b3827bb00afbd6d2
input: Fix workaround for broken hardware keyboard support

Using a wrong reference to mHardKeyboardAvailable caused device config
to never report physical keyboards.

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

Change-Id: I77cd3fabaed76c6cdd1ba051d628254c2f79974c
PackageManager: fix app lib migration for device with /datadata

For devices using /datadata, dataPathString will point
to /datadata while nativeLibraryDir will point to /data/data.
Thus, compare to /data/data directly to avoid problems.

Change-Id: I11149cf9cc5a573cc85513e12d3569b514f5ffb5
Add Dock USB Audio Support for Samsung Car / Desk Docks 1 of 2.

Ported from CM10, original patch: http://review.cyanogenmod.com/20586

Also includes patches:
DockAudio: Always route audio back to normal on undock.
http://review.cyanogenmod.org/24830

Bugfix: Dock events can have state greater than 1
http://review.cyanogenmod.org/24995

------------------------------------------------------

Samsung docks have a non-sensing USB adio port.
Samsung get around this by having a separate Setting to route the Audio
The Changes made will only add the extra Observer if the Kernel supports the endpoint

  /sys/class/switch/dock/state

A new BroadcastReciever (SettingsChangedReceiver) is used to watch out for users changing the
Preference

The choice is made in the GalaxyS2Settings.apk (see 2 of 2)

  device/samsung/i9100/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java

After OnBootComplete and when the checkbox is changed, an Intent is triggered to this class.

When a Dock Event is caught if it is one the Samsung endpoint "dock" then if the users preference is
checked,
then the event is allowed to go on and route the audio.  If it is not checked then it is ignored.

Change-Id: I8e8f5001d5c651b07bb6af496bbf806732be21fa
Add support for HW Rotation Lock

Forward ported from jellybean

Change-Id: I75fb9fa33541eb6acedd62a67e74977b36768390

Conflicts:
	core/res/res/values/strings.xml
	core/res/res/values/symbols.xml
Legacy touchscreen: Fix B key issue

Patchset 2: Clean code

Change-Id: I4c0bcb7f1cea0744ab983c87167af0bb9a472859
Process the BTN_MOUSE event

This is required in order to make the trackball on devices that has it to
work properly, like it does before ICS. In addition to this patch, you just
need an .idc file that matches the device name for your the trackball. You can
find it by either looking in a kernel log or a logcat.

For example, a device with a Crucial optical navigation pad, will be called
curcial-oj.idc

The .idc file should contain the following:

cursor.mode = navigation
cursor.orientationAware = 1

Place the file in /system/usr/idc folder.

Enable in BoardConfig.mk with BOARD_USE_LEGACY_TRACKPAD := true

Change-Id: I8684b94871a8bf9070dcda3538a239b111da7f5b
simplify and improve BOARD_USE_LEGACY_TOUCHSCREEN

in addition to converting ABS_MT_TOUCH_MAJOR to ABS_MT_PRESSURE, it also converts ABS_MT_WIDTH_MAJOR to ABS_MT_TOUCH_MAJOR.

also add 2 workarounds for some touchscreen driver which
 1. has BTN_TOUCH feature but it doesn't send BTN_TOUCH event
 2. sends multi-touch event for not-in-use pointer

Change-Id: I0c1c6f9a27c2dbc5e3beddda1a7f297e76c40841
reference: http://source.android.com/tech/input/touch-devices.html