43613 Commits

Author SHA1 Message Date
Raph Levien
3954fd9a05 Revert "Take the input device into account for meta state"
This reverts commit 8a1597b39632956cdbcb6b76874ccca786047d4c. That
commit broke some of the handling of meta state, which in turn caused
CTS test failures, notably bug 10210151 (CTS:
android.text.method.cts.BaseKeyListenerTest#testBackspace_withSendKeys
is failing on KLP).

So this revert fixes those test failures, but leaves bug 8303489
(Pressing shift on the hardware keyboard messes with unrelated
keypresses, including virtual ones) still present. We'll plan to
address that in a future release.

Change-Id: Iea42c643b6d08f33cbd2ed1747e8de3b5f8116a6
2013-09-18 11:03:02 -07:00
Amith Yamasani
840b3bd611 Merge "Fix provider leak in PFD" into klp-dev 2013-09-18 18:01:21 +00:00
Martijn Coenen
807fd04435 Merge "Validate AID format and length." into klp-dev 2013-09-18 17:56:03 +00:00
Chet Haase
d73d34c873 Merge "Use transition-only alpha property for fading transitions" into klp-dev 2013-09-18 17:51:34 +00:00
Leon Scroggins III
3490228efb Merge "Use a native buffer for decoding images." into klp-dev 2013-09-18 17:50:56 +00:00
Chet Haase
4fa809fe74 Merge "Fix leak fix in ViewTreeObserver" into klp-dev 2013-09-18 17:48:38 +00:00
Amith Yamasani
487c11a310 Fix provider leak in PFD
Code path to release content provider associated with the PFD was
inadvertently bypassed by a previous change. Reinstate that code
when closing the PFD.

Bug: 10767447
Change-Id: I23306cfb3c28c99e587892b17ca85efd3f7a8a07
2013-09-18 09:30:43 -07:00
Leon Scroggins III
7315f1baee Use a native buffer for decoding images.
Fixes BUG:10725383

Depends on https://googleplex-android-review.git.corp.google.com/#/c/357300/
in external/skia.

In the previous fix for BUG:8432093 and BUG:6493544
(https://googleplex-android-review.googlesource.com/#/c/346191/),
instead of calling mark on the provided input stream, we
copied the entire stream in native code (except in one case;
more details below), allowing rewind no matter how much of
the stream had been read. This was because two decoders
may rewind after reading an arbitrary amount of the stream:
SkImageDecoder_wbmp and SkImageDecoder_libjpeg.

It turns out that the jpeg decoder does not need this rewind
after arbitrary length (it is a failure recovery case, and
libjpeg has a default recovery we can use - the above referenced
CL in Skia uses the default).

Although the wbmp decoder could read any amount given a
stream with the "right" data, and then return false, such a
stream would not be a valid stream of another format, so it
is okay for this rewind to fail.

Further, the previous fix was inefficient in the common case
where the caller decodes just the bounds, resets, then decodes
the entire image (since we have copied the entire stream twice).
The copy also resulted in the crashes seen in BUG:10725383.

In this CL, buffer only the amount of input needed by
SkImageDecoder::Factory to determine the type of image decoder
needed. Do not mark the input stream provided by the caller,
so their mark (if any) can remain in tact. The new Skia class
SkFrontBufferedStream allows buffering just the beginning
of the stream.

core/jni/android/graphics/BitmapFactory.cpp:
Instead of calling GetRewindableStream (which has been removed),
call CreateJavaInputStreamAdaptor. Then wrap it in an
SkFrontBufferedStream, with a large enough buffer to determine
which type of image is used.

core/jni/android/graphics/CreateJavaOutputStreamAdaptor.h:
core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp:
Remove mark, markSupported, and rewind. CreateJavaInputStreamAdaptor
now turns an SkStream which is not rewindable. If the caller
needs rewind that needs to be handled differently (for example,
by using SkFrontBufferedStream, as is done in BitmapFactory and
Movie.
Remove RewindableJavaStream and GetRewindableStream.
Remove code specific to ByteArrayInputStream, which makes slow
JNI calls. Instead, depend on the caller to buffer the input
in the general case. There is no reason to special case this
stream (especially since we already have decodeByteArray).
Remove CheckForAssetStream, which is now always special cased
in Java.

core/jni/android/graphics/Movie.cpp:
Call CreateJavaInputStreamAdaptor and use an SkFrontBufferedStream.
Add a native function for decoding an Asset, and remove old
call to CheckForAssetStream.

graphics/java/android/graphics/BitmapFactory.java:
Write a helper function for decoding a stream to consolidate
common code.
Buffer enough of the input so that SkImageDecoder::Factory
can rewind after having read enough to determine the type.
Unlike the old code, do NOT mark the caller's stream. This is
handled in native code. The caller's mark (if any) is left alone.

graphics/java/android/graphics/Movie.java:
Check for an Asset stream before passing to native, and
call a native function for handling the asset directly.

BUG:6493544
BUG:8432093
BUG:10725383

Change-Id: Ide74d3606ff4bb2a8c6cdbf11bae3f96696f331a
2013-09-18 12:01:20 -04:00
Chet Haase
c46181a963 Use transition-only alpha property for fading transitions
The original bug is fixed already, but showed up some problems in
the underlying fade-transition implementation. This fix addresses
those and other issues. The biggest part of the change should help
transition robustness in general, as it removes the dependency on the
public 'alpha' property of views and uses, instead, a new hidden property
on views called 'transitionAlpha'. This is a value which is normally
opaque (1), but which can be used by transitions (only) to animate the
translucency of views without disturbing the actual 'alpha' value which
might be manipulated outside of transitions. This should make transitions
much more robust in general.

In implementing and testing this overall fix, I noticed a couple of things
about transitions that were simply wrong (such as starting fades from the
wrong start value, and incorrectly avoiding transitions on some views
that didn't happen to have ids), and those are fixed in this CL as well.

Issue #10726905 ActionBar weirdness in People app
Issue #10727937 Menu items in gallery appear in faded color after selecting an image/album by long press

Change-Id: If1618446db10c1bfcff4761449241de4f559afc1
2013-09-18 08:55:47 -07:00
Chet Haase
fc343967c8 Fix leak fix in ViewTreeObserver
The leak fix of the CopyOnWriteArray in ViewTreeObserver was
too aggressive, always clearing the shadow copy when it should only
have cleared it when needed. The way it works now, we will always
clear the listeners for ViewTreeObserver after the listeners
are processed.

Issue #10815924 ViewTreeObserver leak fix too aggressive

Change-Id: Iff0095d73beb38e52b0a5ae6b6378afec4458fd3
2013-09-18 08:44:33 -07:00
Martijn Coenen
fca3578773 Validate AID format and length.
Bug: 10817001
Change-Id: I7cb0d4f718c467d2fccb30068f383f8e71a4a39b
2013-09-18 17:26:18 +02:00
Alan Viverette
c255a7113a Merge "Ensure WeeksAdapter calls notifyDataSetChanged when needed" into klp-dev 2013-09-18 06:03:34 +00:00
Jonathan Dixon
5545d083d3 Update APIs for the Chromium WebView
Bug: 10361803
Bug: 8565831

Several obsolete APIs now deprecated.
TEXT_AUTOSIZING can now be unhidden.

Change-Id: Ib0afa4bb010f35816d3b9dd3695e8997f0ff0793
2013-09-17 20:47:10 -07:00
Jean-Michel Trivi
7ddd226e7c RemoteController class to expose IRemoteControlDisplay features
Wrap all the features of IRemoteControlDisplay.aidl in a
 new class, RemoteController, that implements the
 IRemoteControlDisplay interface.

The API functions to expose in the SDK are tagged with
 "CANDIDATE FOR API"

Bug 8209392

Change-Id: I597bcd503ac93e73889c9ae8b47b16c4fcb363bc
2013-09-18 01:47:25 +00:00
Zhijun He
9b6459841e Merge "Camera2: Add docs for availableProcessedSizes" into klp-dev 2013-09-18 01:01:32 +00:00
Dianne Hackborn
222920c460 Merge "Maybe fix issue #10797796: IllegalStateException in ProcessState..." into klp-dev 2013-09-18 00:34:02 +00:00
Dianne Hackborn
53459a7020 Maybe fix issue #10797796: IllegalStateException in ProcessState...
...caused runtime restart

There were some situations where the package list could be set
with process stats when it shouldn't.  Not sure if this is causing
the problem, since there is no repro.

Also some improvements to debug output -- new commands to clear
all stats, print full details of stats, and print a one-day
summary (which should match what the UI shows).

Change-Id: I9581db4059d7bb094f79f2fe06c1ccff3e1a4e74
2013-09-17 17:30:34 -07:00
petergng@google.com
24873be6ee Merge "Make touch states neutralized by replacing default pressed states for most fw widgets" into klp-dev 2013-09-18 00:26:35 +00:00
Alan Viverette
84c5ade823 Merge "Fix vertical scroll computation in NumberPicker" into klp-dev 2013-09-18 00:21:38 +00:00
Mindy Pereira
09804e41da Merge "Add isQuickScaleEnabled to ScaleGestureDetector" into klp-dev 2013-09-17 23:57:54 +00:00
Jeff Sharkey
e48569a870 Merge "Guard against null Context in attachInfo()." into klp-dev 2013-09-17 22:38:18 +00:00
Jeff Sharkey
10cb312ecd Guard against null Context in attachInfo().
Some CTS tests were running into this.

Bug: 10805216
Change-Id: I425d2a0064612af70a64f457e159498cb6257a28
2013-09-17 15:18:43 -07:00
David Braun
345d491b77 Merge "Implement new method for handling SMS/MMS on the platform" into klp-dev 2013-09-17 22:14:54 +00:00
Alan Viverette
22c1c2cd10 Ensure WeeksAdapter calls notifyDataSetChanged when needed
Also cleans up references to Context.

BUG: 10241917
Change-Id: Ic0b3d650cd85d656002cbb11b2bc73180ffe1bec
2013-09-17 14:39:07 -07:00
Adam Powell
70aafea91e Merge "Action bar transitions - handle expanding/collapsing action views" into klp-dev 2013-09-17 20:47:08 +00:00
Svetoslav Ganov
22d2575c3e Merge "Adding more standard media sizes." into klp-dev 2013-09-17 20:46:22 +00:00
Santos Cordon
b00e5cc610 Merge "Add permissions for the InCallUI Split." into klp-dev 2013-09-17 20:43:04 +00:00
Zhijun He
4e1921fa3d Camera2: Add docs for availableProcessedSizes
Bug: 10745982
Change-Id: Ia240fa6c0dc0485e2b8dcd04c5a87fa515b0d7b0
2013-09-17 12:46:29 -07:00
petergng@google.com
10722debf7 Make touch states neutralized by replacing default pressed states for most fw widgets
Change-Id: Iebf9623cccbb09d1c31b6e4f32af6b587391bc19
2013-09-17 11:22:05 -07:00
Mindy Pereira
9f1221f87e Add isQuickScaleEnabled to ScaleGestureDetector
Change-Id: I23dabb8bec69573ca833e06a4fd36435c75d7d04
2013-09-17 10:50:06 -07:00
Adam Powell
c46d33393f Action bar transitions - handle expanding/collapsing action views
Make sure we beginDelayedTransition when we expand and collapse action
views, specifically before any callbacks go out that might alter the
hierarchy.

Change-Id: Iffc286cccd9be83ad03aeede605870ac12cc6bab
2013-09-17 10:08:41 -07:00
Svetoslav Ganov
fa77ece25a Adding more standard media sizes.
Added more North America media sizes as well as Chinese and Japanese.

bug:10495384

Change-Id: I74869c13d1412780b0053ef665845d65e972e526
2013-09-17 09:54:58 -07:00
Amith Yamasani
33caca5cd5 Merge "Add a feature to specify if device admins are supported on the device" into klp-dev 2013-09-17 15:56:14 +00:00
Baligh Uddin
5a9948e1b9 Merge "Import translations. DO NOT MERGE" into klp-dev 2013-09-17 04:04:23 +00:00
Svetoslav
be0d9317e2 Merge "App UI freezes when printing. API clean up." into klp-dev 2013-09-17 02:28:34 +00:00
Dianne Hackborn
8a7a93e20d Merge "Work on issue #10771346: runtime restart" into klp-dev 2013-09-17 01:43:09 +00:00
Christopher Tate
60fcce6cb1 Merge "Introduce maxSdkVersion for <uses-permission>" into klp-dev 2013-09-17 01:01:47 +00:00
Svetoslav
2fbd2a7f07 App UI freezes when printing. API clean up.
1. The UI of a printing app was freezing a little when calling the print
   method since the print manager service was waiting for it to bind to the
   print spooler which generated the print job id (and the initial print
   job info really). Now the print manager service is responsible for job
   id generation and does not not wait for the print spooler to spin. Hence,
   the app UI is not blocked at all. Note that the print manager initiates
   the binding to the spooler and as soon as it completes the spooler shows
   the print UI which is hosted in its process. It is not possible to show
   the print UI before the system is bound to the spooler since during this
   binding the system passes a callback to the spooler so the latter can
   talk to the system.

2. Changed the print job id to be an opaque class allowing us to vary the
   way we generate print job ids in the future.

3. The queued print job state was hidden but the print job returned by the
   print method of the print manager is in that state. Now now hidden.

4. We were incorrecly removing print job infos if they are completed or
   cancelled. Doing that is problematic since the print job returned by
   the print method allows the app to query for the job info after the
   job has been say completed. Hence, an app can initiate printing and
   get a print job whose state is "created" and hold onto it until after
   the job is completed, now if the app asks for the print job info it
   will get an info in "created" state even though the job is "completed"
   since the spooler was not retaining the completed jobs. Now the spooler
   removes the PDF files for the completed and cancelled print jobs but
   keeps around the infos (also persisting them to disc) so it can answer
   questions about them. On first boot or switch to a user we purge the
   persisted print jobs in completed/cancelled state since they
   are obsolete - no app can have a handle to them.

5. Removed the print method that takes a file since we have a public
   PrintDocumentAdapter implementation for printing files. Once can
   instantiate a PrintFileDocumentAdapter and pass it to the print
   method. This class also allows overriding of the finish method to
   know when the data is spooled and deleted the file if desired, etc.

6. Replaced the wrong code to slice a large list of parcelables to
   use ParceledListSlice class.

bug:10748093

Change-Id: I1ebeeb47576e88fce550851cdd3e401fcede6e2b
2013-09-16 17:55:14 -07:00
Dianne Hackborn
50ef0b62f0 Work on issue #10771346: runtime restart
Haven't found the underlying cause, but this will give us more
information when we get into the bad state.

Change-Id: I9aebd3a025a7c0d931f43098461b64ee3c220746
2013-09-16 17:40:27 -07:00
Amith Yamasani
44a01b742c Add a feature to specify if device admins are supported on the device
Bug: 9520957

DevicePolicyManagerService will play dumb if the feature is not installed.

Continue to keep track of failed password attempts for keyguard's use.

Change-Id: I28d258dc09a8b4976b188da6f453d8daabcc4bdd
2013-09-16 17:24:06 -07:00
Christopher Tate
fb0676a902 Introduce maxSdkVersion for <uses-permission>
This way an application can automatically sunset its permission requests
when running on later versions of the OS where those permissions are no
longer relevant, but may be alarming to the user.  A canonical example
is WRITE_EXTERNAL_STORAGE, which as of KLP becomes unnecessary for an app
to use the external storage volume solely for its own large-data needs,
without the need for actual file-system sharing among multiple apps.

Bug 9761041

Change-Id: I60130af3a108fe4a750c356038a1c8cb897e9c8b
2013-09-16 17:03:02 -07:00
John Spurlock
c8d19b894e Merge "Update transient navigation confirmation wording & behavior" into klp-dev 2013-09-16 23:03:25 +00:00
Igor Murashkin
1e4e38252f Merge "camera2: Add key enumeration functionality to CameraMetadata" into klp-dev 2013-09-16 22:47:07 +00:00
Jim Miller
de1af08dd3 Fix keyguard/Keystore storage issue
Keystore stored keys broke when keyguard was moved out of the system process
due to Keystore enforcing the calling app to be in the system process.

The fix moves the critical code into LockSettingsService, which continues
to live in the system process.

Fixes bug 10201270

Change-Id: I16e2de018e85b01265634dcfbefd7f06740dafa8
2013-09-16 15:34:26 -07:00
Igor Murashkin
901be0ae33 Merge "camera2: Update Face class." into klp-dev 2013-09-16 22:32:11 +00:00
Dianne Hackborn
0a6a80f43d Fix build.
Change-Id: I2b2168ff3b2826a60353fd137a2fa255b1ace4bb
2013-09-16 15:20:27 -07:00
Dianne Hackborn
61158244b4 Merge "Implement issue #10691359: Kill long-running processes" into klp-dev 2013-09-16 21:33:04 +00:00
John Spurlock
d67ec25a9c Update transient navigation confirmation wording & behavior
1. Decrease transient navigation confirmation annoyance.

  - Only use the power-key as a signal if we detect a screen-off
    screen-on within a short threshold value.

 - Auto-confirm if user performs the indicated gesture.

 - Remember confirmation across reboots.

2. Update wording to new final wording.  Remove now obsolete
short + long versions.  Decrease message font temporarily
until the new platform toast redesign is finalized.

3. Remove pre-ship ImmersiveModeTesting debug helper.

Bug:10602929
Change-Id: I0bff826391058c7b282eeb61817b93b79de84893
2013-09-16 17:12:17 -04:00
Xia Wang
326f4505e0 Merge "Update the Connectivity Manager test suit to use InstrumentationTestCase." into klp-dev 2013-09-16 21:11:31 +00:00
Xia Wang
19306af73a Update the Connectivity Manager test suit to use InstrumentationTestCase.
- Remove ConnectivityManagerTestActivity as the test activity could be destroyed
  after a system config change, which cause test failure in the wifi stress test.
- Update all tests to use InstrumentationTestCase, which instruments the test package.

Bug : 10426067

Change-Id: Ibf6f1f7cffd7a7eabc4cc63c7e033b59274b724e
2013-09-16 14:07:25 -07:00