diff options
| author | 2024-06-13 22:58:19 +0000 | |
|---|---|---|
| committer | 2024-06-13 22:58:19 +0000 | |
| commit | 918fdc0f99f557e38c2e30b51123194e65e56371 (patch) | |
| tree | ddab0927c1fbadd8be277402c91258f328bf51aa | |
| parent | d72afba5a4d9d9b0c3572970ff93db86880a0dbc (diff) | |
| parent | f3c502896031d73060e54a5b69247c6cc15fc224 (diff) | |
Merge "Revert^2 "Notify DecorContentParent about content change"" into main
3 files changed, 30 insertions, 6 deletions
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index 2194c897ff0d..40d760e0064e 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -537,8 +537,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } mContentParent.requestApplyInsets(); final Callback cb = getCallback(); - if (cb != null && !isDestroyed()) { - cb.onContentChanged(); + if (!isDestroyed()) { + if (cb != null) { + cb.onContentChanged(); + } + if (mDecorContentParent != null) { + mDecorContentParent.notifyContentChanged(); + } } mContentParentExplicitlySet = true; } @@ -568,8 +573,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } mContentParent.requestApplyInsets(); final Callback cb = getCallback(); - if (cb != null && !isDestroyed()) { - cb.onContentChanged(); + if (!isDestroyed()) { + if (cb != null) { + cb.onContentChanged(); + } + if (mDecorContentParent != null) { + mDecorContentParent.notifyContentChanged(); + } } mContentParentExplicitlySet = true; } @@ -586,8 +596,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mContentParent.addView(view, params); mContentParent.requestApplyInsets(); final Callback cb = getCallback(); - if (cb != null && !isDestroyed()) { - cb.onContentChanged(); + if (!isDestroyed()) { + if (cb != null) { + cb.onContentChanged(); + } + if (mDecorContentParent != null) { + mDecorContentParent.notifyContentChanged(); + } } } diff --git a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java index 68328252abaf..ff57fd4fe2ce 100644 --- a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java +++ b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java @@ -898,6 +898,13 @@ public class ActionBarOverlayLayout extends ViewGroup implements DecorContentPar mDecorToolbar.dismissPopupMenus(); } + @Override + public void notifyContentChanged() { + mLastBaseContentInsets.setEmpty(); + mLastBaseInnerInsets = WindowInsets.CONSUMED; + mLastInnerInsets = WindowInsets.CONSUMED; + } + public static class LayoutParams extends MarginLayoutParams { public LayoutParams(Context c, AttributeSet attrs) { super(c, attrs); diff --git a/core/java/com/android/internal/widget/DecorContentParent.java b/core/java/com/android/internal/widget/DecorContentParent.java index ac524f929d1b..8d6cfd1018c0 100644 --- a/core/java/com/android/internal/widget/DecorContentParent.java +++ b/core/java/com/android/internal/widget/DecorContentParent.java @@ -22,6 +22,7 @@ import android.os.Parcelable; import android.util.SparseArray; import android.view.Menu; import android.view.Window; + import com.android.internal.view.menu.MenuPresenter; /** @@ -49,4 +50,5 @@ public interface DecorContentParent { void saveToolbarHierarchyState(SparseArray<Parcelable> toolbarStates); void restoreToolbarHierarchyState(SparseArray<Parcelable> toolbarStates); void dismissPopups(); + void notifyContentChanged(); } |