Loading core/java/android/view/WindowManagerPolicy.java +5 −0 Original line number Diff line number Diff line Loading @@ -460,6 +460,11 @@ public interface WindowManagerPolicy { /** Unregister a system listener for touch events */ void unregisterPointerEventListener(PointerEventListener listener); /** * @return The content insets of the docked divider window. */ int getDockedDividerInsetsLw(); } public interface PointerEventListener { Loading core/java/com/android/internal/policy/DividerSnapAlgorithm.java +3 −3 Original line number Diff line number Diff line Loading @@ -136,8 +136,7 @@ public class DividerSnapAlgorithm { / (mFirstSplitTarget.position - getStartInset()); } else if (position > mLastSplitTarget.position) { return (float) (position - mLastSplitTarget.position) / (mDismissEndTarget.position - getEndInset() - mLastSplitTarget.position - mDividerSize); / (mDismissEndTarget.position - mLastSplitTarget.position - mDividerSize); } return 0f; } Loading Loading @@ -222,7 +221,8 @@ public class DividerSnapAlgorithm { addMiddleTarget(isHorizontalDivision); break; } mTargets.add(new SnapTarget(dividerMax, SnapTarget.FLAG_DISMISS_END, 0.35f)); int navBarSize = isHorizontalDivision ? mInsets.bottom : mInsets.right; mTargets.add(new SnapTarget(dividerMax - navBarSize, SnapTarget.FLAG_DISMISS_END, 0.35f)); } private void addFixedDivisionTargets(boolean isHorizontalDivision) { Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +19 −5 Original line number Diff line number Diff line Loading @@ -2645,11 +2645,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } } else if (win.getAttrs().type == TYPE_DOCK_DIVIDER) { if (transit == TRANSIT_ENTER || transit == TRANSIT_SHOW) { return R.anim.fade_in; } else if (transit == TRANSIT_EXIT) { return R.anim.fade_out; } return selectDockedDividerAnimationLw(win, transit); } if (transit == TRANSIT_PREVIEW_DONE) { Loading @@ -2669,6 +2665,24 @@ public class PhoneWindowManager implements WindowManagerPolicy { return 0; } private int selectDockedDividerAnimationLw(WindowState win, int transit) { int insets = mWindowManagerFuncs.getDockedDividerInsetsLw(); // If the divider is behind the navigation bar, don't animate. if (mNavigationBar != null && (win.getFrameLw().top + insets >= mNavigationBar.getFrameLw().top || win.getFrameLw().left + insets >= mNavigationBar.getFrameLw().left)) { return 0; } if (transit == TRANSIT_ENTER || transit == TRANSIT_SHOW) { return R.anim.fade_in; } else if (transit == TRANSIT_EXIT) { return R.anim.fade_out; } else { return 0; } } @Override public void selectRotationAnimationLw(int anim[]) { if (PRINT_ANIM) Slog.i(TAG, "selectRotationAnimation mTopFullscreen=" Loading services/core/java/com/android/server/wm/DockedStackDividerController.java +4 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,10 @@ public class DockedStackDividerController implements DimLayerUser { return mDividerWindowWidth - 2 * mDividerInsets; } int getContentInsets() { return mDividerInsets; } void setResizing(boolean resizing) { mResizing = resizing; } Loading services/core/java/com/android/server/wm/WindowManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -9619,6 +9619,11 @@ public class WindowManagerService extends IWindowManager.Stub && !appWindow.mTask.inFreeformWorkspace(); } @Override public int getDockedDividerInsetsLw() { return getDefaultDisplayContentLocked().getDockedDividerController().getContentInsets(); } void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) { pw.println("WINDOW MANAGER POLICY STATE (dumpsys window policy)"); mPolicy.dump(" ", pw, args); Loading Loading
core/java/android/view/WindowManagerPolicy.java +5 −0 Original line number Diff line number Diff line Loading @@ -460,6 +460,11 @@ public interface WindowManagerPolicy { /** Unregister a system listener for touch events */ void unregisterPointerEventListener(PointerEventListener listener); /** * @return The content insets of the docked divider window. */ int getDockedDividerInsetsLw(); } public interface PointerEventListener { Loading
core/java/com/android/internal/policy/DividerSnapAlgorithm.java +3 −3 Original line number Diff line number Diff line Loading @@ -136,8 +136,7 @@ public class DividerSnapAlgorithm { / (mFirstSplitTarget.position - getStartInset()); } else if (position > mLastSplitTarget.position) { return (float) (position - mLastSplitTarget.position) / (mDismissEndTarget.position - getEndInset() - mLastSplitTarget.position - mDividerSize); / (mDismissEndTarget.position - mLastSplitTarget.position - mDividerSize); } return 0f; } Loading Loading @@ -222,7 +221,8 @@ public class DividerSnapAlgorithm { addMiddleTarget(isHorizontalDivision); break; } mTargets.add(new SnapTarget(dividerMax, SnapTarget.FLAG_DISMISS_END, 0.35f)); int navBarSize = isHorizontalDivision ? mInsets.bottom : mInsets.right; mTargets.add(new SnapTarget(dividerMax - navBarSize, SnapTarget.FLAG_DISMISS_END, 0.35f)); } private void addFixedDivisionTargets(boolean isHorizontalDivision) { Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +19 −5 Original line number Diff line number Diff line Loading @@ -2645,11 +2645,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } } else if (win.getAttrs().type == TYPE_DOCK_DIVIDER) { if (transit == TRANSIT_ENTER || transit == TRANSIT_SHOW) { return R.anim.fade_in; } else if (transit == TRANSIT_EXIT) { return R.anim.fade_out; } return selectDockedDividerAnimationLw(win, transit); } if (transit == TRANSIT_PREVIEW_DONE) { Loading @@ -2669,6 +2665,24 @@ public class PhoneWindowManager implements WindowManagerPolicy { return 0; } private int selectDockedDividerAnimationLw(WindowState win, int transit) { int insets = mWindowManagerFuncs.getDockedDividerInsetsLw(); // If the divider is behind the navigation bar, don't animate. if (mNavigationBar != null && (win.getFrameLw().top + insets >= mNavigationBar.getFrameLw().top || win.getFrameLw().left + insets >= mNavigationBar.getFrameLw().left)) { return 0; } if (transit == TRANSIT_ENTER || transit == TRANSIT_SHOW) { return R.anim.fade_in; } else if (transit == TRANSIT_EXIT) { return R.anim.fade_out; } else { return 0; } } @Override public void selectRotationAnimationLw(int anim[]) { if (PRINT_ANIM) Slog.i(TAG, "selectRotationAnimation mTopFullscreen=" Loading
services/core/java/com/android/server/wm/DockedStackDividerController.java +4 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,10 @@ public class DockedStackDividerController implements DimLayerUser { return mDividerWindowWidth - 2 * mDividerInsets; } int getContentInsets() { return mDividerInsets; } void setResizing(boolean resizing) { mResizing = resizing; } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -9619,6 +9619,11 @@ public class WindowManagerService extends IWindowManager.Stub && !appWindow.mTask.inFreeformWorkspace(); } @Override public int getDockedDividerInsetsLw() { return getDefaultDisplayContentLocked().getDockedDividerController().getContentInsets(); } void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) { pw.println("WINDOW MANAGER POLICY STATE (dumpsys window policy)"); mPolicy.dump(" ", pw, args); Loading