summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2015-10-08 22:01:06 -0700
committer Wale Ogunwale <ogunwale@google.com> 2015-10-08 22:01:06 -0700
commit58fa9de4f8ba8ce3a403db0f32a7236a9f963a5e (patch)
treef2514487cca0faf5813afe2da537615f2984b400
parent013f84ab79a8e19536b0c705b99b6d7383367f25 (diff)
Update dock divider display info. whenever it changes.
The docked divider display info. was set on object creation and never changed. This can hang the dock divider if the device rotation is changed and the user moves the divider rapidly in and out of the screen edge closer to the right. We now update the display info. whenever it changes. Change-Id: Ie5f0c7ebdafedb156d04eceee00fc7e4176d9bf8
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java1
-rw-r--r--services/core/java/com/android/server/wm/DockedStackDividerController.java14
2 files changed, 10 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 438658ee40e4..39479c1a9681 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -191,6 +191,7 @@ class DisplayContent {
void updateDisplayInfo() {
mDisplay.getDisplayInfo(mDisplayInfo);
mDisplay.getMetrics(mDisplayMetrics);
+ mDividerControllerLocked.updateDisplayInfo();
for (int i = mStacks.size() - 1; i >= 0; --i) {
mStacks.get(i).updateDisplayInfo(null);
}
diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java
index 610524f50f56..5da9ebb1055a 100644
--- a/services/core/java/com/android/server/wm/DockedStackDividerController.java
+++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java
@@ -57,8 +57,8 @@ public class DockedStackDividerController implements View.OnTouchListener, DimLa
private final DisplayContent mDisplayContent;
private final int mSideMargin;
private final DimLayer mDimLayer;
- private final int mDisplayWidth;
- private final int mDisplayHeight;
+ private int mDisplayWidth;
+ private int mDisplayHeight;
private View mView;
private Rect mTmpRect = new Rect();
private Rect mLastResizeRect = new Rect();
@@ -72,9 +72,7 @@ public class DockedStackDividerController implements View.OnTouchListener, DimLa
DockedStackDividerController(Context context, DisplayContent displayContent) {
mContext = context;
mDisplayContent = displayContent;
- final DisplayInfo info = displayContent.getDisplayInfo();
- mDisplayWidth = info.logicalWidth;
- mDisplayHeight = info.logicalHeight;
+ updateDisplayInfo();
mDividerWidth = context.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.docked_stack_divider_thickness);
mSideMargin = dipToPixel(SIDE_MARGIN_DIP, mDisplayContent.getDisplayMetrics());
@@ -110,6 +108,12 @@ public class DockedStackDividerController implements View.OnTouchListener, DimLa
return mView != null;
}
+ void updateDisplayInfo() {
+ final DisplayInfo info = mDisplayContent.getDisplayInfo();
+ mDisplayWidth = info.logicalWidth;
+ mDisplayHeight = info.logicalHeight;
+ }
+
void update(Configuration configuration, boolean forceUpdate) {
if (forceUpdate && mView != null) {
removeDivider();