Merge "Report caption insets change when layout" into rvc-dev am: 9f804f7593
Change-Id: If0cab89959f4f24d9f8cff1f0ea9c5835c7b4540
This commit is contained in:
@@ -116,15 +116,15 @@ public class InsetsSource implements Parcelable {
|
||||
if (!ignoreVisibility && !mVisible) {
|
||||
return Insets.NONE;
|
||||
}
|
||||
if (!getIntersection(frame, relativeFrame, mTmpFrame)) {
|
||||
return Insets.NONE;
|
||||
}
|
||||
// During drag-move and drag-resizing, the caption insets position may not get updated
|
||||
// before the app frame get updated. To layout the app content correctly during drag events,
|
||||
// we always return the insets with the corresponding height covering the top.
|
||||
if (getType() == ITYPE_CAPTION_BAR) {
|
||||
return Insets.of(0, frame.height(), 0, 0);
|
||||
}
|
||||
if (!getIntersection(frame, relativeFrame, mTmpFrame)) {
|
||||
return Insets.NONE;
|
||||
}
|
||||
|
||||
// TODO: Currently, non-floating IME always intersects at bottom due to issues with cutout.
|
||||
// However, we should let the policy decide from the server.
|
||||
|
||||
@@ -2019,10 +2019,17 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
|
||||
if (getForeground() != null) {
|
||||
drawableChanged();
|
||||
}
|
||||
getWindowInsetsController().setCaptionInsetsHeight(getCaptionInsetsHeight());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* An interface to be called when the caption visibility or height changed, to report the
|
||||
* corresponding insets change to the InsetsController.
|
||||
*/
|
||||
public void notifyCaptionHeightChanged() {
|
||||
getWindowInsetsController().setCaptionInsetsHeight(getCaptionInsetsHeight());
|
||||
}
|
||||
|
||||
void setWindow(PhoneWindow phoneWindow) {
|
||||
mWindow = phoneWindow;
|
||||
Context context = getContext();
|
||||
@@ -2093,7 +2100,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
|
||||
mDecorCaptionView.onConfigurationChanged(displayWindowDecor);
|
||||
enableCaption(displayWindowDecor);
|
||||
}
|
||||
getWindowInsetsController().setCaptionInsetsHeight(getCaptionInsetsHeight());
|
||||
}
|
||||
|
||||
void onResourcesLoaded(LayoutInflater inflater, int layoutResource) {
|
||||
|
||||
@@ -30,6 +30,7 @@ import android.view.ViewOutlineProvider;
|
||||
import android.view.Window;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.internal.policy.DecorView;
|
||||
import com.android.internal.policy.PhoneWindow;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -305,6 +306,8 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener,
|
||||
}
|
||||
}
|
||||
|
||||
((DecorView) mOwner.getDecorView()).notifyCaptionHeightChanged();
|
||||
|
||||
// This assumes that the caption bar is at the top.
|
||||
mOwner.notifyRestrictedCaptionAreaCallback(mMaximize.getLeft(), mMaximize.getTop(),
|
||||
mClose.getRight(), mClose.getBottom());
|
||||
|
||||
Reference in New Issue
Block a user