Merge "Put dismiss end target at navigation bar" into nyc-dev
am: 93f04f8920
* commit '93f04f89202d269fbb38c6f2ffacc3fa01728bbc':
Put dismiss end target at navigation bar
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
@@ -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="
|
||||
|
||||
@@ -72,6 +72,10 @@ public class DockedStackDividerController implements DimLayerUser {
|
||||
return mDividerWindowWidth - 2 * mDividerInsets;
|
||||
}
|
||||
|
||||
int getContentInsets() {
|
||||
return mDividerInsets;
|
||||
}
|
||||
|
||||
void setResizing(boolean resizing) {
|
||||
mResizing = resizing;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user