OSDN Git Service

Short-circuit AMS.setFocusedTask if the task is already focused.
authorFilip Gruszczynski <gruszczy@google.com>
Fri, 8 Jan 2016 22:43:31 +0000 (14:43 -0800)
committerFilip Gruszczynski <gruszczy@google.com>
Fri, 8 Jan 2016 22:49:13 +0000 (14:49 -0800)
Bug: 25236192
Change-Id: I369d3815c171ccef99d7dbe68dfb2b1f61be65dc

services/core/java/com/android/server/am/ActivityManagerService.java

index fcb9962..4946599 100644 (file)
@@ -2764,8 +2764,7 @@ public final class ActivityManagerService extends ActivityManagerNative
         }
 
         if (!r.isFocusable()) {
-            if (DEBUG_FOCUS) Slog.d(TAG_FOCUS,
-                    "setFocusedActivityLocked: unfocusable r=" + r);
+            if (DEBUG_FOCUS) Slog.d(TAG_FOCUS, "setFocusedActivityLocked: unfocusable r=" + r);
             return false;
         }
 
@@ -2874,9 +2873,8 @@ public final class ActivityManagerService extends ActivityManagerNative
             synchronized (ActivityManagerService.this) {
                 TaskRecord task = mStackSupervisor.anyTaskForIdLocked(taskId);
                 if (task != null) {
-                    ActivityRecord r = task.topRunningActivityLocked();
-                    if (r != null) {
-                        setFocusedActivityLocked(r, "setFocusedTask");
+                    final ActivityRecord r = task.topRunningActivityLocked();
+                    if (setFocusedActivityLocked(r, "setFocusedTask")) {
                         mStackSupervisor.resumeFocusedStackTopActivityLocked();
                     }
                 }