Commit Graph

8311 Commits

Author SHA1 Message Date
Android Build Merger (Role)
93d9547b61 [automerger] RESTRICT AUTOMERGE: Prevent reporting fake package name - framework (backport to nyc-dev) am: 33c37cb37c
Change-Id: I793b787b6275262f1df6caa9262054e15c94840f
2018-04-09 22:24:08 +00:00
akirilov
33c37cb37c RESTRICT AUTOMERGE: Prevent reporting fake package name - framework (backport to nyc-dev)
Test: added AccessibilityEndToEndTest#testPackageNameCannotBeFaked
      cts-tradefed run cts -m CtsAccessibilityServiceTestCases
      cts-tradefed run cts -m CtsAccessibilityTestCases

Bug: 69981755
Change-Id: I187e3e9839f654cea9e06e5de93e10e4d1de3109
2018-04-09 22:24:05 +00:00
Phil Weaver
4fa8b51c0c Merge "Back-port fixes for b/62196835" into nyc-dev
am: 0b0834fbe8

Change-Id: Ie3ade206625af7f69d497935397cd3094a1555fb
2017-07-18 21:44:32 +00:00
Phil Weaver
7a237059c6 Back-port fixes for b/62196835
Bug: 62196835
Test: Created an accessibility service that displays a system
and a toast overlay, confirmed that it disappeared when we
reached the accessibility permission screen that uses this
flag.

Change-Id: Ic51ead670fc480e549512ba1d02f49d9c13bc3f0
2017-07-18 10:09:42 -07:00
Phil Weaver
b35d6eadf3 Make a11y node info parceling more robust am: d0e54c1c09 am: d87b12a4df am: a0f874d5c1 am: c30868369c
am: 4c898e40ef

Change-Id: Icdb456c12bf0e0d3675ab15fa0b82b482ff4ddeb
2017-04-07 23:09:35 +00:00
Phil Weaver
4c898e40ef Make a11y node info parceling more robust am: d0e54c1c09 am: d87b12a4df am: a0f874d5c1
am: c30868369c

Change-Id: If1cfc920db5aea27397a8f79125db944d5c4580b
2017-04-07 23:02:10 +00:00
Phil Weaver
c30868369c Make a11y node info parceling more robust am: d0e54c1c09 am: d87b12a4df
am: a0f874d5c1

Change-Id: I2bc5c091c1c685da2be951e4294483519481789f
2017-04-07 22:53:58 +00:00
Phil Weaver
a0f874d5c1 Make a11y node info parceling more robust am: d0e54c1c09
am: d87b12a4df

Change-Id: Ic10324338024f86cfc64b3e01c6380b26334d5a3
2017-04-07 22:46:31 +00:00
Phil Weaver
d87b12a4df Make a11y node info parceling more robust
am: d0e54c1c09

Change-Id: Ie4c34b84540bc928859ef1c271b4eb9d520fa6bc
2017-04-07 22:39:22 +00:00
Phil Weaver
d0e54c1c09 Make a11y node info parceling more robust
Fix a bug where a malformed Parceled representation
of an AccessibilityNodeInfo could be used to mess with
Bundles as they get reparceled.

Bug: 36491278
Test: Verified that POC no longer works, a11y cts still passes.
Change-Id: I10f24747e3ab87d77cd1deba56db4526e3aa5441
(cherry picked from commit 687bb44b43)
2017-04-07 18:53:26 +00:00
Andriy Naborskyy
c5bf8bc74d DO NOT MERGE ANYWHERE Revert "DO NOT MERGE ANYWHERE libhwui: make setSurface asynchronous"
This reverts commit 80e6d8873b.

Bug: 32771832

Change-Id: Ia2f2ffd08dfd87cbce1ec750d6b61277799b536f
2016-11-10 03:17:08 +00:00
Thomas Buhot
80e6d8873b DO NOT MERGE ANYWHERE libhwui: make setSurface asynchronous
from AOSP: https://android-review.googlesource.com/#/c/183305/

On the critical path of the cold launch of applications
the main thread of the started application tells the RenderThread
to create a surface. This process is synchronous and blocks
the main thread of the application until the creation
of the EGLContext is complete.
As a consequence the launch time of the application is delayed
by time spent allocating the EGL Context in the RenderThread.

With this optimization the launch time of any application
is improved (for example settings by 20 to 40 ms).

Change-Id: Ibf47aaa0abb8dedf7aa00693073db3785d9d6b08
Signed-off-by: Thomas Buhot <thomas.buhot@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
2016-10-25 18:48:50 -07:00
Kevin Hufnagle
fcd4541b06 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple()
am: b248b1f689

Change-Id: Ie7380c80fc81b65a89337c7c126abc1dfe58a76e
2016-09-26 23:12:46 +00:00
Kevin Hufnagle
358b289a4d Merge "docs: Clarified definition of KeyEvent.Callback.onKeyMultiple()" into nyc-dev 2016-09-26 22:46:02 +00:00
Mark Lu
66192078c5 docs: update javadoc description for View.setVisibility() method
am: ae0459f532

Change-Id: Ie217e46288a11e86b2e5b6e56d8ce5cb2a214861
2016-09-23 22:19:47 +00:00
Mark Lu
d91c303e6c Merge "docs: update javadoc description for View.setVisibility() method" into nyc-dev 2016-09-23 22:10:39 +00:00
Dianne Hackborn
491bc2b8d6 Cherrypick so we can publish N version code description ASAP
Fix issue #30766518: Document what targeting N does

Also small documentation cleanup in a few other places.

(cherry picked from commit b34cbedb4e)

Change-Id: I9560b29faa4f2674277349272af8193122a1f95e
2016-09-19 19:31:19 +00:00
Kevin Hufnagle
b248b1f689 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple()
The onKeyMultiple() event captures simulated, not actual, presses of
the same key in rapid succession. Adjusted the method definition to
include this clarification.

Bug: 2335983
Change-Id: Id01182d81dafe98df9e559ff24f9e1d5a1f949c3
2016-09-19 11:22:31 -07: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
Mark Lu
c657eed270 docs: fix grammar mistake in TextureView
am: e8691d19cb

Change-Id: I857deef5cf08c9cdaf0d6e8e99449e688bec5ba5
2016-09-07 23:29:20 +00:00
Mark Lu
ae0459f532 docs: update javadoc description for View.setVisibility() method
Bug: 19770068
2016-08-30 17:51:22 -07:00
Mark Lu
e8691d19cb docs: fix grammar mistake in TextureView
Bug: 6441115
2016-08-30 17:38:42 -07: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
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
Daniel Chapin
7c02d7adaa Merge "Fixes for ImageView drawable visibility dispatch" into nyc-dr1-dev 2016-08-27 01:14:34 +00:00
Adam Powell
06f9eb8b62 Fixes for ImageView drawable visibility dispatch
Some apps rely on their drawables not getting not-visible hints via
setVisible when the window visibility changes. This manifests as
additional animations, such as crossfading from placeholders when the
window becomes visible again.

Apps should be able to handle this case in the future now that we have
more detailed reporting via onVisibilityAggregated, but to keep
existing apps working as-is, ImageView now operates in a compatibility
mode for targetSdkVersion < N and will only dispatch visibility
signals based on the same triggers used in M. New apps get the more
detailed signals.

Fix a bug where window visibility dispatch via onVisibilityAggregated
would double-dispatch "not visible" when the window is transitioning
from GONE => INVISIBLE or INVISIBLE => GONE.

Make the growing set of compatibility check fields in ImageView
static, matching the pattern from View.

Bug 30216207

Change-Id: I88875260bf6aaa23687c7d51353de8d633383531
2016-08-26 22:59:39 +00:00
Chong Zhang
813be138ae DO NOT MERGE -- Only use saved surface if started by launcher or moved to front
Restrict saved surface to launcher start (ACTION_MAIN&CATEGORY_
LAUNCHER), or there is no intent at all (eg. task being brought to
front). If the intent is something else, likely the app is going
to show some specific page or view, instead of what's left last time.

This solves problems like the launcher shortcuts on DeckClock,
each of them is a different intent and will show one specific
view regardless of last states. Another example is Chrome tab
opened directly by action VIEW to open some URL.

(Note that this doesn't solve the problem with Chrome homescreen
shortcuts, it will still start with saved surface (if Chrome
is already open). This is because the shortcut is a trampoline
activity that starts the real chrome tab activity, but when
the trampoline is started, the whole task is already brought
to front, and ChromeTab could become visible with the task
before we actually start it.)

bug: 31055479
bug: 27747315

Change-Id: Id3e61c61ef516b0edc1f174320f02661222f226b
(cherry picked from commit ad24f96def)
2016-08-26 15:41:58 -07:00
Adam Powell
64e1ba4398 Only dispatch window visibility aggregation for targetSdk >= N
Some existing apps treat drawable visibility notifications as a signal
to crossfade from a placeholder to the new image for the purposes of
scrolling onscreen via a recycling collection view or similar. Since
dispatchVisibilityAggregated is now called for window visibility
changes and ImageView informs its drawable of the visiblity change,
the extra call triggers a repeat fade-in in some existing apps when
you return them to visibility.

These apps should pay attention to the second parameter of
Drawable#setVisible, which signals that animations should not restart
in response to a visibility change. Updating to targetSdkVersion=24+
will enable the new behavior.

Bug 30216207

Change-Id: I27ce9f09bc7544863f7f7980c273650949db21cc
2016-08-22 17:47:09 +00:00
Yohei Yukawa
4aa5325ba8 Merge "Make View#isTemporarilyDetached() less confusing" into nyc-mr1-dev 2016-08-17 19:41:40 +00:00
Chong Zhang
f925b8df92 Merge "Add new window type TYPE_DRAWN_APPLICATION" into nyc-mr1-dev 2016-08-16 19:49:29 +00:00
John Reck
03df0834e6 Fix maps resume being blank
Bug: 30889568

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

Change-Id: Ib75065d3d75e6141d6cd8f306584f6a569b9907c
2016-08-16 09:44:23 -07:00
TreeHugger Robot
b14543d9d8 Merge "Introduce new constant for double tap gesture rotation hint." into nyc-mr1-dev 2016-08-16 01:21:57 +00:00
Chong Zhang
fea963edee Add new window type TYPE_DRAWN_APPLICATION
This type behaves like a normal TYPE_APPLICATION, except that WM
will always wait for it to be drawn before starting a transition.

WM always waits for TYPE_BASE_APPLICATION (main window), but for
TYPE_APPLICATION, it only waits if the window relayouts to visible
and gets a surface before the main window is drawn. If main window
itself is ready very fast, transition could start without the other
window.

bug: 30830849
Change-Id: Ife71a9812db7c8eba6ee4ead10ce4f31d9e93b40
2016-08-15 17:36:40 -07:00
Robert Carr
57d9fbd17f Introduce new constant for double tap gesture rotation hint.
As discussed in ag/1192965/ we have a special case for rotation
animation selection in launch from double tap. This was set to
ROTATION_ANIMATION_CROSSFADE as the goal was just to avoid
ROTATION_ANIMATION_ROTATE on the viewfinder surface and
seamless rotation in launch scenarios was initially descoped. Now we
are aiming at fixing this though, and ROTATION_ANIMATION_CROSSFADE
does not quality for seamless rotation. ROTATION_ANIMATION_JUMPCUT
also would not be a good choice because in the situation that the
rotation occurs before the app starting window appears, then we would
jump cut from unrotated wallpaper to rotated app, I think we want
a crossfade in this scenario. To this end introduce and use a new @hide constant
ROTATION_ANIMATION_SEAMLESS which qualifies for seamless but falls back
to CROSSFADE if seamless can't occur.

Bug: 30171992
Change-Id: If1945b17b5159be4cd5ba0b139d6bea9f7fcca33
2016-08-15 12:25:37 -07:00
Hui Shu
caef4afe42 Merge "Fix documentation." into nyc-mr1-dev 2016-08-12 21:24:44 +00:00
Alison Cichowlas
c7d6af6cd0 Merge "Add restart to GlobalActions." into nyc-mr1-dev 2016-08-12 20:12:38 +00:00
Alison Cichowlas
f8eca405c1 Add restart to GlobalActions.
Update power icon in GlobalActions for consistency
with new restart icon.

Bug: 30395806
Change-Id: I5ab20c15c889384fb685fc678fbf9ed912fcde5d
2016-08-12 13:41:00 -04:00
Hui Shu
bd042e666a Fix documentation.
Remove spurious duplicate line in JavaDoc.

Change-Id: I7ee7339d2ef21241ff21e66683e37e8ea0bbfaa4
2016-08-12 00:27:39 +00:00
Yohei Yukawa
ed841cbdd7 Make View#isTemporarilyDetached() less confusing
In Android N, View#isTemporarilyDetached() returns true if it is called
when the same View instance is handling View#onFinishTemporaryDetach().

Returning true there is, however, sometimes confusing, especially
scenarios like the following case:

    @Override
    public void onFinishTemporaryDetach() {
        doSomeRestoringWorks();
    }

    private void doSomeRestoringWorks() {
        doSomething();
    }

    private doSomething() {
        if (isTemporarilyDetached()) {
            // As of N, we hit here if this is called as a result of
            // View#onFinishTemporaryDetach().
        } else {
            // but is the logic here is more likely to be appropriate
            // when handling View#onFinishTemporaryDetach()?
        }
    }

What this CL aims to do is to let View#isTemporarilyDetached() return
false when it is called while handling View#onFinishTemporaryDetach(),
because it should make View#onFinishTemporaryDetach() more useful.

Regarding the app compatibility, View#isTemporarilyDetached() was added
in API 24 hence the impact on this change is still limited.

Bug: 30791718
Change-Id: If384da9f9e6ff849598896901626fd021bae5cda
2016-08-11 11:00:23 -07:00
John Reck
7e237189c2 Fix NPE in TextureView
Bug: 30779663
Change-Id: Ib3d40b60674ab3de8bfcfdd8489b89cf07b8d8b3
2016-08-11 10:43:14 -07:00
John Reck
8d521bb9b3 Merge "Make updateSurface non-blocking" into nyc-mr1-dev 2016-08-10 17:22:48 +00:00
Dianne Hackborn
75cdd5f68f Merge "Fix issue #30766518: Document what targeting N does" into nyc-mr1-dev 2016-08-10 00:45:55 +00:00
Dianne Hackborn
b34cbedb4e Fix issue #30766518: Document what targeting N does
Also small documentation cleanup in a few other places.

Change-Id: I16581c751aa0ffa146faba3b140a8fa2170f4520
2016-08-09 13:21:24 -07:00
John Reck
cd68212f08 Make updateSurface non-blocking
Bug: 30442298

We already do this for initialize(), fix
it so that update() is parallel with the
UI thread as well.

Shaves ~7ms off of the 99th percentile on
NotificationShade open & close

Change-Id: I1791df495453fb9e1e12362c68e3d20e837e62be
2016-08-09 12:11:13 -07:00
John Reck
8bcd5bc5b0 Merge "Fix currentAnimationTimeMillis to use vsync time" into nyc-mr1-dev 2016-08-08 21:49:04 +00:00
Muyuan Li
36ca72c6c2 Prevents screenshot layer from dismissing IME.
Add code to adjustWindowLw to force the flag
FLAG_NOT_FOCUSABLE to be set for layer type
TYPE_SCREENSHOT.

Bug: 30485483
Change-Id: I11725eb89fda59b6d50fa1700845cdfe9ffb930b
2016-08-06 20:49:51 -07:00
Yohei Yukawa
dd228fbb4d 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
2016-08-05 15:38:55 -07:00
Adrian Roos
c49dfaf4d6 Merge changes from topic 'smooth_unlock' into nyc-mr1-dev
* changes:
  Keyguard: Improve trusted unlock while occluded
  Keyguard: Refactoring for improving trusted unlock while occluded
2016-08-05 18:37:29 +00:00