- moved rotateImage() to BitmapUtils
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / preview / PreviewImageFragment.java
index 46084d1..269e25e 100644 (file)
@@ -50,11 +50,14 @@ import com.actionbarsherlock.view.MenuInflater;
 import com.actionbarsherlock.view.MenuItem;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager.ThumbnailGenerationTask;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
+import com.owncloud.android.utils.BitmapUtils;
 import com.owncloud.android.utils.TouchImageViewCustom;
 
 
@@ -415,72 +418,13 @@ public class PreviewImageFragment extends FileFragment {
                 
             }
             
-            result = rotateImage(result, storagePath);
+            // Rotate image, obeying exif tag
+            result = BitmapUtils.rotateImage(result, storagePath);
            
             
             return result;
         }
         
-        private Bitmap rotateImage(Bitmap bitmap, String storagePath){
-            Bitmap resultBitmap = bitmap;
-
-            try
-            {
-                ExifInterface exifInterface = new ExifInterface(storagePath);
-                int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
-
-                Matrix matrix = new Matrix();
-
-                // 1: nothing to do
-                
-                // 2
-                if (orientation == ExifInterface.ORIENTATION_FLIP_HORIZONTAL)
-                {
-                    matrix.postScale(-1.0f, 1.0f);
-                }
-                // 3
-                else if (orientation == ExifInterface.ORIENTATION_ROTATE_180)
-                {
-                    matrix.postRotate(180);
-                }
-                // 4
-                else if (orientation == ExifInterface.ORIENTATION_FLIP_VERTICAL)
-                {
-                    matrix.postScale(1.0f, -1.0f);
-                }
-                // 5
-                else if (orientation == ExifInterface.ORIENTATION_TRANSPOSE)
-                {
-                    matrix.postRotate(-90);
-                    matrix.postScale(1.0f, -1.0f);
-                }
-                // 6
-                else if (orientation == ExifInterface.ORIENTATION_ROTATE_90)
-                {
-                    matrix.postRotate(90);
-                }
-                // 7
-                else if (orientation == ExifInterface.ORIENTATION_TRANSVERSE)
-                {
-                    matrix.postRotate(90);
-                    matrix.postScale(1.0f, -1.0f);
-                }
-                // 8
-                else if (orientation == ExifInterface.ORIENTATION_ROTATE_270)
-                {
-                    matrix.postRotate(270);
-                } 
-                
-                // Rotate the bitmap
-                resultBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
-            }
-            catch (Exception exception)
-            {
-                Log_OC.e(TAG, "Could not rotate the image: " + storagePath);
-            }
-            return resultBitmap;
-        }
-        
         @Override
         protected void onPostExecute(Bitmap result) {
             hideProgressWheel();