Merge "Temporary bubble hack for new insets"

This commit is contained in:
Jorim Jaggi
2020-01-29 21:32:48 +00:00
committed by Android (Google) Code Review
3 changed files with 22 additions and 2 deletions

View File

@@ -20,6 +20,8 @@ import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
import static android.view.Display.INVALID_DISPLAY;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.ViewRootImpl.sNewInsetsMode;
import static com.android.systemui.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_EXPANDED_VIEW;
import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_BUBBLES;
import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
@@ -338,7 +340,13 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
? insets.getDisplayCutout().getSafeInsetBottom()
: 0);
final int insetsBottom = Math.max(activityViewBottom - keyboardTop, 0);
mActivityView.setForwardedInsets(Insets.of(0, 0, 0, insetsBottom));
// TODO: Temporary hack to offset the view until we can properly inset Bubbles again.
if (sNewInsetsMode == NEW_INSETS_MODE_FULL) {
mStackView.animate().translationY(-insetsBottom);
} else {
mActivityView.setForwardedInsets(Insets.of(0, 0, 0, insetsBottom));
}
}
}

View File

@@ -766,7 +766,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
* {@see AnimationFlags#PARENTS}
* {@see AnimationFlags#CHILDREN}
*/
final boolean isAnimating(int flags) {
boolean isAnimating(int flags) {
if (mSurfaceAnimator.isAnimating()) {
return true;
}

View File

@@ -4970,6 +4970,18 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
mWindowFrames.updateLastInsetValues();
}
@Override
boolean isAnimating(int flags) {
// If we are an inset provider, all our animations are driven by the inset client, so we
// aren't really animating.
// TODO: Replace this with a proper animation type system.
if (mControllableInsetProvider != null) {
return false;
}
return super.isAnimating(flags);
}
void startAnimation(Animation anim) {
// If we are an inset provider, all our animations are driven by the inset client.