Fix broken arc drawing in Camera app.

Commit f311e1983741e71e1632044bc8b2356d8688d29c introduced a recursion
abortion threshold, but missed properly handling negative values. Fixit.

Change-Id: I6776371d1567eba0a84d2e1bf702b46879e30332
Automatic translation import

Change-Id: I2a439bab987da340f408e931ae14ead7e4d7dd0e
Revert "ContentProvider: Avoid duplicate initialization of AsyncTask"

This change leads to soft reboots.
To reproduce:
  *) Take a screenshot
  *) Share it a few times
  *) The chooser dialog should appear but instead the system dies

E/AndroidRuntime( 4993): *** FATAL EXCEPTION IN SYSTEM PROCESS: PowerManagerService
E/AndroidRuntime( 4993): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
E/AndroidRuntime( 4993): 	at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6027)
E/AndroidRuntime( 4993): 	at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:820)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.view.View.requestLayout(View.java:16455)
E/AndroidRuntime( 4993): 	at android.widget.AbsListView.requestLayout(AbsListView.java:1972)
E/AndroidRuntime( 4993): 	at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:814)
E/AndroidRuntime( 4993): 	at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:6482)
E/AndroidRuntime( 4993): 	at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
E/AndroidRuntime( 4993): 	at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
E/AndroidRuntime( 4993): 	at com.android.internal.app.ResolverActivity$LoadIconTask.onPostExecute(ResolverActivity.java:756)
E/AndroidRuntime( 4993): 	at com.android.internal.app.ResolverActivity$LoadIconTask.onPostExecute(ResolverActivity.java:744)
E/AndroidRuntime( 4993): 	at android.os.AsyncTask.finish(AsyncTask.java:632)
E/AndroidRuntime( 4993): 	at android.os.AsyncTask.access$600(AsyncTask.java:177)
E/AndroidRuntime( 4993): 	at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
E/AndroidRuntime( 4993): 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 4993): 	at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 4993): 	at android.os.HandlerThread.run(HandlerThread.java:61)

This reverts commit d22a5b851abf2a06097db51368edfda7616fc34c.

Change-Id: Ibe9c1192ec73eb46e3359da991201f6088e3a78e
hwui: Fix a sporadic crash seen during CTS runs

 * It's possible (due to race conditions) that a patch might be
   scheduled for removal twice. Just print a warning and continue
   instead of asserting and crashing.

Change-Id: I42865f6717816a743cc49ba15b839e6c3b57ed83
Fix attribute resolution in theme lookup

[Fixes Known Issues]
1. (CM) Chrome beta crashing w/ Hexo applied and menu button is pressed.
2. (AOSP) TextAppearance - fontFamily attr is incorrect (looked up in wrong package!) when
    a string value is defined in a style, and that style is set as the app's theme.

[Terminology]
1) Theme:    is the standard android definition of a theme.
             e.g in your manifest you may set android:theme="@style/foo"
2) CM-Theme: will be a Cyanogen theme. e.g. "Hexo"

3) Block: Also called index. Can be considered the cookie or ID to lookup a package in the resources.
          When a CM-Theme is applied, block 0 is framework, block 1 is the app, and block 2 is the
          CM-Theme.

[Background]
When a value for an attribute has not been found, the last resort is to look at a theme's base value.
This is done by using theme->getAttribute(...) which will return the value. The value is
unresolved if its a reference type. The block value will also be returned.

Since the value may be a reference and therefore unresolved, a call is then made to
ResTable::resolveReference(..) to do the final resolution. As part of its input, resolveReference
takes a block as a starting point.

In the case where resolveReference(...) is asked to resolve something that is not a reference,
for example, a string type, then it will simply return the same value and block. *Important* The block
value is then saved for the next call to get an attribute value. So if this block value is wrong
it will remain incorrect.

Therefore if resolveReference is passed the wrong starting block with a string value, then the wrong
block will be returned.

[Example]
1. 0x0101009b (android:attr/textColorLink) is first attribute to be looked up.
2. textColorLink has a value of 0x01020123 which maps to theme id 0x01020111. The block for theme
is "2" so block is set to 2. The value for this attribute is put into the array.
3. 0x010103ac (android:attr/fontFamily) is the next attribute to be looked up.
4. fontFamily is found in the theme as type string. The value is 0x7b9 (1977) and newblock variable
   is set to 1 since this value is found in the app's string pool. The block variable still == 2.
5. resolveReference() is called with block=2. The function does nothing and returns block=2.
   The fontFamily thus is stored wtih value=1977 and a block value of "2" instead of "0".

Change-Id: I2b979911b1b8ffb79c4cf310ae60682c84c11fcb
Only show status bar blocker view if nav bar is translucent.

It's the background drawable of the translucent nav bar that makes the
blocker view necessary (as the background creates a visual 'gap' between
status bar and visual start of the nav bar), so if the nav bar isn't
translucent, there's no need for the view.

Change-Id: I684c8d24abe3d4393ae7db88fe5023aa65836164
Keyguard: fix chopped keyguard on hdpi MSim devices

Both the CarrierText and MSimCarrierText were in the View, taking
additional space. Remove CarrierText from the view in case of MSim.

Change-Id: I803695044d06470ef9af59863ba92444e41488f5
Improve strings

Change-Id: Ia210ee0fb04214325d26abaefed188d956e96c91
Support for SEEK on Android

Following apis have been introduced to support
SEEK (Secure Element Evaluation Kit) on Android:
1. transmitIccLogicalChannel
2. transmitIccBasicChannel
3. openIccLogicalChannel
4. closeIccLogicalChannel
5. getLastError
6. transmitIccSimIO
7. getATR

Conflicts:
	telephony/java/com/android/internal/telephony/ITelephony.aidl

Change-Id: Idca9b47daa646902b74e37e7841d9d1506610887
MSim: Add Multi Sim support for SEEK

MSim support for the following apis has been added:
1. transmitIccLogicalChannel
2. transmitIccBasicChannel
3. openIccLogicalChannel
4. closeIccLogicalChannel
5. getLastError
6. transmitIccSimIO
7. getATR

Change-Id: I14fd1ccc08a9c89d655c7eb9f92a194c82138d3b
core/Keyguard: Move CAF strings

Change-Id: Ia341e69e260f1cdd36ca0506e4285278976136fc
InputDevices: Move AOSP strings

Change-Id: Ia1c1fcf54a0024f1cb3738ddeb353fa180f14e8c
Export missing internal resource as symbol

Change-Id: Ibfb472c25cf20d1683c1c05d18c9815135b52958
Themes: Only process themes that are applied during boot

Currently, the PackageManagerService will process all themes and
ensure their resources are compiled and available to the system.
This is highly inefficient and can bog the system down when booting.

This patch will only process the themes that are currently applied
durring boot and lets the ThemeService take care of queuing up the
others for processing.   This reduces boot time considerably,
especially when the user has many themes installed.

Change-Id: I52168a1751ad3bfc458048dd1558ad71cc16317a
Fix for "volume buttons change two volume steps per click" bug

This bug happens on all devices since CM9 or CM10 times.

To reproduce:
1) disable Settings/Buttons/Playback control
2) start music playback
3) turn off display
4) click on the volume buttons

When "Playback control" is enabled, the volume changes on the button up
event of short clicks only. When it is disabled, it changes on both
button down and up events. This fix cleans up the code and makes the
volume change only on button down when "Playback control" is disabled.

JIRA: CYAN-3202
Change-Id: If97218e35a8204ef602155f22b7eaaa5e13fb93c
Show devices connected to the WiFi hotspot(1/2)

Change-Id: I8378e0ae07332f62b92a1681951f1236f6ef5ff9
Add Screen Off option for buttons double-tap/long press (1 of 2)

This is being done primarily to replicate functionality on find7 Color OS.
Would it be better/possible to have this change only effect the find7?

Change-Id: I7e0c21b174b9cdd020c8d27c91c4c72201e228ff
SystemUI: Improve AOSP JA translation

Change-Id: Id2b979eae5c0c2f169f842ccdd2c5cf11a930a48
SystemUI: Remove unused strings

Change-Id: Ie8bf95abfeb4c13b30e9949aa9676ab39920bf29
core: Fix AOSP EL translation

* 'Minutes' was the same in singular & plural forms, fix that

Change-Id: I8444d879fa38fdbb9a89b96ff983c135cd0f3499