OSDN Git Service

Fix issue when launching Camera
authorJorim Jaggi <jjaggi@google.com>
Thu, 3 Aug 2017 14:59:44 +0000 (16:59 +0200)
committerJorim Jaggi <jjaggi@google.com>
Tue, 15 Aug 2017 14:27:54 +0000 (16:27 +0200)
commit07a7b9659bc905b43ba3e3579601e5b948d6335c
treebf1d2196998117dac1e2b363a960152e79334888
parente33e796d26beff1d98cb827735934ac1673d635b
Fix issue when launching Camera

Imagine the following: HostPhotoActivity is above CameraActivity,
in the same task, and not visible. Now, we launch the Camera again
with STILL_IMAGE_CAPTURE, which launches a Trampoline activity
in the same task, which later starts CameraActivity with
CLEAR_TASK. However, in the meantime, since Trampoline activity is
translucent (r.fullscreen == false), we make HostPhotoActivity
visible. Now, since we bring the task to the front, we also create
a snapshot starting window, for which mViewVisibility == VISIBLE
always.

When the previous activity has finished pausing we make
HostPhotoActivity's starting window visible because of the
following:
- TrampolineActivity is on top of HostPhotoActivity, but in AM
sense it's "translucent",
- TrampolineActivity hasn't managed to start CameraActivity
yet.
- HostPhotoActivity.hasContentToDisplay returns true so when
we set the Dummy animation we set the transformation.alpha=1,
making the starting window visible.

We also need to fix a that HostPhotoActivity's starting window
can't affect SystemUI visibiltiy yet.

Test: Above flow
Test: go/wm-smoke
Change-Id: I4a62aaafab4d40e975bc86b53abd0c55c84911c2
Fixes: 64270512
services/core/java/com/android/server/wm/AppWindowAnimator.java
services/core/java/com/android/server/wm/WindowState.java