Merge "Disable fixed rotation for starting window with ime surface" into sc-dev
This commit is contained in:
@@ -1538,6 +1538,11 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
// to cover the activity configuration change.
|
||||
return false;
|
||||
}
|
||||
if (r.mStartingData != null && r.mStartingData.hasImeSurface()) {
|
||||
// Currently it is unknown that when will IME window be ready. Reject the case to
|
||||
// avoid flickering by showing IME in inconsistent orientation.
|
||||
return false;
|
||||
}
|
||||
if (checkOpening) {
|
||||
if (!mAppTransition.isTransitionSet() || !mOpeningApps.contains(r)) {
|
||||
// Apply normal rotation animation in case of the activity set different requested
|
||||
|
||||
@@ -39,4 +39,9 @@ class SnapshotStartingData extends StartingData {
|
||||
return mService.mStartingSurfaceController.createTaskSnapshotSurface(activity,
|
||||
mSnapshot);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean hasImeSurface() {
|
||||
return mSnapshot.hasImeSurface();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,4 +40,9 @@ public abstract class StartingData {
|
||||
* {@link StartingSurface#remove}
|
||||
*/
|
||||
abstract StartingSurface createStartingSurface(ActivityRecord activity);
|
||||
|
||||
/** @see android.window.TaskSnapshot#hasImeSurface() */
|
||||
boolean hasImeSurface() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,7 +118,9 @@ public class StartingSurfaceController {
|
||||
return null;
|
||||
}
|
||||
if (topFullscreenActivity.getWindowConfiguration().getRotation()
|
||||
!= taskSnapshot.getRotation()) {
|
||||
!= taskSnapshot.getRotation()
|
||||
// Use normal rotation to avoid flickering of IME window in old orientation.
|
||||
&& !taskSnapshot.hasImeSurface()) {
|
||||
// The snapshot should have been checked by ActivityRecord#isSnapshotCompatible
|
||||
// that the activity will be updated to the same rotation as the snapshot. Since
|
||||
// the transition is not started yet, fixed rotation transform needs to be applied
|
||||
|
||||
Reference in New Issue
Block a user