Frameworks: Add new configuration qualifier for UI change on the fly (1/3)

last night I got an idea after 5 weeks of breaking stuff and
doing to much complicated things. Together with mnazim we tried
today to realize this idea. So another absolut new unique SlimBean
feature is born.

The aim we wanted at the end was to give a simple and resource friendly
way to change the complete UI of a rom on the fly. So why not use
the great fallback mechanism of AOSP and change/add a new
qualifier into the AOSP core. To explain how it works.....if you want
to add a new UI just add in /res folder of any app or framework you want
folders with the qualifier "inverted". Eg. drawable-inverted-xhdpi
or values-inverted or layout-port-inverted or whatever you want. Put in
only the files you want to modify thats it.

All qualifier in AOSP are following strict rules. You can read here.
Do not forget the order of qualifier is important. The new "inverted"
qualifier we added to the UIMode qualifier. To get more information
about read here

http://developer.android.com/guide/topics/resources/providing-resources.html

So what this commit does:

- add new qualifier "inverted"
- support for API level 13 and higher
- change the custom UI on the fly
- control default UI Mode over config.xml
- working for all apps. They just need to include folders
  with the new qualifier name
- resource friendly....no resource wasting either programmticaly
  then source blow, because you just need to put in the files you
  want to change
- cause of the qualifier structure compatible with every phone,
  language or whatever qualifier you want to use on top
- 100% compatible to theme manager. If a theme misses drawables
  they are replaced with them from the current UIMode which is set.

What is the benefit why not use just a theme? We started half year
ago TRDS which was inverted gapps system base themed....means we
morphed directly the changes into the framework. This methoed was
on of the reasons why trds got so popular. Points for that are easy
first the system is themed, means each theme you activate over
theme engine works on top the themed system. So you have a base
style and can modify more if you want. The other reason is easy
a lot faster and resource friendly. Now this idea went to the
rom to provide two core system based themes and user
can do on top what they want or not without, like you have
to roms in one.

This commit just adds the support for this

cheers

mnazim and kufikugel

Change-Id: I1ef843a42d17246373eb17b4e1ec1aa9bc20d8d4

Conflicts:

	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

Conflicts:

	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	services/java/com/android/server/UiModeManagerService.java
Dark RootBox: More icons!
"[+>" more icon was never shown in PhoneStatusBar

"[+>" more icon was never show in status bar because
the member variable for this icon was not initialized
from resources. This fix enables "[+>" icon to appear
in status bar when the number of indications in status
bar becomes large.

Bug: 8368569
Change-Id: Ieb3412eed831052d69c0cf63c9b4230c38171e4a
Fix NPE when pasting non-text from Clipboard

When copying a link from a bookmark and then pasting it into
a textfield a NullPointerException will occur.
A ClipData.Item is not guaranteed to always contain a text string
and therefore getText() can be set to null.

Using method coerceToText() instead of getText() makes sure that
a text string is always returned.

Change-Id: I81343c0371835a3a7a52045dcd1760e69e59a967
Kill chromium's bread and butter, spannablestringbuilder runtimeexceptions WITH FIRE

Change-Id: I5096cc0ab5e8684c7857eb6976be1e7bc71716ac
Fix race condition in ActivityThread.completeRemoveProvider()

This should solve the problem when exceptions like below are thrown:
java.lang.IllegalStateException: unstableCount < 0: -1
android.os.Parcel.readException()
android.os.Parcel.readException()
android.app.ActivityManagerProxy.refContentProvider()
android.app.ActivityThread.releaseProvider()

Change-Id: I97ca9f7f0b57221bc3aa41727936292cc79b92c9
Dark RB: include static blue missed call
Power Widget

Conflicts:

	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
Profiles: add PROFILES_STATE_CHANGED_ACTION broadcast intent

Added a new broadcast intent to profiles manager (PROFILES_STATE_CHANGED_ACTION), for
notify an event when profiles are enabled or disabled.

Change-Id: If701b3be54157c23acdf74e1da658fbce335437e
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
ServiceState: add support for DCHSPAP

Change-Id: Ib0a328652c14580718400b00146b770481be5458
AudioService: Restore volumes after boot and when a headset is plugged

The correct volume levels for <device>_speaker and <device>_headset are not
restored after booting and when a headset device is plugged in or out.

This fixes a glitch where the first volume change event causes the volume to
be reset to the last stored value instead of increasing/decreasting it by
one step.

Change-Id: I6a483af34fd6d9dd706c6979202bf0cf26d80854
LockscreenPattern : missing public @hide

Change-Id: Ia2a22154352fc080db6e96666a4a0bef241c787b

Conflicts:

	core/java/android/provider/Settings.java
FW: Swap Stylus pointer with TW dot

Use the stock touchwiz pointer instead of the huge
aosp mouse icon.

Change-Id: I44fc142f13e12ece5572c2513af2d2f390e3c4c8
Signed-off-by: Stevespear426 <stephen.k.spear@gmail.com>