Commit Graph

27900 Commits

Author SHA1 Message Date
Jim Miller
230a709285 Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1 2012-01-18 16:44:52 -08:00
Jeff Brown
8fd86f38d2 Implement a max time bound for rotation. (DO NOT MERGE)
Also relaxed the settle time constraints a little bit.
With this change, a rotation proposal will always be
advertised within 500ms even if the device is still shaking
around.

Bug: 5496491
Change-Id: I0bf562f4c19c0be45c016254f2f881d265f8e266
2012-01-18 16:10:13 -08:00
Teng-Hui Zhu
96fae5e088 Support full screen back to back playing using javascript
bug:5766427

Change-Id: I0117e50a3e547ac8c33cf966bef18e6d75f98660
2012-01-18 15:53:01 -08:00
Christopher Tate
6de74ff2a4 Fix edge cases leading to backup hanging forever
Plug a couple of apparent code paths (one not obviously reachable, but
fixed here on general principles) that could lead to a backup pass
getting confused partway through and simply never properly completing.
In this state it would leave its wakelock held forever until next
reboot.  Bug 5828859.

Those fixes are a total of two lines of code. The rest of the patch
adds a textual journal of the most recently completed (or ongoing!)
backup pass's progress, with an eye to being able to isolate any such
issues that may crop up in the future.

Change-Id: If8a5e8aba11db5a1e618d8b9c9ba3038dd5377a1
2012-01-18 15:44:47 -08:00
George Mount
3d09531f89 Add cut and paste to ContentEditable.
Bug 5806267
 Use visual selection to determine the webkit selection.
 The webkit selection can be used to cut text from an editable
 area. It can also be used to do better complex character text
 copy.

 Webkit change: I194c6d9e2add67151b97092a1a54f5c081296000

Change-Id: I56543d17670a8c98484314c89c7fa6a94cb809e4
2012-01-18 14:59:21 -08:00
Jeff Brown
2a16b13744 Merge "Improve heuristics for orientation detection." 2012-01-18 14:43:16 -08:00
Gilles Debunne
c171402318 Touch slop added to double tap detection
Similar to what is done in GestureDetector

Removed all gesture constants. Only one one them is used on MOVE
(added an early exit test), the 2 others on UP or DOWN where
performance is not such an issue.

Change-Id: Icd58ead5078f94f86786f934ddf81aa5ec9bf549
2012-01-18 14:40:53 -08:00
Michael Kolb
d9fdd9fd78 Merge "Prevent IME from popping up on startup" 2012-01-18 14:00:52 -08:00
Steve Pomeroy
d7a1aada2d Adds documentation for ContentResolver notifyChange()
Adds clarifying documentation to ContentResolver#notifyChange() to
explain interaction with the sync framework.

Change-Id: Ia1a1ed173e230bc11aa778268749323536ca434f
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
2012-01-18 16:15:59 -05:00
Martijn Coenen
1ad65e7054 Merge "Remove LlcpPacket from public namespace." 2012-01-18 13:09:55 -08:00
Michael Kolb
17146c7cc0 Prevent IME from popping up on startup
Bug: 5869028

Change-Id: Ie5c7004def16eeac4147d19fb00fc9631a17579e
2012-01-18 11:20:01 -08:00
John Reck
955fdda057 Add tapHighlightColor support
Change-Id: I419eb3d8f1050efd05bb989a6b353ad45ee77acf
2012-01-18 09:36:43 -08:00
Jean Chalard
96c804af0b Add methods to support shortcuts in user dict.
Adds the new interface to the user dictionary, which includes
a clean way of inserting words in any locale and support for
shortcuts.

Change Ib318c047 implements the provider part of this.

Bug: 4646172
Change-Id: Id3ca792f2555fac46728f9d404ab0199971f6503
2012-01-18 18:54:34 +09:00
Pin Ting
1c423b81de Fixes some javadoc.
Change-Id: I4ad1f1452e2c8e004865853247e0b34b78bb1616
2012-01-18 11:21:06 +08:00
Jim Miller
93c518e4f8 Fix 5863053: Add method to lock screen immediately.
This fixes a bug where the device fails to lock when DevicePolicyManagerService
requests the device to be locked and the screen was off because the user hit
the power button.

The change allows DPMS to directly invoke screen lock, bypasssing the screen state.

Change-Id: Iecdda6fc61e9c519119de495be23c69c3b983921
2012-01-17 18:11:05 -08:00
Romain Guy
fb9ffe0260 Merge "First pass at implementing Canvas.drawPosText() in GL" 2012-01-17 17:40:24 -08:00
Romain Guy
eb9a5367e8 First pass at implementing Canvas.drawPosText() in GL
Change-Id: Ia3ac347e95d57eb86c63045156c8dbc0572b03cb
2012-01-17 17:39:26 -08:00
Svetoslav Ganov
0764dee89c Merge "AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes." 2012-01-17 17:25:56 -08:00
Jeff Brown
5aa73ae58f Improve heuristics for orientation detection.
1. Except as otherwise indicated, orientation change happens once
   the predicted rotation has been stable for 40ms.  Noise is
   suppressed by a low-pass filter with a 200ms time constant which
   seems to be about as small as is practical given the quality
   of the sensor data.

2. If the magnitude exceeds a threshold (excessive noise or freefall),
   resets the predicted orientation.
   Doesn't happen very often even when shaking the device.
   This heuristic mainly protects the detector from spurious tilt due
   to inaccurate determination of the gravity vector.

3. If the device was previously in a flat posture (on a table for at
   least 1000ms), then it must move out of that posture for at least
   500ms before the next orientation change will happen.
   This heuristic suppresses most spurious rotations that happen while
   picking up the device.

4. If the device is tilted away from the user by 20 degrees within
   a span of 300ms, the device is said to be swinging and at least
   300ms must elapse after the device stops swinging before the
   next orientation change will happen.
   This heuristic suppresses some but not all spurious rotations that
   happen while putting down a device.  Unfortunately, this heuristic
   sometimes triggers a false positive when turning the device very
   rapidly due to accelerometer noise.  The 300ms pause is a compromise
   so that occasional mispredicted swings don't significantly delay
   the rotation.

Bug: 5796249
Change-Id: Id7b36c4c563e35b70d6a7ac36d04f3c3d6ea5811
2012-01-17 17:07:10 -08:00
Teng-Hui Zhu
48592a3d21 Merge "Support javascript to exit full screen video." 2012-01-17 15:35:04 -08:00
Adam Cohen
792840d48a Merge "Hinting RemoteViewsAdapter as to which views are visible" 2012-01-17 15:25:22 -08:00
Teng-Hui Zhu
d7678a1684 Support javascript to exit full screen video.
When javascript request exit full screen, WebViewCore need to handle the
message from webkit thread and hide the custom view.

Webkit part:
https://android-git.corp.google.com/g/#/c/158652/

Change-Id: I9edbb5a4059f330fb29df116ae076ec52f81a1af
2012-01-17 15:21:42 -08:00
Adam Cohen
b967392e01 Hinting RemoteViewsAdapter as to which views are visible
-> This prevents collection widgets from flashing loading
   views when they are updated with new content

Change-Id: I1241ff9a09edfd990ad03f76449d18b9359246b4
2012-01-17 15:21:34 -08:00
Michael Jurka
73d27c3d46 Merge "Check if View's alpha must be updated in setter" 2012-01-17 15:05:23 -08:00
Vladimir Baryshnikov
20761fcdcd Fix dividers for LinearLayout (TabWidget)
child.getTop()/child.getLeft - already contains offset for divider height/width,
so we need to subtract it, otherwise divider will be drawn behind the child.

Change-Id: Idd6e5aa4b20e84c64daaefdf393bc00fafb26c45
Signed-off-by: Vladimir Baryshnikov <vovkab@gmail.com>
2012-01-17 14:59:48 -08:00
Svetoslav Ganov
8a78fd4d95 AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes.
AccessibilityEvent and AccessibilityNodeInfo have a property className which is set to the source
Java class. This is problematic since leads to leaking private classes which would allow an
accessibility service to load classes from other packages. This is strongly undesirable since
not trusted code can be loaded, and hence executed, in the accessibility service. To address
that the class name is set to the most concrete framework class extended by the info/event
source.

bug:5878943

Change-Id: I7b3114ece8772ea2773f5151e21b8a6f2006882a
2012-01-17 14:51:45 -08:00
Michael Jurka
a7a7eedee5 Check if View's alpha must be updated in setter
Change-Id: I91094b43dbacbd637e04ce4074d8df6a27ddf6fb
2012-01-17 12:41:31 -08:00
Romain Guy
f56945e06a Merge "Improve GLES20Canvas clip support" 2012-01-17 11:30:22 -08:00
Romain Guy
7677d8f006 Improve GLES20Canvas clip support
Remove UnsupportedOperationException
Add primitive support for clipPath/clipRegion
Add support for quickReject(Path, EdgeType)

Change-Id: Ie7a80df7f380f488710bac31103772a9eab21612
2012-01-17 11:22:42 -08:00
Gilles Debunne
185b8256f5 Fixed doc typo and removed warning
Change-Id: I9c9e45837037a77df5852ff4ea3ad596952e4507
2012-01-17 11:12:27 -08:00
Gilles Debunne
c478c171e9 Unbalanced batch edit begin and end leave TextView unresponsive
This is a fix for http://code.google.com/p/android/issues/detail?id=17508

Adding some logs and a forced GC, I'm now reliably able to reproduce it. Here is the scenario.

1. The IME handles an event. It retrieves the current InputConnection (IC) using
   ic = getCurrentInputConnection() and calls ic.beginBatchEdit();
2. The call is propagated to the UI thread and TextView's mBatchEditNesting
   is correctly increased through beginBatchEdit()
3. A listener calls setText(), which imm.restartInput(this);
4. As a result, the InputMethodManager creates a new ControlledInputConnectionWrapper
   with a new InputConnection from the TextView
5. A GC happens at that point. The previous InputConnection is no longeri
   referenced by the InputMethodManager's mServedInputConnection.
   The weak reference in the previous ControlledInputConnectionWrapper is nulled.
6. The IME thread finishes its process and calls ic.endBatchEdit(); on its version
   of the original InputConnection.
7. The message is passed through the InputConnect, but when the weak reference in the
   original IInputConnectionWrapper is dereferenced, we get a null InputConnection in
   executeMessage().
8. As a result, the TextView's endBatchEdit() method is not called, leaving this TextView
   with a non zero mBatchEditNesting.
9. From now on, all edit actions on this TextView will be considered part of a nested edition
   and no invalidation is performed, which is the visible manifestation of this bug.

The core problem is that the begin/end batch edit contract is broken when:
1. These are initiated by the IME thread (as opposed to the UI thread)
2. The input connection is reset between these calls
3. A GC happens in the mean time and the WeakReference is lost (otherwise
   calling endBatchEdit on a no longer active InputConnection is fine

Solution to keep TextView's mBatchEditNesting balanced:

- The IMM should notify the IC when it is no longer used. We're using the
existing FINISH_INPUT_CONNECTION to do that.
- The InputConnection should keep track of its nesting contribution to the TextView.
When finished the IC makes sure its contribution is reset to 0.
Moreover, further asynchonous calls to begin/endBatchEdit that may arrive from the IME
should be ignored. This is achieved using a negative value as a flag.

Notes:

- finishComposingText may be too broad of a method to perform such a cleaning step
but is seems to only be called in cases where the IC will not be used anymore.
If that's too broad, we have to introduce a new method in the IC interface.

- This is has been implemented in EditableInputConnection and not in a more general
BaseInputConnection because this is where we have a notion of TextEdit, and the
nesting problem is here specific to TextView.
However, the same unbalanced begin/end problem will happen in these classes. They
should override finishComposingText as has been done here if that matters.

- We cannot re-use the TextView's mBatchEditNesting since it may take into account
batch edit from various sources and resetting it on InputConnection close could
then lead to an inconsistent negative count value.

Patch Set 2: added synchronized blocks around mBatchEditNesting

Change-Id: I1ec5518fdc16fb0551fbce9d13f5d92eb4bc78c0
2012-01-17 10:52:20 -08:00
Teng-Hui Zhu
01cc1d1e8c Merge "Document update for WebView user to support HTML5 video" 2012-01-17 09:06:02 -08:00
John Reck
c83a666fe6 Merge "Expand WebKitHitTest and do some preliminary caching" 2012-01-17 09:00:49 -08:00
Glenn Kasten
a7f6562065 Merge "Add android.os.Process.setThreadScheduler" 2012-01-17 07:20:47 -08:00
Dianne Hackborn
dda932005b am d4d68fe2: am cc7bd5ab: Merge "Update notification documentation to follow current guidelines." into ics-mr1
* commit 'd4d68fe20259e2d6aaae8bc4a38b360aa0b57081':
  Update notification documentation to follow current guidelines.
2012-01-13 18:25:31 -08:00
Dianne Hackborn
d4d68fe202 am cc7bd5ab: Merge "Update notification documentation to follow current guidelines." into ics-mr1
* commit 'cc7bd5ab550855c14c76701709b35d12a9677eb2':
  Update notification documentation to follow current guidelines.
2012-01-13 18:23:34 -08:00
Dianne Hackborn
4603d76bf5 am cc7bd5ab: Merge "Update notification documentation to follow current guidelines." into ics-mr1
* commit 'cc7bd5ab550855c14c76701709b35d12a9677eb2':
  Update notification documentation to follow current guidelines.
2012-01-13 18:23:27 -08:00
John Reck
06e09f6928 Expand WebKitHitTest and do some preliminary caching
Change-Id: Id9e9cc11f1482f434133e70b14970d7248a39008
2012-01-13 17:56:49 -08:00
Dianne Hackborn
cc7bd5ab55 Merge "Update notification documentation to follow current guidelines." into ics-mr1 2012-01-13 16:36:05 -08:00
Michael Kolb
ba82e0675e Merge "fix layer scrollbar updates" 2012-01-13 16:25:14 -08:00
Gilles Debunne
14568c3f76 Fixes around extract mode
Stop selection mode after Edit/Copy while in extracted mode.

The selection mode was started by a long press in the ExtractedEditText.
Selection Copy in the menu simply sends the id to the context menu.
SelectionMode is not stopped in the underlying text since it was not
started there. Stop it directly in the ExtractedEditText.

Cut and paste do stop the mode because the text is modified.

Change-Id: Id7dbfa99de404c4eb85ced9627c99af4895ac628
2012-01-13 16:23:35 -08:00
Michael Kolb
4695e20aa5 fix layer scrollbar updates
Bug: 5868791

tell webkit the layer has been scrolled

Change-Id: Ib12963340d950be992fbe5f9520c9a33c04404e8
2012-01-13 16:15:11 -08:00
Jeff Sharkey
438304d515 Merge "Introduce FileRotator." 2012-01-13 15:33:42 -08:00
Jeff Sharkey
a27a3e8ad7 Introduce FileRotator.
Utility that rotates files over time, similar to logrotate. There is
a single "active" file, which is periodically rotated into historical
files, and eventually deleted entirely. Files are stored under a
specific directory with a well-known prefix.

Bug: 5386531
Change-Id: I29f821a881247e50ce0f6f73b20bbd020db39e43
2012-01-13 15:27:28 -08:00
Gilles Debunne
893eace609 Merge "Sub display list in TextView" 2012-01-13 14:53:54 -08:00
Martijn Coenen
6b5862d3b4 Remove LlcpPacket from public namespace.
This is a left-over, unused by the public API's.

Change-Id: I3ccccd58a6c52caeb476a6972126eb034a0ff917
2012-01-13 13:31:22 -08:00
Dianne Hackborn
f88d1493aa am 10065177: am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '100651779fde99f7ae2a10719d688b51115f08e9':
  Fix issue #5823276: home repaints after full-screen app is exited
2012-01-13 13:01:48 -08:00
Dianne Hackborn
defda4de3d am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '2e282f35b009fe4c23daca35592dae2032641643':
  Fix issue #5823276: home repaints after full-screen app is exited
2012-01-13 12:58:45 -08:00
Dianne Hackborn
100651779f am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '2e282f35b009fe4c23daca35592dae2032641643':
  Fix issue #5823276: home repaints after full-screen app is exited
2012-01-13 12:58:45 -08:00
Dianne Hackborn
2e282f35b0 Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1 2012-01-13 12:56:40 -08:00