bugfix 5479807 Video preview displaced to right when orientation changed

Three changes:

(1) center the play button over the thumbnail
(2) leverage the existing mechanism for scaling the image for video
thumbnails which want to be 4/3
(3) use center_crop for video previews so that they properly align
in the ui.  Not doing so means we were getting black bars at the top
and bottom which was wrong.

Change-Id: Ifc416455d03136a393239487db07493dc27f151e
diff --git a/res/layout/share_popup.xml b/res/layout/share_popup.xml
index c9beb3a..ccc74d9 100644
--- a/res/layout/share_popup.xml
+++ b/res/layout/share_popup.xml
@@ -37,14 +37,22 @@
                     android:layout_alignParentTop="true"
                     android:layout_alignParentLeft="true">
                 <!-- The size of the thumbnail is calculated in SharePopup.java -->
-                <ImageView android:id="@+id/thumbnail"
+                <FrameLayout
                         android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:adjustViewBounds="true"
-                        android:scaleType="fitCenter"/>
-            </com.android.camera.ui.RotateLayout>
-            <ImageView android:id="@+id/play"
-                    style="@style/ReviewPlayIcon"/>
+                        android:layout_height="wrap_content" >
+                    <ImageView android:id="@+id/thumbnail"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:adjustViewBounds="true"
+                            android:scaleType="fitCenter"/>
+                    <ImageView android:id="@+id/play"
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_gravity="center"
+                            android:scaleType="center"
+                            style="@style/ReviewPlayIcon"/>
+                </FrameLayout>
+            </com.android.camera.ui.RotateLayout> 
         </RelativeLayout>
         <LinearLayout
                 android:layout_width="@dimen/share_item_width"
diff --git a/src/com/android/camera/ui/SharePopup.java b/src/com/android/camera/ui/SharePopup.java
index 3917c54..de78f66 100644
--- a/src/com/android/camera/ui/SharePopup.java
+++ b/src/com/android/camera/ui/SharePopup.java
@@ -130,41 +130,6 @@
         // Show play button if this is a video thumbnail.
         if (mMimeType.startsWith("video/")) {
             sharePopup.findViewById(R.id.play).setVisibility(View.VISIBLE);
-
-            // for some reason we want to show video thumbnail in a 4/3 ratio
-            // crop the image here, for dispaly, as necessary
-            final float targetRatio = 4F/3F;
-            final float existingRatio = (float)mBitmapWidth / (float)mBitmapHeight;
-
-            if (existingRatio > targetRatio) {
-                int newWidth = (int) ((float)mBitmapHeight * targetRatio);
-
-                // check if we end up with the same width due to rounding
-                if (newWidth != mBitmapWidth) {
-                    bitmap = Bitmap.createBitmap(
-                            bitmap,
-                            (mBitmapWidth - newWidth) / 2,
-                            0,        // yCoord
-                            newWidth,
-                            mBitmapHeight,
-                            null,
-                            false);
-                }
-            } else if (existingRatio < targetRatio) {
-                int newHeight = (int) ((float)mBitmapWidth * targetRatio);
-
-                // check if we end up with the same width due to rounding
-                if (newHeight != mBitmapHeight) {
-                    bitmap = Bitmap.createBitmap(
-                            bitmap,
-                            0,        // xCoord
-                            (mBitmapHeight - newHeight) / 2,
-                            mBitmapWidth,
-                            newHeight,
-                            null,
-                            false);
-                }
-            }
         }
         mBitmapWidth = bitmap.getWidth();
         mBitmapHeight = bitmap.getHeight();
@@ -242,6 +207,14 @@
         }
         float actualAspect = maxWidth / maxHeight;
         float desiredAspect = (float) mBitmapWidth / mBitmapHeight;
+
+        if (mMimeType.startsWith("video/")) {
+            desiredAspect = 4F/3F;
+            mThumbnail.setScaleType(ImageView.ScaleType.CENTER_CROP);
+        } else {
+            mThumbnail.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+        }
+
         LayoutParams params = mThumbnail.getLayoutParams();
         if (actualAspect > desiredAspect) {
             params.width = Math.round(maxHeight * desiredAspect);