diff options
| author | 2015-10-02 12:43:27 -0700 | |
|---|---|---|
| committer | 2015-10-02 12:43:27 -0700 | |
| commit | 04ad7b14987f16dc28a9cdcf07de22cb01a5ac95 (patch) | |
| tree | 5f2fe25be2712be359c07472a650a03119a6133e | |
| parent | 150c5ae28d594ab4cfe3db68933337f79a5364d1 (diff) | |
Fixed issue with not force resizing a task when drag ends.
We were checking mResizing when the drag ends to see if we
should force resize, but it was being set to false just before
the force resize check in endDragLocked.
Also, don't call AM to resize task if bounds isn't going to change.
Change-Id: Ice2c32a0f15f7489a7c80f21bd79c31104ba4487
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskPositioner.java | 20 |
2 files changed, 14 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 98b6ee6d2402..3a368ac59369 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -3091,7 +3091,7 @@ public final class ActivityStackSupervisor implements DisplayListener { Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeTask_" + task.taskId); final Configuration overrideConfig = task.updateOverrideConfiguration(bounds); - // This variable holds information whether the configuration didn't change in a signficant + // This variable holds information whether the configuration didn't change in a significant // way and the activity was kept the way it was. If it's false, it means the activity had // to be relaunched due to configuration change. boolean kept = true; diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java index 9da7406e8d3c..290c2eaf0bf3 100644 --- a/services/core/java/com/android/server/wm/TaskPositioner.java +++ b/services/core/java/com/android/server/wm/TaskPositioner.java @@ -146,13 +146,18 @@ class TaskPositioner implements DimLayer.DimLayerUser { } synchronized (mService.mWindowMap) { mDragEnded = notifyMoveLocked(newX, newY); + mTask.getBounds(mTmpRect); + } + if (!mTmpRect.equals(mWindowDragBounds)) { + Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, + "wm.TaskPositioner.resizeTask"); + try { + mService.mActivityManager.resizeTask( + mTask.mTaskId, mWindowDragBounds, RESIZE_MODE_USER); + } catch (RemoteException e) { + } + Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); } - Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.TaskPositioner.resizeTask"); - try { - mService.mActivityManager.resizeTask( - mTask.mTaskId, mWindowDragBounds, RESIZE_MODE_USER); - } catch(RemoteException e) {} - Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); } break; case MotionEvent.ACTION_UP: { @@ -171,11 +176,12 @@ class TaskPositioner implements DimLayer.DimLayerUser { } if (mDragEnded) { + final boolean wasResizing = mResizing; synchronized (mService.mWindowMap) { endDragLocked(); } try { - if (mResizing) { + if (wasResizing) { // We were using fullscreen surface during resizing. Request // resizeTask() one last time to restore surface to window size. mService.mActivityManager.resizeTask( |