Merge "DO NOT MERGE. Ensure screen pinning UI appears immediately after setting changes." into lmp-mr1-dev
diff --git a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
index 10618e0..4ce2c2b 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
@@ -642,12 +642,13 @@
 
     /** Starts the recents activity */
     void startRecentsActivity(ActivityManager.RunningTaskInfo topTask, boolean isTopTaskHome) {
+        RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
+        RecentsConfiguration.reinitialize(mContext, mSystemServicesProxy);
+
         if (sInstanceLoadPlan == null) {
             // Create a new load plan if onPreloadRecents() was never triggered
-            RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
             sInstanceLoadPlan = loader.createLoadPlan(mContext);
         }
-        RecentsTaskLoader loader = RecentsTaskLoader.getInstance();
         loader.preloadTasks(sInstanceLoadPlan, isTopTaskHome);
         TaskStack stack = sInstanceLoadPlan.getTaskStack();
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index ee631f5..0f535db 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -361,12 +361,11 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        // For the non-primary user, ensure that the SystemSericesProxy is initialized
+        // For the non-primary user, ensure that the SystemServicesProxy and configuration is
+        // initialized
         RecentsTaskLoader.initialize(this);
-
-        // Initialize the loader and the configuration
-        mConfig = RecentsConfiguration.reinitialize(this,
-                RecentsTaskLoader.getInstance().getSystemServicesProxy());
+        SystemServicesProxy ssp = RecentsTaskLoader.getInstance().getSystemServicesProxy();
+        mConfig = RecentsConfiguration.reinitialize(this, ssp);
 
         // Initialize the widget host (the host id is static and does not change)
         mAppWidgetHost = new RecentsAppWidgetHost(this, Constants.Values.App.AppWidgetHostId);
@@ -421,9 +420,6 @@
         super.onNewIntent(intent);
         setIntent(intent);
 
-        // Reinitialize the configuration
-        RecentsConfiguration.reinitialize(this, RecentsTaskLoader.getInstance().getSystemServicesProxy());
-
         // Clear any debug rects
         if (mDebugOverlay != null) {
             mDebugOverlay.clear();
@@ -450,6 +446,12 @@
 
         // Update the recent tasks
         updateRecentsTasks(getIntent());
+
+        // If this is a new instance from a configuration change, then we have to manually trigger
+        // the enter animation state
+        if (mConfig.launchedHasConfigurationChanged) {
+            onEnterAnimationTriggered();
+        }
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
index 255d642..81f0cef 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
@@ -252,6 +252,8 @@
             if (group.getTaskCount() == 0) {
                 removeGroup(group);
             }
+            // Update the lock-to-app state
+            t.lockToThisTask = false;
             if (mCb != null) {
                 // Notify that a task has been removed
                 mCb.onStackTaskRemoved(this, t, null);
@@ -480,4 +482,4 @@
         }
         return str;
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
index ee79242a..427ffe5 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
@@ -542,7 +542,7 @@
         loader.deleteTaskData(t, false);
 
         // Remove the old task from activity manager
-        RecentsTaskLoader.getInstance().getSystemServicesProxy().removeTask(t.key.id);
+        loader.getSystemServicesProxy().removeTask(t.key.id);
     }
 
     @Override