Commit Graph

8378 Commits

Author SHA1 Message Date
Robert Carr
288ce4fc42 SurfaceView: Force surface disconnection before reuse.
am: 387838be95

Change-Id: Ied6c33fac75612ed2cdeb45b24c521bbff979afa
2016-09-22 23:17:05 +00:00
Winson
b7a673ed95 Removing private system ui flags from status bar flags logic.
am: ab216609f1

Change-Id: Id7e0d308361acb7793c7b03e2ebe0114a956b380
2016-09-20 23:07:52 +00:00
Vadim Tryshev
140adada42 For pre-N apps, cascade LOCATION and DROP events.
am: 45bee6b24c

Change-Id: Ib9a0e17fcc1d76911ee89dda46d99de1449ff295
2016-09-20 22:10:43 +00:00
Vadim Tryshev
f0550a6bd1 For pre-N apps, keep entered all parents of an drag-entered child.
am: ef12811560

Change-Id: Ia086b1525d658d3374174e11a0a06551b8e4910a
2016-09-20 20:48:36 +00:00
Vadim Tryshev
32394cee01 Eliminating the black hole effect with location/drop events.
am: 1edc6daf1d

Change-Id: Ib32d77e7c28867753827a5d8100e628d6d8ee963
2016-09-20 06:11:12 +00:00
Winson
ab216609f1 Removing private system ui flags from status bar flags logic.
- Prevent third party apps from inadvertently changing internal SystemUI
  flags through a call to setSystemUiVisibility().  These flags are only
  set in the individual SystemUI components and can be updated in WMS
  directly.

Bug: 29875297
Change-Id: I5ea238c8fb16a0eccd6e993d95a912acb359cee6
2016-09-19 18:39:25 -07:00
Vadim Tryshev
45bee6b24c For pre-N apps, cascade LOCATION and DROP events.
To restore the pre-N behavior, if a view returns false from its
LOCATION or DROP event handler, the event goes to its parent.

Bug: 31559942
Change-Id: I322099ae1e8a5cbbcf8814f2cd274fbae53b6848
2016-09-19 13:55:46 -07:00
Vadim Tryshev
ef12811560 For pre-N apps, keep entered all parents of an drag-entered child.
The bug complains that parents of a view under the drag location
don’t get drag events.
This is first of a 2 CLs that will restore the old functionality
(modulus fixing bugs) for pre-N apps.

This CL restores pre-N "nested" model of the entered state for
pre-N apps. It also makes possible restoring "nested" model for
LOCATION and DROP (implemented in a follow-up CL)

The CL replaces (for pre-N) generation of ENTER/EXIT events that
happens at the moment of changing the drag focus with generation
folowing the recursive delivery of coordinate-bearing events.

Bug: 31559942
Change-Id: Iead6bde9c1f88819b30afc78c1f424f7c1b64d51
2016-09-19 11:14:19 -07:00
Eino-Ville Talvala
ca7f4217b8 Docs: Note that a Surface acts like a weak reference
am: c4faf0cb13

Change-Id: I8466ddcfc3fc99d62dfc842ef84cb0c0663db5e1
2016-09-17 00:35:31 +00:00
Eino-Ville Talvala
c4faf0cb13 Docs: Note that a Surface acts like a weak reference
This causes frequent programming errors, when developers assume
that holding onto a Surface will keep its associated SurfaceTexture,
ImageReader, etc, also alive.

Bug: 31551063
Test: m offline-sdk-docs, manual viewing of result
Change-Id: I5fb5bb3e3c80c7d5d735417b1697e0fe9a62fc46
2016-09-16 22:58:11 +00:00
Vadim Tryshev
1edc6daf1d Eliminating the “black hole” effect with location/drop events.
Currently, a container view that doesn’t accept events, but has a
child that accepts events, prevents its parent from receiving
LOCATION/DROP events while the drag is over the container (but not
the child). This is a bug.

With this fix, such a container will prevent the parent from
invoking a (second) LOCATION/DROP event only if the event was really
delivered to any of its descendants.

To know whether the event was delivered, I added
DragEvent.mEventHandlerWasCalled member.

EXITED/ENTERED events are now generated upon delivery of the event
that has coordinates in it.

Current view that has drag focus is now global to reflect the fact
that it’s one per process.

Bug: 31469490
Change-Id: I248e8d1de87b7734853136eb4719f7571cea91d5
2016-09-16 11:20:16 -07:00
Gopal Krishna Shukla
22b21403db Remove synchronization from getCurrentInputMethodSubtype()
am: d33c07550f

Change-Id: I83b3e185e66c383c714c66850d8fee34e13cd74a
2016-09-16 17:38:52 +00:00
Gopal Krishna Shukla
d33c07550f Remove synchronization from getCurrentInputMethodSubtype()
getCurrentInputMethodSubtype() acquires InputManagerService.mMethodMap
within its body. There seems to be no reason for holding
InputMethodManager.mH to call getCurrentInputMethodSubtype(). Holding mH
can cause potential deadlock b/w two threads acquiring mH and mMethodMap
in different orders.

Bug: 31247871
Bug: 31273203
Bug: b.android.com/218423
Change-Id: I20cf2c20f49b1b02c0f7a18257b49d4bcc081b5d
2016-09-15 23:20:05 -07:00
Vladislav Kaznacheev
8778333a04 Update JavaDoc for DragEvent.getLocalState am: 048f3bfaf0 am: fa05df640f
am: c9bab3001f

Change-Id: I81da9817c076b587372888b17bbda71118fb6138
2016-09-09 18:53:17 +00:00
Vladislav Kaznacheev
c9bab3001f Update JavaDoc for DragEvent.getLocalState am: 048f3bfaf0
am: fa05df640f

Change-Id: I535a5218bec2f5cf0ea9fa83aaa92ab70f05fcdd
2016-09-09 18:47:41 +00:00
Vladislav Kaznacheev
fa05df640f Update JavaDoc for DragEvent.getLocalState
am: 048f3bfaf0

Change-Id: I72bec54ac999ebce5779062ddc5effd1bb4d61ce
2016-09-09 18:42:34 +00:00
Vladislav Kaznacheev
048f3bfaf0 Update JavaDoc for DragEvent.getLocalState
Explicitly state that "local state" is local to the window
which has started the drag operation.

Bug: 31372686
Change-Id: Idbea7586c4e74097362067fa90390b97744181bb
2016-09-08 16:37:23 -07:00
Alan Viverette
55768028fd Change density for the correct user
am: df3a7cab8f

Change-Id: I4f4dfaa8f9035cdd4939d1d40e66ebac51811f73
2016-09-08 21:13:39 +00:00
TreeHugger Robot
c779cdc560 Merge "Change density for the correct user" into nyc-mr1-dev 2016-09-08 21:07:01 +00:00
Robert Carr
387838be95 SurfaceView: Force surface disconnection before reuse.
Prior to N, if a client received the surfaceDestroyed callback
from their SurfaceView they could trust that the surface would not be
reused. Now that is not true in multiple scenarios. If a client fails
to shut down its EGL context then, we could end up in a situation where,
the client will never disconnect. Then when we reuse the same
underlying IGraphicBufferProducer for surfaceCreated next
the app will crash with a double connect error. There is no valid
use of the surface inbetween surfaceDestroyed and surfaceCreated,
so we just force the disconnection after surfaceDestroyed.

Bug: 30236166
Change-Id: I2e3e4b3176492dc0c2d46a59e0b5a781bf9bc356
2016-09-08 13:54:29 -07:00
Mark Lu
303fc8f54d docs: fix grammar mistake in TextureView am: e8691d19cb am: c657eed270
am: c76ea3d727

Change-Id: I81b1b747ad06a78ca6a56fc1d281adf45aa0921b
2016-09-07 23:42:13 +00:00
Mark Lu
c76ea3d727 docs: fix grammar mistake in TextureView am: e8691d19cb
am: c657eed270

Change-Id: Ie27e53ef83f31dc528df7db8973e6484d1b53230
2016-09-07 23:35:43 +00:00
Mark Lu
c657eed270 docs: fix grammar mistake in TextureView
am: e8691d19cb

Change-Id: I857deef5cf08c9cdaf0d6e8e99449e688bec5ba5
2016-09-07 23:29:20 +00:00
Robert Carr
d0c9771e49 SurfaceView: Correct coordinate space in windowPositionLostRT.
am: 3387913237

Change-Id: I7f28aab013bd6fe213a90e293664cc59ee6d23cf
2016-09-07 19:25:20 +00:00
Robert Carr
3387913237 SurfaceView: Correct coordinate space in windowPositionLostRT.
mWinFrame as set when returning from relayout will be in screen
space coordinates. repositionChild however expects coordinates relative to the
parent position (like relayout).

Bug: 31112993
Change-Id: Id4fcd7fcb771908e8a7db981207d19c99fb51b98
2016-09-07 11:07:18 -07:00
Alan Viverette
df3a7cab8f Change density for the correct user
Bug: 30839993
Change-Id: I5368accddfc4a03b8025a257b4155fcdc6197f11
2016-09-06 17:13:41 -04:00
Phil Weaver
de13bcf08b Stop double notifying a11y about Toasts.
am: 532c7999c5

Change-Id: If8d025884b8a941386cd472403c1c93fee5a70af
2016-09-06 16:40:15 +00:00
Phil Weaver
85d18cce6d Merge "Stop double notifying a11y about Toasts." into nyc-mr1-dev 2016-09-06 16:33:42 +00:00
Svetoslav Ganov
dea62c6f58 Prevent apps to overlay other apps via toast windows
am: aa07653d2e

Change-Id: I309615a989eade43401b086da42ff6522d000b68
2016-09-02 23:36:59 +00:00
Svetoslav Ganov
aa07653d2e Prevent apps to overlay other apps via toast windows
It was possible for apps to put toast type windows
that overlay other apps which toast winodws aren't
removed after a timeout.

Now for apps targeting SDK greater than N MR1 to add a
toast window one needs to have a special token. The token
is added by the notificatoion manager service only for
the lifetime of the shown toast and is then removed
including all windows associated with this token. This
prevents apps to add arbitrary toast windows.

Since legacy apps may rely on the ability to directly
add toasts we mitigate by allowing these apps to still
add such windows for unlimited duration if this app is
the currently focused one, i.e. the user interacts with
it then it can overlay itself, otherwise we make sure
these toast windows are removed after a timeout like
a toast would be.

We don't allow more that one toast window per UID being
added at a time which prevents 1) legacy apps to put the
same toast after a timeout to go around our new policy
of hiding toasts after a while; 2) modern apps to reuse
the passed token to add more than one window; Note that
the notification manager shows toasts one at a time.

bug:30150688

Change-Id: Ia1dae626bd9e22541be46edb072aa288eb1ae414
2016-09-02 14:00:07 -07:00
Yohei Yukawa
1a000651d5 Fix typos in JavaDoc for InputConnection
am: 1ab959a6e0

Change-Id: I8e945ed58761262ebe3b7521de1c4b701ab6e195
2016-09-02 00:21:37 +00:00
Yohei Yukawa
1ab959a6e0 Fix typos in JavaDoc for InputConnection
This CL fixes typos in JavaDoc for InputConnection.

This CL slso updates the content regarding a new API that was added in
API 25 [1][2].

 [1]: Iaadf934a997ffcd6000a516cc3c1873db56e60ad
      152944f490
 [2]: Ica1ba3154795c1bf44e140dfe639b299f83cd8af
      adebb52588

Bug: 31249896
Change-Id: Icafedb15943a84f8e5b03ef9eb3a50627d508bdd
2016-09-01 15:42:29 -07:00
Mark Lu
e8691d19cb docs: fix grammar mistake in TextureView
Bug: 6441115
2016-08-30 17:38:42 -07:00
sergeyv
ac2ca87e92 TextureView: clean up displaylists
am: 17dd01b693

Change-Id: Ib32a64f032b9f7230414f038417b2151f1e6e4be
2016-08-31 00:32:17 +00:00
TreeHugger Robot
c0e2e0ad62 Merge "TextureView: clean up displaylists" into nyc-mr1-dev 2016-08-31 00:26:46 +00:00
Phil Weaver
532c7999c5 Stop double notifying a11y about Toasts.
TalkBack was speaking all Toasts twice because we were
sending both NOTIFICATION and a WINDOW_STATE_CHANGE events
when Toasts were displayed.

Stop sending the WINDOW_STATE_CHANGE event for toasts.
Bug: 30570188
Change-Id: I26c6dc50350dfd4daf2a706b94fadcf5d1e03557
2016-08-30 15:41:59 -07:00
sergeyv
17dd01b693 TextureView: clean up displaylists
bug:31066756
Change-Id: Ibc61825ad1ed12479e9de18cc06be7401d3fc93a
2016-08-30 14:03:32 -07:00
Eino-Ville Talvala
286b1a83e4 android.view.Surface: Add parceling warning
am: f005f5ed88

Change-Id: Id2c772873fbf98653e751036790484d0fbf7bb16
2016-08-30 17:50:12 +00:00
Eino-Ville Talvala
0656931d18 Merge "android.view.Surface: Add parceling warning" into nyc-mr1-dev 2016-08-30 17:44:11 +00:00
Eino-Ville Talvala
f005f5ed88 android.view.Surface: Add parceling warning
Surface is parcelled partly in java, partly in native, and any fields
added in java have to be accounted for in the native side as well.

Add a warning to avoid issues in the future

Bug: 31162160
Change-Id: I48ca1bc3eea29f1ac3d3065f6defb6ed2be4052a
2016-08-29 17:51:23 -07:00
Jorim Jaggi
314c05db45 Add animation when unoccluding windows (1/2)
am: 6626f54e65

Change-Id: I09be1e1b7d830067c354c6cdfd940deafa027a22
2016-08-30 00:25:52 +00:00
John Reck
8eaa65b867 Merge "Cherry pick TextureView fixes" into nyc-dev 2016-08-29 23:33:57 +00:00
Chris Craik
2e8a8a2432 Cherry pick TextureView fixes
The following changes are in this commit:

Avoid destroying TextureView surfaces for onStop

bug:30238922

TextureViews will hold onto their backing surfaces, which will allow
them to resume gracefully when the app's surfaces are saved.

Now only resources that are destroyed for onStop are DisplayLists.

(cherry picked from commit 391d560402)

TextureView: destroy layer on destroyHardwareResources event

bug:30468770

(cherry picked from commit 1c16c37d86)

Fix NPE in TextureView

Bug: 30651595

(cherry picked from commit 3c2587f26e)

Fix NPE in TextureView

Bug: 30779663

(cherry picked from commit 7e237189c2)

Fix maps resume being blank

Bug: 30889568

Fixes an issue where mLayer didn't have
the mSurface set on it in certain resume
scenarios.

(cherry picked from commit 03df0834e6)
2016-08-29 14:22:13 -07:00
Jorim Jaggi
6626f54e65 Add animation when unoccluding windows (1/2)
Before there was a jump-cut when a window that was occluding Keyguard
was going away, leading to an ugly flicker. To fix this, we do the
following.

- Always show windows with FLAG_SHOW_WHEN_LOCKED above lockscreen, even
if they don't "match" the currently occluding app (which is null in the
animation case)
- Move wallpaper behind last window that is not hidden by policy, so the
window doesn't get occluded by the wallpaper.
- Add a flag in the setOccluded call whether to animate or not. SystemUI
then plays a nice animation when it's set.
- Override the animation to always be the animation that happens when we
exit a window which is revealing the wallpaper behind, to make it
consistent with the home screen case.

Fixes: 30829255
Change-Id: Ib3fe20fc9003a0f9f291c974740f044ed8707e75
2016-08-29 14:15:33 -07:00
Yohei Yukawa
8eb07090a4 Make sure IME focus is synced to View focus
This CL fixes an edge case that my previous CL [1] forgot to handle.

The goal of my previous CL was to avoid InputMethodManager from getting
confused by a false focus-in event from temporarily detached Views.
However, my CL forgot to take care of the case where the temporarily
detached View is still focused even after the temporary detach mode is
done.

The bad news is that such a situation is relatively easy to trigger by
having a ListView that has EditText as follows, which seems to be
known to be a common technique in Android developer community to put an
EditText in a ListView.
  ListView#listView.addHeaderView(new EditText(context), null, true);

If the ListView is initialized as above, and the EditText has input
focus, View focus and IME focus start to disagree immediatelly after the
ListView's layout is re-evaluated.  This is really easy to trigger, for
example just by dismissing the IME window.

In summary, the root cause is that InputMethodManager#focusIn(View) is
now always ignored as long as the View is temporarily detached, under an
assumption that IMM#focusIn(View) will be called back again with a View
that is not temporarily detached when everything is stable.  Hence the
fix is to do so by hooking up View#dispatchFinishTemporaryDetach() to
call IMM#focusIn(View) again when the View is actually focused in the
final state.

 [1]: Ia79bbd8468f768d546354382b47b39dd31ef7bb5
      a4ed0cfcb6

Bug: 30022872
Bug: 30578745
Bug: 30706985
Change-Id: Iecbdb00dcef8c72e4f7b31035c9bf0f4a40a578f
(cherry picked from commit dd228fbb4d)
2016-08-29 18:24:31 +00:00
Pablo Ceballos
d387b20dcb Fail createVirtualDisplay with single-buffered Surface
am: aff2f94939

Change-Id: I5cfcbd0352240d7ac2a9bb0804896cae5396450e
2016-08-29 17:59:07 +00:00
Pablo Ceballos
23784fd6d9 Merge "Fail createVirtualDisplay with single-buffered Surface" into nyc-mr1-dev 2016-08-29 17:42:00 +00:00
Adam Powell
ee2f4d890e Fixes for ImageView drawable visibility dispatch am: 06f9eb8b62
am: fd86f7fdfd

Change-Id: I155ed970c7f58895419778f01eebc5babb141c33
2016-08-27 01:25:05 +00:00
Adam Powell
fd86f7fdfd Fixes for ImageView drawable visibility dispatch
am: 06f9eb8b62

Change-Id: I8b7d8c73f0a718963a191fd5460517e5a7445974
2016-08-27 01:19:28 +00:00
Daniel Chapin
7c02d7adaa Merge "Fixes for ImageView drawable visibility dispatch" into nyc-dr1-dev 2016-08-27 01:14:34 +00:00