summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2015-10-02 12:43:27 -0700
committer Wale Ogunwale <ogunwale@google.com> 2015-10-02 12:43:27 -0700
commit04ad7b14987f16dc28a9cdcf07de22cb01a5ac95 (patch)
tree5f2fe25be2712be359c07472a650a03119a6133e
parent150c5ae28d594ab4cfe3db68933337f79a5364d1 (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.java2
-rw-r--r--services/core/java/com/android/server/wm/TaskPositioner.java20
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(