Commit Graph

8199 Commits

Author SHA1 Message Date
Yorke Lee
d1d3950d94 Merge \"Update documentation for View.startDragAndDrop\" into nyc-dev
am: c63710ea48

Change-Id: Iebdb99f1032fbda52686df9dc02e740b61b7e7eb
2016-06-24 22:21:19 +00:00
Yorke Lee
c63710ea48 Merge "Update documentation for View.startDragAndDrop" into nyc-dev 2016-06-24 22:10:47 +00:00
TreeHugger Robot
038084e61c Merge "Update DisplayMetrics when resizing" into nyc-mr1-dev 2016-06-24 22:04:15 +00:00
Adam Lesinski
8e8d23214a Update DisplayMetrics when resizing
Previously the DisplayMetrics passed to a new ResourcesImpl
object would be generated from the default DisplayAdjustments.
We now use the correct DisplayAdjustments for the ResourcesImpl
and make sure to update them for things like rotation changes.

Bug:29619314
Change-Id: If2ba0d7670a4554dcd3fde9766e2337f20a191fd
2016-06-24 13:13:19 -07:00
Yorke Lee
d092e3a414 Update documentation for View.startDragAndDrop
Bug: 29606395
Change-Id: Ibbe1a20c998986c7afffac6f5f4b25769f56a8f2
2016-06-23 12:23:22 -07:00
John Reck
50e952fe74 Merge \"Remove FD from the right Looper\" into nyc-dev
am: db13dd41a9

Change-Id: I590fa2c47bcc90ee5b269fde5cdac9557206ed88
2016-06-23 18:44:16 +00:00
John Reck
ac04f4e69a Remove FD from the right Looper
Bug: 29586513

Also gives BackdropFrameRenderer a direct-destroy
of Choreographer since it's hammering on new Threads
and we don't want to wait for the GC to release
FDs.

Change-Id: Id2ec0af2ee4d5304961c4ab87a104ccb92f35fc2
2016-06-23 11:00:00 -07:00
Yohei Yukawa
dc42d7dd13 Merge "Add InputMethodService#exposeContent()" into nyc-mr1-dev 2016-06-23 01:25:39 +00:00
Jim Miller
0520091641 Merge "Enable fingerprint sensor navigation to invoke QuickSettings - rename "FP_NAV" to more generic "SYSTEM_NAVIGATION"" into nyc-mr1-dev 2016-06-23 00:13:42 +00:00
John Reck
0a3a75e121 Merge \"Change approach for windowPositionLostRT\" into nyc-dev
am: 16038a0c5f

Change-Id: Ia6d1b8cfa2c5d126b702eb84895093fa3f893b00
2016-06-22 23:45:34 +00:00
John Reck
16038a0c5f Merge "Change approach for windowPositionLostRT" into nyc-dev 2016-06-22 23:38:24 +00:00
Yohei Yukawa
25e0813e6e Add InputMethodService#exposeContent()
This is a follow up CL to my previous CLs [1][2] that introduced
InputConnection#commitContent(InputContentInfo, Bundle) API to enable
IMEs to send a content to the target application.

With this CL, IME developers are able to temporarily expose
InputContentInfo object to the target package without permanently
granting URI permission.  Although calling IMS#exposeContent() is
allowed only for the IME that is currently selected, the client is able
to request a temporary read-only access even after the current IME is
switched to any other IME as long as the client keeps InputContentInfo
object.

Here is a sample code snippet about how to use this mechanism.

  [IME]
  InputContentInfo contentInfo = new InputContentInfo(
          contentUri,
          new ClipDescription(description, new String[]{mimeType}),
          linkUrl);
  exposeContent(contentInfo, getCurrentInputEditorInfo());
  getCurrentInputConnection().commitContent(inputContentInfo, null);

  [App]
  try {
      contentInfo.requestPermission();
      // Load inputContentInfo.getContentUri() here.
  } finally {
      contentInfo.releasePermission();
  }

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

Bug: 29450031
Change-Id: I2772889ca01f2ecb2cdeed4e04a9319bdf7bc5a6
2016-06-22 16:31:41 -07:00
John Reck
f23a1b8e4c Change approach for windowPositionLostRT
Bug: 29547000

Instead of shifting the window off screen fall
back to the UI-thread calculated values. This fixes
a race issue around tear-down where we stop
drawing long before our window is actually no longer
visible, as well as fixes a funky issue with
PRESERVE_GEOMETRY during first draw.

Change-Id: I792d1966f5aaee1e703295ae79166c723b97a1dc
2016-06-22 16:10:07 -07:00
Jim Miller
07e0384a4e Enable fingerprint sensor navigation to invoke QuickSettings
- rename "FP_NAV" to more generic "SYSTEM_NAVIGATION"

Fixes bug 28869612

Change-Id: I321240ee54506633d63a29e987b8d8638c652391
2016-06-22 15:18:13 -07:00
Adam Lesinski
e894efa9b6 Merge \"ContextImpl: Keep DisplayAdjustments and Display in sync\" into nyc-dev
am: 0bf31c3fa6

Change-Id: Id0d16d2f9d69b87d4b4c01370eeceafe329d1817
2016-06-22 19:16:44 +00:00
Adam Lesinski
0bf31c3fa6 Merge "ContextImpl: Keep DisplayAdjustments and Display in sync" into nyc-dev 2016-06-22 19:11:36 +00:00
TreeHugger Robot
f8142e5bf3 Merge changes from topic 'seamless-rotation' into nyc-mr1-dev
* changes:
  Enable resize during relayout fix for all stacks.
  SurfaceView: Careful with FLAG_PRESERVE_GEOMETRY.
  Implement seamless rotation mode.
2016-06-22 17:40:48 +00:00
Adam Lesinski
4ece3d6bb1 ContextImpl: Keep DisplayAdjustments and Display in sync
Make sure that when our Resources get updated, that DisplayAdjustment
and Display properly reflect the potentially new screen dimensions.

Bug:28388969
Change-Id: I340550ea094ece87abc8790dd46aaa60ab3cedd3
2016-06-21 17:55:58 -07:00
Robert Carr
15e0bb4264 SurfaceView: Careful with FLAG_PRESERVE_GEOMETRY.
We need to be careful about stripping FLAG_PRESERVE_GEOMETRY
as it breaks render thread sync. Notably we don't need
to strip it in the case of mUpdateWindowNeeded, this just signals
that Window#resized has been called, or something similar, but if there
has been no actual size change, then we can leave the geometry to
the render thread. This particularly manifests in rotation scenarios
where the SurfaceView will receive resize ahead of the app receiving
a configuration change.

Bug: 28823590
Change-Id: Ie2bbe7d9bd9f0a5ab64a08776bae7344eaecb605
2016-06-21 17:13:19 -07:00
Robert Carr
6da3cc0237 Implement seamless rotation mode.
Add a rotation mode which does not require freezing
the screen. For situations like Camera where only small
elements move on screen, this allows for seamless changes
of display orientation. This is achieved by transforming the
windows with their current buffer in the same transaction that
we rotate the display. We set things up so the windows are
frozen this way until they submit buffers in the new orientation.
There is a special case in the Camera window itself, and it's use
of NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY. In this case the buffer
contents are rotated by SurfaceFlinger and will never resize, for these
windows we just need to update the scaling matrix.

Bug: 28823590
Change-Id: I52dc6a86fcb3c08f736f0977ba3975a24fb8136c
2016-06-21 17:13:15 -07:00
Yorke Lee
d22536666a Merge \"Tweaks to DragAndDropPermissions behavior\" into nyc-dev
am: 22faa5ddb1

Change-Id: Ia37191b026b85773d27b41b7991238a07e141a12
2016-06-21 23:35:09 +00:00
Yorke Lee
c8ad0cd316 Tweaks to DragAndDropPermissions behavior
No longer release permissions in finalize(), so that
apps do not have to maintain a reference to the
DragAndDropPermissions object.

Also make it parcelable, so that permission instances can be
retained across activity instances so that they can be
manually released.

Bug: 29162822

Change-Id: Ie604dd3e83ee45a8665d743449b91857dd54e896
2016-06-21 12:57:52 -07:00
Chong Zhang
b0e28cf5b3 Merge \"Do a forceLayout if pending insets is changed after relayout window\" into nyc-dev
am: 2756d0707f

Change-Id: I72a8192317ebaa7c036416a65b415c2471f449de
2016-06-18 02:07:55 +00:00
Yohei Yukawa
01e7c10d37 Merge "API Rename: IC#inputContent to IC#commitContent." into nyc-mr1-dev 2016-06-17 23:23:59 +00:00
John Reck
34bf49e4de DO NOT MERGE Move SurfaceView offscreen if the app stops drawing it
Bug: 29360411
Change-Id: Iefb9d7a9dafb34a2b4f79130a2a8b5a7cf7de906
(cherry picked from commit aa6e84f21d)
2016-06-17 20:26:10 +00:00
John Reck
e66dedf35b Merge "Move SurfaceView offscreen if the app stops drawing it" into nyc-mr1-dev 2016-06-17 20:13:20 +00:00
John Reck
aa6e84f21d Move SurfaceView offscreen if the app stops drawing it
Bug: 29360411
Change-Id: Iefb9d7a9dafb34a2b4f79130a2a8b5a7cf7de906
2016-06-17 10:23:54 -07:00
Yohei Yukawa
adebb52588 API Rename: IC#inputContent to IC#commitContent.
As shown in below, we have already used commit* naming convention in
InputConnection.

 - InputConnection#commitCompletion(CompletionInfo);
 - InputConnection#commitCorrection(CorrectionInfo);
 - InputConnection#commitText(CharSequence, int);

Hence renaming IC#inputContent() to IC#commitContent() would make the
new method more consistent.

Bug: 29450024
Change-Id: Ica1ba3154795c1bf44e140dfe639b299f83cd8af
2016-06-17 10:10:39 -07:00
Chong Zhang
71f2c31469 Do a forceLayout if pending insets is changed after relayout window
We might have a pending MSG_RESIZED_REPORT, but if it's executed after
relayoutWindow, mPendingInsets will already be the new value and it'll
not forceLayout. So we need to forceLayout here to make sure the measure
cache is cleared.

bug: 29391054

Change-Id: I73793b1427b89e75700369ec3b37053a6a732f0d
2016-06-17 01:11:49 +00:00
Yorke Lee
599cf6bc4a Merge \"Limit global drags to apps targeting SDK 24 and above\" into nyc-dev
am: f33af2285b

Change-Id: If4d9abfb81929f8366fc9acc7978816d55117fbc
2016-06-16 21:21:57 +00:00
Yorke Lee
0e85247195 Limit global drags to apps targeting SDK 24 and above
Bug: 29127791

Change-Id: Ib5f85a207bdb79eeac0418fda78e452d225761bc
2016-06-16 09:35:40 -07:00
Selim Cinek
447ee99755 Merge \"Added dismiss, expand, and collapse accessibility actions\" into nyc-dev
am: c1720dce1b

Change-Id: I14674254eb79fef58e4dcb1a8d7ecaab24831691
2016-06-16 04:25:26 +00:00
Selim Cinek
e9bad242f3 Added dismiss, expand, and collapse accessibility actions
Fixes: 20343017
Fixes: 29368014
Change-Id: Ib571242aac04c67aea2f3c3ce76139eaedc1f3f1
2016-06-15 16:30:09 -07:00
Yohei Yukawa
03f759e87e Merge "Add InputConnection#insertContent()." into nyc-mr1-dev 2016-06-14 00:26:39 +00:00
Yorke Lee
fead52ebf4 Merge \"Check for detached view in drag-related APIs\" into nyc-dev
am: cdc9d7bed9

Change-Id: Id1c2228d081e63e86278072654c4c611bdb10d1a
2016-06-13 20:15:15 +00:00
TreeHugger Robot
cdc9d7bed9 Merge "Check for detached view in drag-related APIs" into nyc-dev 2016-06-13 20:09:43 +00:00
Yorke Lee
07452c37ab Check for detached view in drag-related APIs
Bug: 29253539
Change-Id: I26285404ee15bb17e87ac23c67f7c3c6aaa2d968
2016-06-13 11:32:23 -07:00
Yohei Yukawa
152944f490 Add InputConnection#insertContent().
Providing an official protocol for IMEs to insert an image to the
application is something that has been requested from many IME
developers to Android OS.  With this CL, IMEs are able to ask
applications to insert a content including image files as follows.

 1. An application that opts in to this protocol specifies a list of
    supported content MIME types in EditorInfo#contentMimeTypes.
 2. When an IME is actively interacting with such an application, the
    IME can call InputConnection#insertContent() with a InputContentInfo
    that contains content URI, metadata (ClipDescription), and an
    optional link URI.
 3. The application can read the stream data from the given content URI
    to insert the content into somewhere in the application.

Detailed design background can be found in the JavaDoc of
InputConnection#insertContent().

Bug: 22830793
Change-Id: Iaadf934a997ffcd6000a516cc3c1873db56e60ad
2016-06-10 19:04:34 -07:00
John Reck
b8dac11e5a Merge \"Don\'t call surfaceCreated for just changed surfaces\" into nyc-dev
am: e4b1fb94e3

Change-Id: I488da6f9f779ddf64beb6ac12d1481d2bfd69821
2016-06-10 18:02:57 +00:00
John Reck
e4b1fb94e3 Merge "Don't call surfaceCreated for just changed surfaces" into nyc-dev 2016-06-10 17:46:54 +00:00
Phil Weaver
d567ae1b87 Merge \"Improve accessibility window title behavior\" into nyc-dev
am: f8af34365c

Change-Id: I620cb3dc270a8ad409ec1760cedd778821fd8d98
2016-06-09 23:41:45 +00:00
Phil Weaver
f8af34365c Merge "Improve accessibility window title behavior" into nyc-dev 2016-06-09 23:32:10 +00:00
John Reck
208c47cfb0 Don't call surfaceCreated for just changed surfaces
Fixes: 29223302

If the surface only changed we want to just call onSurfaceChanged,
not onSurfaceCreated.

Change-Id: I65c8b210a7e34eaa2862020335ee7f6ef56eeac2
2016-06-09 16:26:21 -07:00
Doris Liu
3f6a95283a Merge "Handle hidden RT VectorDrawable animators" into nyc-mr1-dev 2016-06-09 21:30:03 +00:00
Phil Weaver
155edc693e Improve accessibility window title behavior
Un-reverts ag/1057448, but uses a version of Resources#getText
that returns null rather than throw an exception when no title
is available. This is the same call made before, so this change
should be safer.

Bug: 28744278
Change-Id: I8c123f4f6d74f796ab9e8ffcf955aaf881770da1
2016-06-09 13:45:46 -07:00
Robert Carr
c28647084e Merge \"PiP animation: Move window with resize when ending animation.\" into nyc-dev
am: 4624d687f7

Change-Id: Ib9ce0ef71a71e998e1ffe783c178b8f514ab1469
2016-06-09 19:33:19 +00:00
Robert Carr
a9408d4a48 PiP animation: Move window with resize when ending animation.
At the end of the animation (when going from larger to smaller),
we are left with a scaled surface, that we want to seamlessly
resize to an unscaled surface of the new size. Because we have scaled
the shadow region of the surface, the position of the content
will differ before and after the resize applies. We use new
SurfaceFlinger API to cause position updates to apply after
resize. Because we have to switch into SCALING_MODE_FREEZE,
we could end up prematurely cropping the window, so we
switch to using screen space crop for the pinned stack.

Bug: 28899837
Change-Id: I9b762a237413e4fa3d432e67d30c7125bfef484c
2016-06-09 10:31:17 -07:00
Doris Liu
718cd3eb70 Handle hidden RT VectorDrawable animators
This CL changes the target of VD specific animators to VectorDrawable,
instead of RenderNode. The benefit of doing so is that animators can
now detect whether the animation is meaningful by checking whether
their VD target is in the display list. If not, that means the VD is
not drawing for the current frame, in which case we can be smarter
and more power efficient by removing the animator from the list and
posting a delayed onFinished listener callback.

By setting VD as the animation target, when an ImageView decides to
update its drawable from one AVD to something else, we'll be able
to detect that the previous AVD is no longer in the display list,
and stop providing animation pulse to the stale AVD, which is
something we couldn't do previously.  This change also
handles the case where one AVD instance could be drawn in two
different views.

Bug: 27441375
Change-Id: Iaad1ed09cfd526276b95db0dd695275c28e074e8
2016-06-09 10:27:59 -07:00
Phil Weaver
5c32d65e78 Merge \"Revert \"Improve accessibility window title behavior\"\" into nyc-dev
am: fc71309640

Change-Id: I7b0c0636a69e4cc06d525f60d8621879ce45be22
2016-06-08 02:24:42 +00:00
Phil Weaver
fc71309640 Merge "Revert "Improve accessibility window title behavior"" into nyc-dev 2016-06-08 02:19:34 +00:00