Check orientation changes on task item attaching

onConfigurationChanged is only passed down to views that are currently
attached. Naturally, a recycler view has some views in its pool that are
not attached and thus do not get the call when the orientation changes.
When this happens and the view is then attached later, it can be in an
incorrect orientation.

To fix this, we save the current orientation the task item is using and
check on attaching if it's still the same as the orientation the device
is in. If it isn't we then run the orientation change logic.

Bug: 131848689
Fix: 131848689
Test: Change orientation with some views not attached, see that they are
correct orientation when attached
Change-Id: I3dec501c332338444e321b4a50876c7840a5bc6e
diff --git a/go/quickstep/src/com/android/quickstep/views/TaskItemView.java b/go/quickstep/src/com/android/quickstep/views/TaskItemView.java
index a5f5728..6db8013 100644
--- a/go/quickstep/src/com/android/quickstep/views/TaskItemView.java
+++ b/go/quickstep/src/com/android/quickstep/views/TaskItemView.java
@@ -49,6 +49,7 @@
     private ImageView mIconView;
     private ImageView mThumbnailView;
     private float mContentTransitionProgress;
+    private int mDisplayedOrientation;
 
     /**
      * Property representing the content transition progress of the view. 1.0f represents that the
@@ -179,13 +180,27 @@
     }
 
     @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        onOrientationChanged(getResources().getConfiguration().orientation);
+    }
+
+    @Override
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
+        onOrientationChanged(newConfig.orientation);
+    }
+
+    private void onOrientationChanged(int newOrientation) {
+        if (mDisplayedOrientation == newOrientation) {
+            return;
+        }
+        mDisplayedOrientation = newOrientation;
         int layerCount = mThumbnailDrawable.getNumberOfLayers();
         for (int i = 0; i < layerCount; i++) {
             Drawable drawable = mThumbnailDrawable.getDrawable(i);
             if (drawable instanceof ThumbnailDrawable) {
-                ((ThumbnailDrawable) drawable).setRequestedOrientation(newConfig.orientation);
+                ((ThumbnailDrawable) drawable).setRequestedOrientation(newOrientation);
             }
         }
         mTaskIconThumbnailView.forceLayout();