Merge "Only do things if the window inset changed" into sc-v2-dev am: fd0437eea3 am: fed8490753
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15827924 Change-Id: Ic3f29845ee656d3b9b9f33deefefebaccdfd856e
This commit is contained in:
@@ -69,6 +69,7 @@ import android.util.SparseArray;
|
||||
import android.util.SparseSetArray;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowInsets;
|
||||
import android.view.WindowManager;
|
||||
import android.window.WindowContainerTransaction;
|
||||
|
||||
@@ -188,6 +189,9 @@ public class BubbleController {
|
||||
/** Saved direction, used to detect layout direction changes @link #onConfigChanged}. */
|
||||
private int mLayoutDirection = View.LAYOUT_DIRECTION_UNDEFINED;
|
||||
|
||||
/** Saved insets, used to detect WindowInset changes. */
|
||||
private WindowInsets mWindowInsets;
|
||||
|
||||
private boolean mInflateSynchronously;
|
||||
|
||||
/** True when user is in status bar unlock shade. */
|
||||
@@ -628,8 +632,11 @@ public class BubbleController {
|
||||
mBubbleData.getOverflow().initialize(this);
|
||||
mWindowManager.addView(mStackView, mWmLayoutParams);
|
||||
mStackView.setOnApplyWindowInsetsListener((view, windowInsets) -> {
|
||||
mBubblePositioner.update();
|
||||
mStackView.onDisplaySizeChanged();
|
||||
if (!windowInsets.equals(mWindowInsets)) {
|
||||
mWindowInsets = windowInsets;
|
||||
mBubblePositioner.update();
|
||||
mStackView.onDisplaySizeChanged();
|
||||
}
|
||||
return windowInsets;
|
||||
});
|
||||
} catch (IllegalStateException e) {
|
||||
|
||||
Reference in New Issue
Block a user